[Cmake-commits] [cmake-commits] king committed cmExportBuildFileGenerator.cxx 1.6 1.7 cmGlobalXCodeGenerator.cxx 1.203 1.204 cmTarget.cxx 1.231 1.232

cmake-commits at cmake.org cmake-commits at cmake.org
Tue Jan 20 15:49:39 EST 2009


Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv9889/Source

Modified Files:
	cmExportBuildFileGenerator.cxx cmGlobalXCodeGenerator.cxx 
	cmTarget.cxx 
Log Message:
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.


Index: cmGlobalXCodeGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmGlobalXCodeGenerator.cxx,v
retrieving revision 1.203
retrieving revision 1.204
diff -C 2 -d -r1.203 -r1.204
*** cmGlobalXCodeGenerator.cxx	9 Oct 2008 15:01:47 -0000	1.203
--- cmGlobalXCodeGenerator.cxx	20 Jan 2009 20:49:37 -0000	1.204
***************
*** 2608,2616 ****
          {
          std::string tfull = t->GetFullPath(configName);
-         if(t->IsAppBundleOnApple())
-           {
-           tfull += ".app/Contents/MacOS/";
-           tfull += t->GetFullName(configName);
-           }
          makefileStream << "\\\n\t" <<
            this->ConvertToRelativeForMake(tfull.c_str());
--- 2608,2611 ----
***************
*** 2670,2678 ****
          // Create a rule for this target.
          std::string tfull = t->GetFullPath(configName);
-         if(t->IsAppBundleOnApple())
-           {
-           tfull += ".app/Contents/MacOS/";
-           tfull += t->GetFullName(configName);
-           }
          makefileStream << this->ConvertToRelativeForMake(tfull.c_str()) 
                         << ":";
--- 2665,2668 ----

Index: cmExportBuildFileGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmExportBuildFileGenerator.cxx,v
retrieving revision 1.6
retrieving revision 1.7
diff -C 2 -d -r1.6 -r1.7
*** cmExportBuildFileGenerator.cxx	6 Feb 2008 19:20:35 -0000	1.6
--- cmExportBuildFileGenerator.cxx	20 Jan 2009 20:49:37 -0000	1.7
***************
*** 107,119 ****
    prop += suffix;
    std::string value;
!   if(target->IsFrameworkOnApple())
!     {
!     value = target->GetFullPath(config, false);
!     }
!   else if(target->IsAppBundleOnApple())
      {
      value = target->GetFullPath(config, false);
-     value += ".app/Contents/MacOS/";
-     value += target->GetFullName(config, false);
      }
    else
--- 107,113 ----
    prop += suffix;
    std::string value;
!   if(target->IsFrameworkOnApple() || target->IsAppBundleOnApple())
      {
      value = target->GetFullPath(config, false);
      }
    else

Index: cmTarget.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmTarget.cxx,v
retrieving revision 1.231
retrieving revision 1.232
diff -C 2 -d -r1.231 -r1.232
*** cmTarget.cxx	5 Jan 2009 14:53:14 -0000	1.231
--- cmTarget.cxx	20 Jan 2009 20:49:37 -0000	1.232
***************
*** 1933,1936 ****
--- 1933,1941 ----
      this->Location += "/";
      }
+   if(this->IsAppBundleOnApple())
+     {
+     this->Location += this->GetFullName(config, false);
+     this->Location += ".app/Contents/MacOS/";
+     }
     if(this->IsFrameworkOnApple())
      {
***************
*** 2447,2450 ****
--- 2452,2460 ----
    fpath += "/";
  
+   if(this->IsAppBundleOnApple())
+     {
+     fpath += this->GetFullName(config, false);
+     fpath += ".app/Contents/MacOS/";
+     }
    if(this->IsFrameworkOnApple())
      {



More information about the Cmake-commits mailing list