4 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/Clean-build)
5 run_cmake(Clean -DCMAKE_CONFIGURATION_TYPES=Debug)
6 set(RunCMake_TEST_NO_CLEAN 1)
7 run_cmake_command(Clean-build xcodebuild)
8 run_cmake_command(Clean-clean xcodebuild clean)
12 run_cmake(ExplicitCMakeLists)
13 run_cmake(ImplicitCMakeLists)
14 run_cmake(InterfaceLibSources)
15 run_cmake_with_options(SearchPaths -DCMAKE_CONFIGURATION_TYPES=Debug)
16 run_cmake(InheritedParameters)
18 run_cmake(XcodeFileType)
19 run_cmake(XcodeAttributeLocation)
20 run_cmake(XcodeAttributeGenex)
21 run_cmake(XcodeAttributeGenexError)
22 run_cmake(XcodeGenerateTopLevelProjectOnly)
24 if(XCODE_VERSION VERSION_GREATER_EQUAL 12)
25 run_cmake(XcodeDuplicateCustomCommand)
28 function(XcodeGenerateTopLevelProjectOnlyWithObjectLibrary)
29 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeGenerateTopLevelProjectOnlyWithObjectLibrary-build)
30 run_cmake(XcodeGenerateTopLevelProjectOnlyWithObjectLibrary)
31 set(RunCMake_TEST_NO_CLEAN 1)
32 run_cmake_command(XcodeGenerateTopLevelProjectOnlyWithObjectLibrary-build ${CMAKE_COMMAND} --build . --target shared_lib)
35 XcodeGenerateTopLevelProjectOnlyWithObjectLibrary()
37 function(LinkBinariesBuildPhase mode)
38 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/LinkBinariesBuildPhase_${mode}-build)
39 set(RunCMake_TEST_OPTIONS "-DCMAKE_XCODE_LINK_BUILD_PHASE_MODE=${mode}")
40 run_cmake(LinkBinariesBuildPhase_${mode})
41 set(RunCMake_TEST_NO_CLEAN 1)
42 run_cmake_command(LinkBinariesBuildPhase_${mode}-build ${CMAKE_COMMAND} --build .)
45 LinkBinariesBuildPhase(NONE)
46 LinkBinariesBuildPhase(BUILT_ONLY)
47 LinkBinariesBuildPhase(KNOWN_LOCATION)
48 run_cmake(LinkBinariesBuildPhase_INVALID)
50 run_cmake(XcodeObjectNeedsEscape)
51 run_cmake(XcodeObjectNeedsQuote)
52 run_cmake(XcodeOptimizationFlags)
53 run_cmake(XcodePreserveNonOptimizationFlags)
54 run_cmake(XcodePreserveObjcFlag)
55 run_cmake(XcodePrecompileHeaders)
56 if (NOT XCODE_VERSION VERSION_LESS 6)
57 run_cmake(XcodePlatformFrameworks)
60 run_cmake(PerConfigPerSourceFlags)
61 run_cmake(PerConfigPerSourceOptions)
62 run_cmake(PerConfigPerSourceDefinitions)
63 run_cmake(PerConfigPerSourceIncludeDirs)
65 if(XCODE_VERSION VERSION_GREATER_EQUAL 12)
67 function(XcodeObjectLibsInTwoProjectsiOS)
68 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeObjectLibsInTwoProjects-build-ios)
69 set(RunCMake_TEST_OPTIONS "-DCMAKE_SYSTEM_NAME=iOS")
71 run_cmake(XcodeObjectLibsInTwoProjects)
73 set(RunCMake_TEST_NO_CLEAN 1)
75 run_cmake_command(XcodeObjectLibsInTwoProjects-build-ios ${CMAKE_COMMAND} --build . --target shared_lib -- -sdk iphonesimulator)
78 XcodeObjectLibsInTwoProjectsiOS()
80 function(XcodeObjectLibsInTwoProjectsMacOS)
81 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeObjectLibsInTwoProjects-build-macos)
83 run_cmake(XcodeObjectLibsInTwoProjects)
85 set(RunCMake_TEST_NO_CLEAN 1)
87 run_cmake_command(XcodeObjectLibsInTwoProjects-build-macos ${CMAKE_COMMAND} --build . --target shared_lib)
90 XcodeObjectLibsInTwoProjectsMacOS()
94 function(XcodeSchemaGeneration)
95 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeSchemaGeneration-build)
96 set(RunCMake_TEST_NO_CLEAN 1)
97 set(RunCMake_TEST_OPTIONS "-DCMAKE_XCODE_GENERATE_SCHEME=ON")
99 file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
100 file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
102 run_cmake(XcodeSchemaGeneration)
103 if (XCODE_VERSION VERSION_GREATER_EQUAL 13)
104 set(maybe_destination -destination platform=macOS)
106 set(maybe_destination "")
108 run_cmake_command(XcodeSchemaGeneration-build xcodebuild -scheme foo ${maybe_destination} build)
111 if(NOT XCODE_VERSION VERSION_LESS 7)
112 XcodeSchemaGeneration()
113 run_cmake(XcodeSchemaProperty)
116 function(XcodeDependOnZeroCheck)
117 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeDependOnZeroCheck-build)
118 set(RunCMake_TEST_NO_CLEAN 1)
120 file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
121 file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
123 run_cmake(XcodeDependOnZeroCheck)
124 run_cmake_command(XcodeDependOnZeroCheck-build ${CMAKE_COMMAND} --build . --target parentdirlib)
125 run_cmake_command(XcodeDependOnZeroCheck-build ${CMAKE_COMMAND} --build . --target subdirlib)
128 XcodeDependOnZeroCheck()
130 function(XcodeObjcxxFlags testName)
131 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${testName}-build)
132 set(RunCMake_TEST_NO_CLEAN 1)
134 file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
135 file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
137 run_cmake(${testName})
138 run_cmake_command(${testName}-build ${CMAKE_COMMAND} --build .)
141 XcodeObjcxxFlags(XcodeObjcFlags)
142 XcodeObjcxxFlags(XcodeObjcxxFlags)
144 function(XcodeRemoveExcessiveISystem)
145 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeRemoveExcessiveISystem-build)
146 run_cmake(XcodeRemoveExcessiveISystem)
147 set(RunCMake_TEST_NO_CLEAN 1)
148 run_cmake_command(XcodeRemoveExcessiveISystem-build ${CMAKE_COMMAND} --build .)
151 XcodeRemoveExcessiveISystem()
153 function(XcodeXCConfig)
154 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeXCConfig-build)
155 run_cmake(XcodeXCConfig)
156 set(RunCMake_TEST_NO_CLEAN 1)
157 run_cmake_command(XcodeXCConfig-build ${CMAKE_COMMAND} --build . --config Debug)
158 run_cmake_command(XcodeXCConfig-build ${CMAKE_COMMAND} --build . --config Release)
163 function(BundleLinkBundle)
164 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/BundleLinkBundle-build)
165 run_cmake(BundleLinkBundle)
166 set(RunCMake_TEST_NO_CLEAN 1)
167 run_cmake_command(BundleLinkBundle-build ${CMAKE_COMMAND} --build .)
173 # Isolate device tests from host architecture selection.
174 unset(ENV{CMAKE_OSX_ARCHITECTURES})
176 # Use a single build tree for a few tests without cleaning.
178 if(NOT XCODE_VERSION VERSION_LESS 5)
179 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeInstallIOS-build)
180 set(RunCMake_TEST_NO_CLEAN 1)
181 set(RunCMake_TEST_OPTIONS
182 "-DCMAKE_SYSTEM_NAME=iOS"
183 "-DCMAKE_INSTALL_PREFIX:PATH=${RunCMake_BINARY_DIR}/ios_install")
185 file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
186 file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
188 run_cmake(XcodeInstallIOS)
189 run_cmake_command(XcodeInstallIOS-install ${CMAKE_COMMAND} --build . --target install)
191 unset(RunCMake_TEST_BINARY_DIR)
192 unset(RunCMake_TEST_NO_CLEAN)
193 unset(RunCMake_TEST_OPTIONS)
195 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeBundlesOSX-build)
196 set(RunCMake_TEST_NO_CLEAN 1)
197 set(RunCMake_TEST_OPTIONS
198 "-DCMAKE_SYSTEM_NAME=Darwin"
199 "-DCMAKE_INSTALL_PREFIX:PATH=${RunCMake_TEST_BINARY_DIR}/_install")
201 file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
202 file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
204 run_cmake(XcodeBundles)
205 run_cmake_command(XcodeBundles-build-macOS ${CMAKE_COMMAND} --build .)
206 run_cmake_command(XcodeBundles-install-macOS ${CMAKE_COMMAND} --build . --target install)
208 unset(RunCMake_TEST_BINARY_DIR)
209 unset(RunCMake_TEST_NO_CLEAN)
210 unset(RunCMake_TEST_OPTIONS)
212 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeBundlesIOS-build)
213 set(RunCMake_TEST_NO_CLEAN 1)
214 set(RunCMake_TEST_OPTIONS
215 "-DCMAKE_SYSTEM_NAME=iOS"
216 "-DCMAKE_INSTALL_PREFIX:PATH=${RunCMake_TEST_BINARY_DIR}/_install")
218 file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
219 file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
221 run_cmake(XcodeBundles)
222 run_cmake_command(XcodeBundles-build-iOS ${CMAKE_COMMAND} --build .)
223 run_cmake_command(XcodeBundles-install-iOS ${CMAKE_COMMAND} --build . --target install)
225 unset(RunCMake_TEST_BINARY_DIR)
226 unset(RunCMake_TEST_NO_CLEAN)
227 unset(RunCMake_TEST_OPTIONS)
230 if(NOT XCODE_VERSION VERSION_LESS 7)
231 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeBundlesWatchOS-build)
232 set(RunCMake_TEST_NO_CLEAN 1)
233 set(RunCMake_TEST_OPTIONS
234 "-DCMAKE_SYSTEM_NAME=watchOS"
235 "-DCMAKE_INSTALL_PREFIX:PATH=${RunCMake_TEST_BINARY_DIR}/_install")
237 file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
238 file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
240 run_cmake(XcodeBundles)
241 run_cmake_command(XcodeBundles-build-watchOS ${CMAKE_COMMAND} --build .)
242 run_cmake_command(XcodeBundles-install-watchOS ${CMAKE_COMMAND} --build . --target install)
244 unset(RunCMake_TEST_BINARY_DIR)
245 unset(RunCMake_TEST_NO_CLEAN)
246 unset(RunCMake_TEST_OPTIONS)
249 if(NOT XCODE_VERSION VERSION_LESS 7.1)
250 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeBundlesTvOS-build)
251 set(RunCMake_TEST_NO_CLEAN 1)
252 set(RunCMake_TEST_OPTIONS
253 "-DCMAKE_SYSTEM_NAME=tvOS"
254 "-DCMAKE_INSTALL_PREFIX:PATH=${RunCMake_TEST_BINARY_DIR}/_install")
256 file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
257 file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
259 run_cmake(XcodeBundles)
260 run_cmake_command(XcodeBundles-build-tvOS ${CMAKE_COMMAND} --build .)
261 run_cmake_command(XcodeBundles-install-tvOS ${CMAKE_COMMAND} --build . --target install)
263 unset(RunCMake_TEST_BINARY_DIR)
264 unset(RunCMake_TEST_NO_CLEAN)
265 unset(RunCMake_TEST_OPTIONS)
268 if(NOT XCODE_VERSION VERSION_LESS 7)
269 set(RunCMake_TEST_OPTIONS "-DCMAKE_TOOLCHAIN_FILE=${RunCMake_SOURCE_DIR}/osx.cmake")
270 run_cmake(XcodeTbdStub)
271 unset(RunCMake_TEST_OPTIONS)
274 if(XCODE_VERSION VERSION_GREATER_EQUAL 6)
275 # XcodeIOSInstallCombined
276 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeIOSInstallCombined-build)
277 set(RunCMake_TEST_NO_CLEAN 1)
278 set(RunCMake_TEST_OPTIONS
279 "-DCMAKE_SYSTEM_NAME=iOS"
280 "-DCMAKE_IOS_INSTALL_COMBINED=YES"
281 "-DCMAKE_INSTALL_PREFIX:PATH=${RunCMake_TEST_BINARY_DIR}/_install")
283 file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
284 file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
286 run_cmake(XcodeIOSInstallCombined)
287 run_cmake_command(XcodeIOSInstallCombined-build ${CMAKE_COMMAND} --build .)
288 if(XCODE_VERSION VERSION_LESS 12)
289 run_cmake_command(XcodeIOSInstallCombined-install ${CMAKE_COMMAND} --build . --target install)
291 # --build defaults to Debug, --install defaults to Release, so we have to
292 # specify the configuration explicitly
293 run_cmake_command(XcodeIOSInstallCombined-cmakeinstall
294 ${CMAKE_COMMAND} --install . --config Debug
297 unset(RunCMake_TEST_BINARY_DIR)
298 unset(RunCMake_TEST_NO_CLEAN)
299 unset(RunCMake_TEST_OPTIONS)
301 # XcodeIOSInstallCombinedPrune
302 # FIXME(#24011): Xcode 14 removed support for older architectures the test needs.
303 if(XCODE_VERSION VERSION_LESS 14)
304 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeIOSInstallCombinedPrune-build)
305 set(RunCMake_TEST_NO_CLEAN 1)
306 set(RunCMake_TEST_OPTIONS
307 "-DCMAKE_SYSTEM_NAME=iOS"
308 "-DCMAKE_IOS_INSTALL_COMBINED=YES"
309 "-DCMAKE_INSTALL_PREFIX:PATH=${RunCMake_TEST_BINARY_DIR}/_install")
311 file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
312 file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
314 run_cmake(XcodeIOSInstallCombinedPrune)
315 run_cmake_command(XcodeIOSInstallCombinedPrune-build ${CMAKE_COMMAND} --build .)
316 if(XCODE_VERSION VERSION_LESS 12)
317 run_cmake_command(XcodeIOSInstallCombinedPrune-install ${CMAKE_COMMAND} --build . --target install)
319 # --build defaults to Debug, --install defaults to Release, so we have to
320 # specify the configuration explicitly
321 run_cmake_command(XcodeIOSInstallCombinedPrune-cmakeinstall
322 ${CMAKE_COMMAND} --install . --config Debug
325 unset(RunCMake_TEST_BINARY_DIR)
326 unset(RunCMake_TEST_NO_CLEAN)
327 unset(RunCMake_TEST_OPTIONS)
330 # XcodeIOSInstallCombinedSingleArch
331 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeIOSInstallCombinedSingleArch-build)
332 set(RunCMake_TEST_NO_CLEAN 1)
333 set(RunCMake_TEST_OPTIONS
334 "-DCMAKE_SYSTEM_NAME=iOS"
335 "-DCMAKE_IOS_INSTALL_COMBINED=YES"
336 "-DCMAKE_INSTALL_PREFIX:PATH=${RunCMake_TEST_BINARY_DIR}/_install")
338 file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
339 file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
341 run_cmake(XcodeIOSInstallCombinedSingleArch)
342 run_cmake_command(XcodeIOSInstallCombinedSingleArch-build ${CMAKE_COMMAND} --build .)
343 if(XCODE_VERSION VERSION_LESS 12)
344 run_cmake_command(XcodeIOSInstallCombinedSingleArch-install ${CMAKE_COMMAND} --build . --target install)
346 # --build defaults to Debug, --install defaults to Release, so we have to
347 # specify the configuration explicitly
348 run_cmake_command(XcodeIOSInstallCombinedSingleArch-cmakeinstall
349 ${CMAKE_COMMAND} --install . --config Debug
352 unset(RunCMake_TEST_BINARY_DIR)
353 unset(RunCMake_TEST_NO_CLEAN)
354 unset(RunCMake_TEST_OPTIONS)
357 if(NOT XCODE_VERSION VERSION_LESS 5)
359 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeMultiplatform-build)
360 set(RunCMake_TEST_NO_CLEAN 1)
361 set(RunCMake_TEST_OPTIONS "${IOS_DEPLOYMENT_TARGET}")
363 file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
364 file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
366 run_cmake(XcodeMultiplatform)
368 # build ios before macos
369 run_cmake_command(XcodeMultiplatform-iphonesimulator-build ${CMAKE_COMMAND} --build . -- -sdk iphonesimulator)
370 run_cmake_command(XcodeMultiplatform-iphonesimulator-install ${CMAKE_COMMAND} --build . --target install -- -sdk iphonesimulator DESTDIR=${RunCMake_TEST_BINARY_DIR}/_install_iphonesimulator)
372 run_cmake_command(XcodeMultiplatform-macosx-build ${CMAKE_COMMAND} --build . -- -sdk macosx)
373 run_cmake_command(XcodeMultiplatform-macosx-install ${CMAKE_COMMAND} --build . --target install -- -sdk macosx DESTDIR=${RunCMake_TEST_BINARY_DIR}/_install_macosx)
375 unset(RunCMake_TEST_BINARY_DIR)
376 unset(RunCMake_TEST_NO_CLEAN)
377 unset(RunCMake_TEST_OPTIONS)
379 # EffectivePlatformNameOFF
380 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/EffectivePlatformNameOFF-build)
381 set(RunCMake_TEST_NO_CLEAN 1)
382 set(RunCMake_TEST_OPTIONS "-DCMAKE_SYSTEM_NAME=iOS" "-DCMAKE_OSX_SYSROOT=iphonesimulator")
384 file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
385 file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
387 run_cmake(EffectivePlatformNameOFF)
389 run_cmake_command(EffectivePlatformNameOFF-iphonesimulator-build ${CMAKE_COMMAND} --build .)
390 run_cmake_command(EffectivePlatformNameOFF-iphonesimulator-install ${CMAKE_COMMAND} --build . --target install -- DESTDIR=${RunCMake_TEST_BINARY_DIR}/_install_iphonesimulator)
392 unset(RunCMake_TEST_BINARY_DIR)
393 unset(RunCMake_TEST_NO_CLEAN)
394 unset(RunCMake_TEST_OPTIONS)
397 if(XCODE_VERSION VERSION_GREATER_EQUAL 8)
398 function(deployment_target_test SystemName SDK)
399 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/DeploymentTarget-${SDK}-build)
400 set(RunCMake_TEST_NO_CLEAN 1)
401 set(RunCMake_TEST_OPTIONS "-DCMAKE_SYSTEM_NAME=${SystemName}" "-DCMAKE_OSX_SYSROOT=${SDK}")
403 file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
404 file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
406 run_cmake(DeploymentTarget)
407 run_cmake_command(DeploymentTarget-${SDK} ${CMAKE_COMMAND} --build .)
410 deployment_target_test(Darwin macosx)
411 deployment_target_test(iOS iphoneos)
412 deployment_target_test(iOS iphonesimulator)
413 deployment_target_test(tvOS appletvos)
414 deployment_target_test(tvOS appletvsimulator)
415 deployment_target_test(watchOS watchos)
416 deployment_target_test(watchOS watchsimulator)
419 if(XCODE_VERSION VERSION_GREATER_EQUAL 8)
420 function(xctest_lookup_test SystemName SDK)
421 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XCTestLookup-${SDK}-build)
422 set(RunCMake_TEST_OPTIONS "-DCMAKE_SYSTEM_NAME=${SystemName}" "-DCMAKE_OSX_SYSROOT=${SDK}")
424 run_cmake(XCTestLookup)
427 xctest_lookup_test(Darwin macosx)
428 xctest_lookup_test(iOS iphoneos)
429 xctest_lookup_test(iOS iphonesimulator)
430 xctest_lookup_test(tvOS appletvos)
431 xctest_lookup_test(tvOS appletvsimulator)
434 if(XCODE_VERSION VERSION_GREATER_EQUAL 8)
435 function(XcodeRemoveExcessiveISystemSDK SDK)
436 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeRemoveExcessiveISystemSDK-${SDK}-build)
437 set(RunCMake_TEST_OPTIONS "-DCMAKE_SYSTEM_NAME=iOS" "-DCMAKE_OSX_SYSROOT=${SDK}")
438 run_cmake(XcodeRemoveExcessiveISystem)
439 set(RunCMake_TEST_NO_CLEAN 1)
440 run_cmake_command(XcodeRemoveExcessiveISystemSDK-${SDK}-build ${CMAKE_COMMAND} --build .)
443 XcodeRemoveExcessiveISystemSDK(iphoneos)
444 XcodeRemoveExcessiveISystemSDK(iphonesimulator)
447 if (XCODE_VERSION VERSION_GREATER_EQUAL 7.3)
448 function(xctest_add_bundle_test SystemName SDK BuildSystemVersion ExpectedOutputDir)
449 set(RunCMake_TEST_BINARY_DIR
450 ${RunCMake_BINARY_DIR}/DeploymentTarget-${SystemName}-${SDK}-${BuildSystemVersion}-build)
451 set(RunCMake_TEST_OPTIONS
452 "-DCMAKE_SYSTEM_NAME=${SystemName}"
453 "-DCMAKE_OSX_SYSROOT=${SDK}"
454 "-DTEST_EXPECTED_OUTPUT_DIR=${ExpectedOutputDir}")
455 unset(RunCMake_GENERATOR_TOOLSET)
456 if(BuildSystemVersion)
457 set(RunCMake_GENERATOR_TOOLSET "buildsystem=${BuildSystemVersion}")
459 run_cmake(XCTestAddBundle)
462 if(XCODE_VERSION VERSION_GREATER_EQUAL 12)
463 xctest_add_bundle_test(Darwin macosx "1" "$<TARGET_BUNDLE_CONTENT_DIR:TestedApp>/PlugIns")
464 xctest_add_bundle_test(Darwin macosx "12" "$<TARGET_BUNDLE_CONTENT_DIR:TestedApp>/PlugIns")
465 xctest_add_bundle_test(iOS iphonesimulator "1" "$<TARGET_BUNDLE_CONTENT_DIR:TestedApp>/PlugIns")
466 if (XCODE_VERSION VERSION_LESS 12.5)
467 xctest_add_bundle_test(iOS iphonesimulator "12" "$<TARGET_BUNDLE_CONTENT_DIR:TestedApp>")
469 xctest_add_bundle_test(iOS iphonesimulator "12" "$<TARGET_BUNDLE_CONTENT_DIR:TestedApp>/PlugIns")
472 xctest_add_bundle_test(Darwin macosx "" "$<TARGET_BUNDLE_CONTENT_DIR:TestedApp>/PlugIns")
473 xctest_add_bundle_test(iOS iphonesimulator "" "$<TARGET_BUNDLE_CONTENT_DIR:TestedApp>/PlugIns")
477 # Please add macOS-only tests above before the device-specific tests.