ソースを参照

Xcode: Fixup XCTest bundle location for Xcode 7.3

Prior to Xcode 7.3 a XCTest bundle was built like an ordinary
bundle. But starting with Xcode 7.3 it is implicitely built as
a plugin for the test host. It looks like in that case the
'Build Products Path' is ignored.

This patch simply sets the CMake target output path to the value
Xcode expects internally to get a matching view of both.

The command:

  xcodebuild -showBuildSettings -target CocoaExampleTests -configuration Debug

Output with Xcode 7.2:

  TARGET_BUILD_DIR = .../Tests/XCTest/Debug

Output with Xcode 7.3

  TARGET_BUILD_DIR = .../Tests/XCTest/Debug/CocoaExample.app/Contents/PlugIns

Signed-off-by: Gregor Jasny <[email protected]>
Gregor Jasny 9 年 前
コミット
a364d2513a
1 ファイル変更4 行追加0 行削除
  1. 4 0
      Modules/FindXCTest.cmake

+ 4 - 0
Modules/FindXCTest.cmake

@@ -140,6 +140,10 @@ function(xctest_add_bundle target testee)
       set_target_properties(${target} PROPERTIES
         XCODE_ATTRIBUTE_BUNDLE_LOADER "$(TEST_HOST)"
         XCODE_ATTRIBUTE_TEST_HOST "$<TARGET_FILE:${testee}>")
+      if(NOT XCODE_VERSION VERSION_LESS 7.3)
+        set_target_properties(${target} PROPERTIES
+          LIBRARY_OUTPUT_DIRECTORY "$<TARGET_FILE_DIR:${testee}>/../PlugIns")
+      endif()
     else(XCODE)
       target_link_libraries(${target}
         PRIVATE -bundle_loader $<TARGET_FILE:${testee}>)