| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- include(RunCMake)
- # Build a framework that the other tests will use and treat as external.
- # Always build in the Debug configuration so that the path to the framework
- # is predictable.
- function(ExternalFramework)
- set(RunCMake_TEST_NO_CLEAN 1)
- set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/ExternalFramework-build)
- set(externalFramework ${RunCMake_TEST_BINARY_DIR}/Debug/sharedFrameworkExt.framework PARENT_SCOPE)
- file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
- file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
- run_cmake(ExternalFramework)
- run_cmake_command(ExternalFramework-build
- ${CMAKE_COMMAND} --build ${RunCMake_TEST_BINARY_DIR}
- --config Debug
- --target sharedFrameworkExt
- )
- endfunction()
- ExternalFramework()
- set(RunCMake_TEST_OPTIONS -DEXTERNAL_FWK=${externalFramework})
- run_cmake(EmbedFrameworksFlagsOff)
- function(TestFlagsOn testName)
- set(RunCMake_TEST_NO_CLEAN 1)
- set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${testName}-build)
- file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
- file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
- run_cmake(${testName})
- run_cmake_command(${testName}-build
- ${CMAKE_COMMAND} --build ${RunCMake_TEST_BINARY_DIR}
- --config Debug
- --target app
- )
- endfunction()
- TestFlagsOn(EmbedFrameworksFlagsOnNoSubdir)
- TestFlagsOn(EmbedFrameworksFlagsOnWithSubdir)
- function(TestAppExtension platform)
- set(testName EmbedAppExtensions-${platform})
- if(NOT platform STREQUAL "macOS")
- set(RunCMake_TEST_OPTIONS -DCMAKE_SYSTEM_NAME=${platform})
- endif()
- set(RunCMake_TEST_NO_CLEAN 1)
- set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${testName}-build)
- file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
- file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
- run_cmake(${testName})
- run_cmake_command(${testName}-build
- ${CMAKE_COMMAND} --build ${RunCMake_TEST_BINARY_DIR}
- --config Debug
- --target app
- )
- endfunction()
- # Isolate device tests from host architecture selection.
- unset(ENV{CMAKE_OSX_ARCHITECTURES})
- if(XCODE_VERSION VERSION_GREATER_EQUAL 8)
- # The various flag on/off combinations are tested by the EmbedFrameworks...
- # tests, so we don't duplicate all the combinations here. We only verify the
- # defaults, which is to remove headers on copy, but not code sign.
- TestAppExtension(macOS)
- TestAppExtension(iOS)
- endif()
|