diff options
author | Yauheni Khnykin <yauheni.khnykin@here.com> | 2021-07-22 08:40:50 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2021-07-26 17:31:10 (GMT) |
commit | 0b5301a778cb22b1179dd21d709494dfe74add41 (patch) | |
tree | d5effa35b740fc09f12ef804ad823f285b208f78 | |
parent | 0615aeffbfa9e1e23dd24af640fdaddea7be9a94 (diff) | |
download | CMake-0b5301a778cb22b1179dd21d709494dfe74add41.zip CMake-0b5301a778cb22b1179dd21d709494dfe74add41.tar.gz CMake-0b5301a778cb22b1179dd21d709494dfe74add41.tar.bz2 |
FindXCTest: Fix output directory for test bundle with Xcode 12.5
The fix from commit eafe740ead (FindXCTest: Fix output directory for
test bundle with new build system, 2021-02-09, v3.19.5~5^2) is not
necessary with Xcode 12.5, which seems to have changed/fixed the
behaviour again.
Fixes: #22462
-rw-r--r-- | Modules/FindXCTest.cmake | 3 | ||||
-rw-r--r-- | Tests/RunCMake/XcodeProject/RunCMakeTest.cmake | 11 | ||||
-rw-r--r-- | Tests/RunCMake/XcodeProject/XCTestAddBundle.cmake | 9 | ||||
-rw-r--r-- | Tests/RunCMake/XcodeProject/dummy_main.swift | 18 |
4 files changed, 35 insertions, 6 deletions
diff --git a/Modules/FindXCTest.cmake b/Modules/FindXCTest.cmake index 48371e6..00729bc 100644 --- a/Modules/FindXCTest.cmake +++ b/Modules/FindXCTest.cmake @@ -156,8 +156,9 @@ function(xctest_add_bundle target testee) XCODE_ATTRIBUTE_BUNDLE_LOADER "$(TEST_HOST)" XCODE_ATTRIBUTE_TEST_HOST "$<TARGET_FILE:${testee}>") if(XCODE_VERSION VERSION_GREATER_EQUAL 7.3) - # CMAKE_XCODE_BUILD_SYSTEM equals 12 means that at least Xcode 11.x is used. + # The Xcode "new build system" used a different path until Xcode 12.5. if(CMAKE_XCODE_BUILD_SYSTEM EQUAL 12 AND + XCODE_VERSION VERSION_LESS 12.5 AND NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin") set(_output_directory "$<TARGET_BUNDLE_CONTENT_DIR:${testee}>") else() diff --git a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake index 26714c4..ed8e725 100644 --- a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake +++ b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake @@ -407,11 +407,16 @@ if (XCODE_VERSION VERSION_GREATER_EQUAL 7.3) if(XCODE_VERSION VERSION_GREATER_EQUAL 12) xctest_add_bundle_test(Darwin macosx "1" "$<TARGET_BUNDLE_CONTENT_DIR:TestedApp>/PlugIns") xctest_add_bundle_test(Darwin macosx "12" "$<TARGET_BUNDLE_CONTENT_DIR:TestedApp>/PlugIns") - xctest_add_bundle_test(iOS iphoneos "1" "$<TARGET_BUNDLE_CONTENT_DIR:TestedApp>/PlugIns") - xctest_add_bundle_test(iOS iphoneos "12" "$<TARGET_BUNDLE_CONTENT_DIR:TestedApp>") + xctest_add_bundle_test(iOS iphonesimulator "1" "$<TARGET_BUNDLE_CONTENT_DIR:TestedApp>/PlugIns") + if (XCODE_VERSION VERSION_LESS 12.5) + xctest_add_bundle_test(iOS iphonesimulator "12" "$<TARGET_BUNDLE_CONTENT_DIR:TestedApp>") + else() + xctest_add_bundle_test(iOS iphonesimulator "12" "$<TARGET_BUNDLE_CONTENT_DIR:TestedApp>/PlugIns") + endif() else() xctest_add_bundle_test(Darwin macosx "" "$<TARGET_BUNDLE_CONTENT_DIR:TestedApp>/PlugIns") - xctest_add_bundle_test(iOS iphoneos "" "$<TARGET_BUNDLE_CONTENT_DIR:TestedApp>/PlugIns") + xctest_add_bundle_test(iOS iphonesimulator "" "$<TARGET_BUNDLE_CONTENT_DIR:TestedApp>/PlugIns") endif() endif() + # Please add macOS-only tests above before the device-specific tests. diff --git a/Tests/RunCMake/XcodeProject/XCTestAddBundle.cmake b/Tests/RunCMake/XcodeProject/XCTestAddBundle.cmake index 444c730..9114fee 100644 --- a/Tests/RunCMake/XcodeProject/XCTestAddBundle.cmake +++ b/Tests/RunCMake/XcodeProject/XCTestAddBundle.cmake @@ -1,9 +1,14 @@ enable_language(Swift) + +set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED NO) +set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "") +set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) + find_package(XCTest REQUIRED) -add_executable(TestedApp MACOSX_BUNDLE EXCLUDE_FROM_ALL foo.swift) +add_executable(TestedApp MACOSX_BUNDLE dummy_main.swift) -xctest_add_bundle(TestingAppBundle TestedApp foo.swift) +xctest_add_bundle(TestingAppBundle TestedApp dummy_main.swift) get_target_property(_lib_output_dir TestingAppBundle LIBRARY_OUTPUT_DIRECTORY) diff --git a/Tests/RunCMake/XcodeProject/dummy_main.swift b/Tests/RunCMake/XcodeProject/dummy_main.swift new file mode 100644 index 0000000..1aaee42 --- /dev/null +++ b/Tests/RunCMake/XcodeProject/dummy_main.swift @@ -0,0 +1,18 @@ +#if os(iOS) +import UIKit + +@UIApplicationMain +class MyApp: UIResponder, UIApplicationDelegate { +} + +#elseif os(macOS) +import SwiftUI + +@main +struct MyApp: App { + var body: some Scene { + WindowGroup { + } + } +} +#endif |