瀏覽代碼

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}>)