Browse Source

Merge topic 'osx-cfbundle-tweaks'

b189c599 Tests: Run CFBundleTest only with valid configuration
3a605693 Xcode: Call IsCFBundleOnApple to decide if bundle is being built
207b7af0 cmTarget: Use GetCFBundleDirectory within GetFullNameInternal
Brad King 11 years ago
parent
commit
ccd5822a83

+ 1 - 1
Source/cmGlobalXCodeGenerator.cxx

@@ -1925,7 +1925,7 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target,
     {
     buildSettings->AddAttribute("LIBRARY_STYLE",
                                 this->CreateString("BUNDLE"));
-    if (target.GetPropertyAsBool("BUNDLE"))
+    if (target.IsCFBundleOnApple())
       {
       // It turns out that a BUNDLE is basically the same
       // in many ways as an application bundle, as far as

+ 2 - 9
Source/cmTarget.cxx

@@ -4057,15 +4057,8 @@ void cmTarget::GetFullNameInternal(const std::string& config,
 
   if(this->IsCFBundleOnApple())
     {
-    fw_prefix = this->GetOutputName(config, false);
-    fw_prefix += ".";
-    const char *ext = this->GetProperty("BUNDLE_EXTENSION");
-    if (!ext)
-      {
-      ext = "bundle";
-      }
-    fw_prefix += ext;
-    fw_prefix += "/Contents/MacOS/";
+    fw_prefix = this->GetCFBundleDirectory(config, false);
+    fw_prefix += "/";
     targetPrefix = fw_prefix.c_str();
     targetSuffix = 0;
     }

+ 3 - 6
Tests/CFBundleTest/VerifyResult.cmake

@@ -14,13 +14,10 @@ message(STATUS "CTEST_CONFIGURATION_TYPE='${CTEST_CONFIGURATION_TYPE}'")
 message(STATUS "dir='${dir}'")
 message(STATUS "gen='${gen}'")
 
-if(gen MATCHES "Make" OR
-   "${CTEST_CONFIGURATION_TYPE}" STREQUAL "" OR
-   "${CTEST_CONFIGURATION_TYPE}" STREQUAL "." OR
-   "${CTEST_CONFIGURATION_TYPE}" STREQUAL "NoConfig")
-  set(expected_filename "${dir}/CFBundleTest.plugin/Contents/MacOS/CFBundleTest")
-else()
+if(gen STREQUAL "Xcode")
   set(expected_filename "${dir}/${CTEST_CONFIGURATION_TYPE}/CFBundleTest.plugin/Contents/MacOS/CFBundleTest")
+else()
+  set(expected_filename "${dir}/CFBundleTest.plugin/Contents/MacOS/CFBundleTest")
 endif()
 
 if(NOT EXISTS "${expected_filename}")

+ 3 - 2
Tests/CMakeLists.txt

@@ -1931,16 +1931,17 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
         ${BundleTestInstallDir}/Applications/SecondBundleExe.app/Contents/MacOS/SecondBundleExe)
       list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/BundleTest")
 
-      add_test(CFBundleTest ${CMAKE_CTEST_COMMAND}
+      add_test(NAME CFBundleTest COMMAND ${CMAKE_CTEST_COMMAND}
         --build-and-test
         "${CMake_SOURCE_DIR}/Tests/CFBundleTest"
         "${CMake_BINARY_DIR}/Tests/CFBundleTest"
         --build-two-config
         ${build_generator_args}
         --build-project CFBundleTest
+        --build-config $<CONFIGURATION>
         --build-options ${build_options}
         --test-command
-        ${CMAKE_CMAKE_COMMAND} -DCTEST_CONFIGURATION_TYPE=\${CTEST_CONFIGURATION_TYPE}
+        ${CMAKE_CMAKE_COMMAND} -DCTEST_CONFIGURATION_TYPE=$<CONFIGURATION>
         -Ddir=${CMake_BINARY_DIR}/Tests/CFBundleTest
         -Dgen=${CMAKE_GENERATOR}
         -P ${CMake_SOURCE_DIR}/Tests/CFBundleTest/VerifyResult.cmake)