From f9128bac81090e74c44118de01ec574d0990330f Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Sat, 25 Apr 2020 10:12:13 -0700 Subject: [PATCH] build: use the same pattern for detecting Darwin platforms The host platform should be using `CMAKE_SYSTEM_NAME STREQUAL Darwin`. However, we currently drive the host side of the compilation against custom variables. This makes the migration simpler by ensuring that the entire file uses the same pattern. Since `is_darwin_based_sdk` is now used only in the standard library build, sink it to the standard library build. --- cmake/modules/AddSwift.cmake | 21 +++------------------ stdlib/cmake/modules/AddSwiftStdlib.cmake | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/cmake/modules/AddSwift.cmake b/cmake/modules/AddSwift.cmake index 09c3afe831906..5ed289be208f7 100644 --- a/cmake/modules/AddSwift.cmake +++ b/cmake/modules/AddSwift.cmake @@ -75,25 +75,10 @@ function(_set_target_prefix_and_suffix target kind sdk) endif() endfunction() -function(is_darwin_based_sdk sdk_name out_var) - if ("${sdk_name}" STREQUAL "OSX" OR - "${sdk_name}" STREQUAL "IOS" OR - "${sdk_name}" STREQUAL "IOS_SIMULATOR" OR - "${sdk_name}" STREQUAL "TVOS" OR - "${sdk_name}" STREQUAL "TVOS_SIMULATOR" OR - "${sdk_name}" STREQUAL "WATCHOS" OR - "${sdk_name}" STREQUAL "WATCHOS_SIMULATOR") - set(${out_var} TRUE PARENT_SCOPE) - else() - set(${out_var} FALSE PARENT_SCOPE) - endif() -endfunction() - # Usage: # _add_host_variant_c_compile_link_flags(name) function(_add_host_variant_c_compile_link_flags name) - is_darwin_based_sdk("${SWIFT_HOST_VARIANT_SDK}" IS_DARWIN) - if(IS_DARWIN) + if(SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_APPLE_PLATFORMS) set(DEPLOYMENT_VERSION "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_DEPLOYMENT_VERSION}") endif() @@ -107,7 +92,7 @@ function(_add_host_variant_c_compile_link_flags name) set(_sysroot "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_ARCH_${SWIFT_HOST_VARIANT_ARCH}_PATH}") - if(IS_DARWIN) + if(SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_APPLE_PLATFORMS) target_compile_options(${name} PRIVATE -isysroot;${_sysroot}) elseif(NOT SWIFT_COMPILER_IS_MSVC_LIKE AND NOT "${_sysroot}" STREQUAL "/") target_compile_options(${name} PRIVATE --sysroot=${_sysroot}) @@ -122,7 +107,7 @@ function(_add_host_variant_c_compile_link_flags name) endif() endif() - if(IS_DARWIN) + if(SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_APPLE_PLATFORMS) # We collate -F with the framework path to avoid unwanted deduplication # of options by target_compile_options -- this way no undesired # side effects are introduced should a new search path be added. diff --git a/stdlib/cmake/modules/AddSwiftStdlib.cmake b/stdlib/cmake/modules/AddSwiftStdlib.cmake index 05123d1d8e127..3adcdf3ddeda4 100644 --- a/stdlib/cmake/modules/AddSwiftStdlib.cmake +++ b/stdlib/cmake/modules/AddSwiftStdlib.cmake @@ -2,6 +2,20 @@ include(AddSwift) include(SwiftSource) +function(is_darwin_based_sdk sdk_name out_var) + if ("${sdk_name}" STREQUAL "OSX" OR + "${sdk_name}" STREQUAL "IOS" OR + "${sdk_name}" STREQUAL "IOS_SIMULATOR" OR + "${sdk_name}" STREQUAL "TVOS" OR + "${sdk_name}" STREQUAL "TVOS_SIMULATOR" OR + "${sdk_name}" STREQUAL "WATCHOS" OR + "${sdk_name}" STREQUAL "WATCHOS_SIMULATOR") + set(${out_var} TRUE PARENT_SCOPE) + else() + set(${out_var} FALSE PARENT_SCOPE) + endif() +endfunction() + function(add_dependencies_multiple_targets) cmake_parse_arguments( ADMT # prefix