summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYauheni Khnykin <yauheni.khnykin@here.com>2021-07-22 08:40:50 (GMT)
committerBrad King <brad.king@kitware.com>2021-07-26 17:31:10 (GMT)
commit0b5301a778cb22b1179dd21d709494dfe74add41 (patch)
treed5effa35b740fc09f12ef804ad823f285b208f78
parent0615aeffbfa9e1e23dd24af640fdaddea7be9a94 (diff)
downloadCMake-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.cmake3
-rw-r--r--Tests/RunCMake/XcodeProject/RunCMakeTest.cmake11
-rw-r--r--Tests/RunCMake/XcodeProject/XCTestAddBundle.cmake9
-rw-r--r--Tests/RunCMake/XcodeProject/dummy_main.swift18
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