summaryrefslogtreecommitdiffstats
path: root/Source/cmTarget.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-01-20 20:49:37 (GMT)
committerBrad King <brad.king@kitware.com>2009-01-20 20:49:37 (GMT)
commitacb0e8fb8569c4d0abe9d98de72e86b07d83771d (patch)
tree9b5890e01345c380991745c65dbf5a174e774ef0 /Source/cmTarget.cxx
parent2c81e5fb5cd592e9450250364e6667082014f0b7 (diff)
downloadCMake-acb0e8fb8569c4d0abe9d98de72e86b07d83771d.zip
CMake-acb0e8fb8569c4d0abe9d98de72e86b07d83771d.tar.gz
CMake-acb0e8fb8569c4d0abe9d98de72e86b07d83771d.tar.bz2
BUG: Fix LOCATION property for Mac AppBundles
Previously cmTarget::GetLocation and cmTarget::GetFullPath would return for Mac AppBundles the top-level bundle directory but without the .app extension. We worked around this at the call sites. This fixes the methods and removes the work-arounds. See issue #8406.
Diffstat (limited to 'Source/cmTarget.cxx')
-rw-r--r--Source/cmTarget.cxx10
1 files changed, 10 insertions, 0 deletions
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 0f9366e..ae250d4 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -1932,6 +1932,11 @@ const char* cmTarget::NormalGetLocation(const char* config)
this->Location += cfgid;
this->Location += "/";
}
+ if(this->IsAppBundleOnApple())
+ {
+ this->Location += this->GetFullName(config, false);
+ this->Location += ".app/Contents/MacOS/";
+ }
if(this->IsFrameworkOnApple())
{
this->Location += this->GetFullName(config, false);
@@ -2446,6 +2451,11 @@ std::string cmTarget::NormalGetFullPath(const char* config, bool implib,
std::string fpath = this->GetDirectory(config, implib);
fpath += "/";
+ if(this->IsAppBundleOnApple())
+ {
+ fpath += this->GetFullName(config, false);
+ fpath += ".app/Contents/MacOS/";
+ }
if(this->IsFrameworkOnApple())
{
fpath += this->GetFullName(config, false);