Merge branch 'ios-xctest-lookup' into release-3.14

Merge-request: !3309
This commit is contained in:
Brad King 2019-05-13 10:37:21 -04:00
commit 620e7b1c39
3 changed files with 37 additions and 0 deletions

View File

@ -61,6 +61,22 @@ The following variables are set by including this module:
#]=======================================================================]
set(_PRESERVED_CMAKE_FIND_ROOT_PATH "${CMAKE_FIND_ROOT_PATH}")
if(CMAKE_EFFECTIVE_SYSTEM_NAME STREQUAL "Apple"
AND NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin")
# Non-macos systems set the CMAKE_FIND_ROOT_PATH_MODE to "ONLY" which
# restricts the search paths too much to find XCTest.framework. In
# contrast to the regular system frameworks which reside within the
# SDK direectory the XCTest framework is located in the respective
# platform directory which is not added to the CMAKE_FIND_ROOT_PATH
# (only to CMAKE_SYSTEM_FRAMEWORK_PATH) and therefore not searched.
#
# Until this is properly addressed, temporaily add the platform
# directory to CMAKE_FIND_ROOT_PATH.
list(APPEND CMAKE_FIND_ROOT_PATH "${_CMAKE_OSX_SYSROOT_PATH}/../..")
endif()
find_path(XCTest_INCLUDE_DIR
NAMES "XCTest/XCTest.h"
DOC "XCTest include directory")
@ -71,6 +87,9 @@ find_library(XCTest_LIBRARY
DOC "XCTest Framework library")
mark_as_advanced(XCTest_LIBRARY)
set(CMAKE_FIND_ROOT_PATH "${_PRESERVED_CMAKE_FIND_ROOT_PATH}")
unset(_PRESERVED_CMAKE_FIND_ROOT_PATH)
execute_process(
COMMAND xcrun --find xctest
OUTPUT_VARIABLE _xcrun_out OUTPUT_STRIP_TRAILING_WHITESPACE

View File

@ -256,4 +256,19 @@ if(XCODE_VERSION VERSION_GREATER_EQUAL 8)
deployment_target_test(watchOS watchsimulator)
endif()
if(XCODE_VERSION VERSION_GREATER_EQUAL 8)
function(xctest_lookup_test SystemName SDK)
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XCTestLookup-${SDK}-build)
set(RunCMake_TEST_OPTIONS "-DCMAKE_SYSTEM_NAME=${SystemName}" "-DCMAKE_OSX_SYSROOT=${SDK}")
run_cmake(XCTestLookup)
endfunction()
xctest_lookup_test(Darwin macosx)
xctest_lookup_test(iOS iphoneos)
xctest_lookup_test(iOS iphonesimulator)
xctest_lookup_test(tvOS appletvos)
xctest_lookup_test(tvOS appletvsimulator)
endif()
# Please add macOS-only tests above before the device-specific tests.

View File

@ -0,0 +1,3 @@
enable_language(C)
find_package(XCTest REQUIRED)