Skip to content

Commit

Permalink
build: fix accidental cmake expansions
Browse files Browse the repository at this point in the history
As of CMake 3.25, there are now global variables `LINUX=1`, `ANDROID=1`,
etc. These conflict with expressions that used these names as unquoted
strings in positions where CMake accepts 'variable|string', for example:

- `if(sdk STREQUAL LINUX)` would fail, because `LINUX` is now defined and
  expands to 1, where it would previously coerce to a string.

- `if(${sdk} STREQUAL "LINUX")` would fail if `sdk=LINUX`, because the
  left-hand side expands twice.

In this patch, I looked for a number of patterns to fix up, sometimes a
little defensively:

- Quoted right-hand side of `STREQUAL` where I was confident it was
  intended to be a string literal.

- Removed manual variable expansion on left-hand side of `STREQUAL`,
  `MATCHES` and `IN_LIST` where I was confident it was unintended.

Fixes apple#65028.
  • Loading branch information
stephank committed Apr 30, 2023
1 parent f9611bc commit 112681f
Show file tree
Hide file tree
Showing 37 changed files with 186 additions and 186 deletions.
14 changes: 7 additions & 7 deletions CMakeLists.txt
Expand Up @@ -119,7 +119,7 @@ else()
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64|amd64")
set(SWIFT_HOST_VARIANT_ARCH_default "x86_64")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|ARM64|arm64")
if(SWIFT_HOST_VARIANT_SDK_default STREQUAL OSX)
if(SWIFT_HOST_VARIANT_SDK_default STREQUAL "OSX")
set(SWIFT_HOST_VARIANT_ARCH_default "arm64")
else()
set(SWIFT_HOST_VARIANT_ARCH_default "aarch64")
Expand Down Expand Up @@ -336,7 +336,7 @@ set(SWIFT_STDLIB_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING
# - MultiThreadedDebug (/MTd)
# - MultiThreadedDLL (/MD)
# - MultiThreadedDebugDLL (/MDd)
if(CMAKE_BUILD_TYPE STREQUAL Debug)
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
set(SWIFT_STDLIB_MSVC_RUNTIME_LIBRARY_default MultiThreadedDebugDLL)
else()
set(SWIFT_STDLIB_MSVC_RUNTIME_LIBRARY_default MultiThreadedDLL)
Expand Down Expand Up @@ -598,7 +598,7 @@ if(SWIFT_BUILT_STANDALONE)
project(Swift C CXX ASM)
endif()

if(MSVC OR "${CMAKE_SIMULATE_ID}" STREQUAL MSVC)
if(MSVC OR "${CMAKE_SIMULATE_ID}" STREQUAL "MSVC")
include(ClangClCompileRules)
elseif(UNIX)
include(UnixCompileRules)
Expand Down Expand Up @@ -627,7 +627,7 @@ if(SWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY AND "${SWIFT_CONCURRENCY_GLOBAL_EXECUTO
endif()

set(SWIFT_BUILD_HOST_DISPATCH FALSE)
if(SWIFT_ENABLE_DISPATCH AND NOT CMAKE_SYSTEM_NAME STREQUAL Darwin)
if(SWIFT_ENABLE_DISPATCH AND NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin")
# Only build libdispatch for the host if the host tools are being built and
# specifically if these two libraries that depend on it are built.
if(SWIFT_INCLUDE_TOOLS AND SWIFT_BUILD_SOURCEKIT)
Expand Down Expand Up @@ -801,11 +801,11 @@ endif()
# build environment.
if(LLVM_USE_LINKER)
set(SWIFT_USE_LINKER_default "${LLVM_USE_LINKER}")
elseif(${SWIFT_HOST_VARIANT_SDK} STREQUAL ANDROID)
elseif(SWIFT_HOST_VARIANT_SDK STREQUAL "ANDROID")
set(SWIFT_USE_LINKER_default "lld")
elseif(CMAKE_SYSTEM_NAME STREQUAL Windows AND NOT CMAKE_HOST_SYSTEM_NAME STREQUAL Windows)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows" AND NOT CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
set(SWIFT_USE_LINKER_default "lld")
elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(SWIFT_USE_LINKER_default "")
else()
set(SWIFT_USE_LINKER_default "gold")
Expand Down
16 changes: 8 additions & 8 deletions SwiftCompilerSources/CMakeLists.txt
Expand Up @@ -80,7 +80,7 @@ function(add_swift_compiler_modules_library name)
list(APPEND swift_compile_options "-Xfrontend" "-disable-implicit-string-processing-module-import")
endif()

if(CMAKE_BUILD_TYPE STREQUAL Debug)
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
list(APPEND swift_compile_options "-g")
else()
list(APPEND swift_compile_options "-O" "-cross-module-optimization")
Expand All @@ -98,7 +98,7 @@ function(add_swift_compiler_modules_library name)
set(deployment_version "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_DEPLOYMENT_VERSION}")
set(sdk_path "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_ARCH_${SWIFT_HOST_VARIANT_ARCH}_PATH}")
set(sdk_option "-sdk" "${sdk_path}")
if(${BOOTSTRAPPING_MODE} STREQUAL "CROSSCOMPILE-WITH-HOSTLIBS")
if(BOOTSTRAPPING_MODE STREQUAL "CROSSCOMPILE-WITH-HOSTLIBS")
# Let the cross-compiled compile don't pick up the compiled stdlib by providing
# an (almost) empty resource dir.
# The compiler will instead pick up the stdlib from the SDK.
Expand All @@ -117,7 +117,7 @@ function(add_swift_compiler_modules_library name)
message(ERROR "libc++ not found in the toolchain.")
endif()
endif()
elseif(${BOOTSTRAPPING_MODE} STREQUAL "CROSSCOMPILE")
elseif(BOOTSTRAPPING_MODE STREQUAL "CROSSCOMPILE")
set(sdk_option "-sdk" "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_ARCH_${SWIFT_HOST_VARIANT_ARCH}_PATH}")
get_filename_component(swift_exec_bin_dir ${ALS_SWIFT_EXEC} DIRECTORY)
set(sdk_option ${sdk_option} "-resource-dir" "${swift_exec_bin_dir}/../lib/swift")
Expand Down Expand Up @@ -253,13 +253,13 @@ else()
add_dependencies(importedHeaderDependencies swift-ast-generated-headers)
target_include_directories(importedHeaderDependencies PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../include/swift")

if(${BOOTSTRAPPING_MODE} MATCHES "HOSTTOOLS|CROSSCOMPILE")
if(BOOTSTRAPPING_MODE MATCHES "HOSTTOOLS|CROSSCOMPILE")

if (NOT SWIFT_EXEC_FOR_SWIFT_MODULES)
message(FATAL_ERROR "Need a swift toolchain building swift compiler sources")
endif()

if(${BOOTSTRAPPING_MODE} STREQUAL "HOSTTOOLS")
if(BOOTSTRAPPING_MODE STREQUAL "HOSTTOOLS")
if(NOT SWIFT_EXEC_FOR_SWIFT_MODULES STREQUAL CMAKE_Swift_COMPILER)
message(FATAL_ERROR "The Swift compiler (${CMAKE_Swift_COMPILER}) differs from the Swift compiler in SWIFT_NATIVE_SWIFT_TOOLS_PATH (${SWIFT_NATIVE_SWIFT_TOOLS_PATH}/swiftc).")
endif()
Expand All @@ -275,11 +275,11 @@ else()
add_swift_compiler_modules_library(swiftCompilerModules
SWIFT_EXEC "${SWIFT_EXEC_FOR_SWIFT_MODULES}")

elseif(${BOOTSTRAPPING_MODE} MATCHES "BOOTSTRAPPING.*")
elseif(BOOTSTRAPPING_MODE MATCHES "BOOTSTRAPPING.*")

set(b0_deps swift-frontend-bootstrapping0 symlink-headers-bootstrapping0)
set(b1_deps swift-frontend-bootstrapping1 symlink-headers-bootstrapping1)
if(${BOOTSTRAPPING_MODE} STREQUAL "BOOTSTRAPPING")
if(BOOTSTRAPPING_MODE STREQUAL "BOOTSTRAPPING")
list(APPEND b0_deps swiftCore-bootstrapping0)
list(APPEND b1_deps swiftCore-bootstrapping1)
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
Expand All @@ -290,7 +290,7 @@ else()
list(APPEND b0_deps swiftDarwin-bootstrapping0)
list(APPEND b1_deps swiftDarwin-bootstrapping1)
endif()
if(${SWIFT_HOST_VARIANT_SDK} IN_LIST SWIFT_LIBSTDCXX_PLATFORMS)
if(SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_LIBSTDCXX_PLATFORMS)
list(APPEND b0_deps copy-libstdcxx-modulemap-bootstrapping0 copy-libstdcxx-header-bootstrapping0)
list(APPEND b1_deps copy-libstdcxx-modulemap-bootstrapping1 copy-libstdcxx-header-bootstrapping1)
endif()
Expand Down
4 changes: 2 additions & 2 deletions benchmark/cmake/modules/AddSwiftBenchmarkSuite.cmake
Expand Up @@ -21,7 +21,7 @@ macro(configure_build)
# thus allowing the --host-cc build-script argument to work here.
get_filename_component(c_compiler ${CMAKE_C_COMPILER} NAME)

if(${c_compiler} STREQUAL "clang")
if(c_compiler STREQUAL "clang")
set(CLANG_EXEC ${CMAKE_C_COMPILER})
else()
if(NOT SWIFT_DARWIN_XCRUN_TOOLCHAIN)
Expand Down Expand Up @@ -713,7 +713,7 @@ function(swift_benchmark_compile)

if(NOT SWIFT_BENCHMARK_BUILT_STANDALONE)
set(stdlib_dependencies "swift-frontend" "swiftCore-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
if(${SWIFT_HOST_VARIANT_SDK} IN_LIST SWIFT_DARWIN_PLATFORMS)
if(SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_DARWIN_PLATFORMS)
list(APPEND stdlib_dependencies "swiftDarwin-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
endif()
foreach(stdlib_dependency ${UNIVERSAL_LIBRARY_NAMES_${SWIFT_BENCHMARK_COMPILE_PLATFORM}})
Expand Down
78 changes: 39 additions & 39 deletions cmake/modules/AddSwift.cmake
Expand Up @@ -63,16 +63,16 @@ function(_set_target_prefix_and_suffix target kind sdk)
precondition(kind MESSAGE "kind is required")
precondition(sdk MESSAGE "sdk is required")

if(${sdk} STREQUAL ANDROID)
if(${kind} STREQUAL STATIC)
if(sdk STREQUAL "ANDROID")
if(kind STREQUAL "STATIC")
set_target_properties(${target} PROPERTIES PREFIX "lib" SUFFIX ".a")
elseif(${kind} STREQUAL SHARED)
elseif(kind STREQUAL "SHARED")
set_target_properties(${target} PROPERTIES PREFIX "lib" SUFFIX ".so")
endif()
elseif(${sdk} STREQUAL WINDOWS)
if(${kind} STREQUAL STATIC)
elseif(sdk STREQUAL "WINDOWS")
if(kind STREQUAL "STATIC")
set_target_properties(${target} PROPERTIES PREFIX "" SUFFIX ".lib")
elseif(${kind} STREQUAL SHARED)
elseif(kind STREQUAL "SHARED")
set_target_properties(${target} PROPERTIES PREFIX "" SUFFIX ".dll")
endif()
endif()
Expand Down Expand Up @@ -115,7 +115,7 @@ function(_add_host_variant_c_compile_link_flags name)
set(DEPLOYMENT_VERSION "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_DEPLOYMENT_VERSION}")
endif()

if(SWIFT_HOST_VARIANT_SDK STREQUAL ANDROID)
if(SWIFT_HOST_VARIANT_SDK STREQUAL "ANDROID")
set(DEPLOYMENT_VERSION ${SWIFT_ANDROID_API_LEVEL})
endif()

Expand Down Expand Up @@ -151,7 +151,7 @@ function(_add_host_variant_c_compile_link_flags name)
target_compile_options(${name} PRIVATE $<$<COMPILE_LANGUAGE:C,CXX,OBJC,OBJCXX>:--sysroot=${_sysroot}>)
endif()

if(SWIFT_HOST_VARIANT_SDK STREQUAL ANDROID)
if(SWIFT_HOST_VARIANT_SDK STREQUAL "ANDROID")
# Make sure the Android NDK lld is used.
swift_android_tools_path(${SWIFT_HOST_VARIANT_ARCH} tools_path)
target_compile_options(${name} PRIVATE $<$<COMPILE_LANGUAGE:C,CXX,OBJC,OBJCXX>:-B${tools_path}>)
Expand Down Expand Up @@ -223,7 +223,7 @@ function(_add_host_variant_c_compile_flags target)
endif()
endif()

if(SWIFT_HOST_VARIANT_SDK STREQUAL WINDOWS)
if(SWIFT_HOST_VARIANT_SDK STREQUAL "WINDOWS")
# MSVC/clang-cl don't support -fno-pic or -fms-compatibility-version.
if(NOT SWIFT_COMPILER_IS_MSVC_LIKE)
target_compile_options(${target} PRIVATE
Expand Down Expand Up @@ -276,14 +276,14 @@ function(_add_host_variant_c_compile_flags target)
# NOTE(compnerd) workaround LLVM invoking `add_definitions(-D_DEBUG)` which
# causes failures for the runtime library when cross-compiling due to
# undefined symbols from the standard library.
if(NOT CMAKE_BUILD_TYPE STREQUAL Debug)
if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
target_compile_options(${target} PRIVATE
$<$<COMPILE_LANGUAGE:C,CXX,OBJC,OBJCXX>:-U_DEBUG>)
endif()
endif()

if(SWIFT_HOST_VARIANT_SDK STREQUAL ANDROID)
if(SWIFT_HOST_VARIANT_ARCH STREQUAL x86_64)
if(SWIFT_HOST_VARIANT_SDK STREQUAL "ANDROID")
if(SWIFT_HOST_VARIANT_ARCH STREQUAL "x86_64")
# NOTE(compnerd) Android NDK 21 or lower will generate library calls to
# `__sync_val_compare_and_swap_16` rather than lowering to the CPU's
# `cmpxchg16b` instruction as the `cx16` feature is disabled due to a bug
Expand Down Expand Up @@ -317,15 +317,15 @@ function(_add_host_variant_c_compile_flags target)
$<$<COMPILE_LANGUAGE:C,CXX,OBJC,OBJCXX>:-fprofile-instr-generate -fcoverage-mapping>)
endif()

if((SWIFT_HOST_VARIANT_ARCH STREQUAL armv7 OR
SWIFT_HOST_VARIANT_ARCH STREQUAL aarch64) AND
(SWIFT_HOST_VARIANT_SDK STREQUAL LINUX OR
SWIFT_HOST_VARIANT_SDK STREQUAL ANDROID))
if((SWIFT_HOST_VARIANT_ARCH STREQUAL "armv7" OR
SWIFT_HOST_VARIANT_ARCH STREQUAL "aarch64") AND
(SWIFT_HOST_VARIANT_SDK STREQUAL "LINUX" OR
SWIFT_HOST_VARIANT_SDK STREQUAL "ANDROID"))
target_compile_options(${target} PRIVATE $<$<COMPILE_LANGUAGE:C,CXX,OBJC,OBJCXX>:-funwind-tables>)
endif()

if(SWIFT_HOST_VARIANT_SDK STREQUAL "LINUX")
if(SWIFT_HOST_VARIANT_ARCH STREQUAL x86_64)
if(SWIFT_HOST_VARIANT_ARCH STREQUAL "x86_64")
# this is the minimum architecture that supports 16 byte CAS, which is
# necessary to avoid a dependency to libatomic
target_compile_options(${target} PRIVATE $<$<COMPILE_LANGUAGE:C,CXX,OBJC,OBJCXX>:-march=core2>)
Expand All @@ -336,7 +336,7 @@ function(_add_host_variant_c_compile_flags target)
# llvm/llvm-project@66395c9, which can cause incompatibilities with the Swift
# frontend if not built the same way.
if("${SWIFT_HOST_VARIANT_ARCH}" MATCHES "armv6|armv7|i686" AND
NOT (SWIFT_HOST_VARIANT_SDK STREQUAL ANDROID AND SWIFT_ANDROID_API_LEVEL LESS 24))
NOT (SWIFT_HOST_VARIANT_SDK STREQUAL "ANDROID" AND SWIFT_ANDROID_API_LEVEL LESS 24))
target_compile_definitions(${target} PRIVATE
$<$<COMPILE_LANGUAGE:C,CXX,OBJC,OBJCXX>:_LARGEFILE_SOURCE _FILE_OFFSET_BITS=64>)
endif()
Expand All @@ -345,19 +345,19 @@ endfunction()
function(_add_host_variant_link_flags target)
_add_host_variant_c_compile_link_flags(${target})

if(SWIFT_HOST_VARIANT_SDK STREQUAL LINUX)
if(SWIFT_HOST_VARIANT_SDK STREQUAL "LINUX")
target_link_libraries(${target} PRIVATE
pthread
dl)
if("${SWIFT_HOST_VARIANT_ARCH}" MATCHES "armv5|armv6|armv7|i686")
target_link_libraries(${target} PRIVATE atomic)
endif()
elseif(SWIFT_HOST_VARIANT_SDK STREQUAL FREEBSD)
elseif(SWIFT_HOST_VARIANT_SDK STREQUAL "FREEBSD")
target_link_libraries(${target} PRIVATE
pthread)
elseif(SWIFT_HOST_VARIANT_SDK STREQUAL CYGWIN)
elseif(SWIFT_HOST_VARIANT_SDK STREQUAL "CYGWIN")
# No extra libraries required.
elseif(SWIFT_HOST_VARIANT_SDK STREQUAL WINDOWS)
elseif(SWIFT_HOST_VARIANT_SDK STREQUAL "WINDOWS")
# We don't need to add -nostdlib using MSVC or clang-cl, as MSVC and
# clang-cl rely on auto-linking entirely.
if(NOT SWIFT_COMPILER_IS_MSVC_LIKE)
Expand All @@ -375,12 +375,12 @@ function(_add_host_variant_link_flags target)
# the Windows SDK on case sensitive file systems.
target_link_directories(${target} PRIVATE
${CMAKE_BINARY_DIR}/winsdk_lib_${SWIFT_HOST_VARIANT_ARCH}_symlinks)
elseif(SWIFT_HOST_VARIANT_SDK STREQUAL HAIKU)
elseif(SWIFT_HOST_VARIANT_SDK STREQUAL "HAIKU")
target_link_libraries(${target} PRIVATE
bsd)
target_link_options(${target} PRIVATE
"SHELL:-Xlinker -Bsymbolic")
elseif(SWIFT_HOST_VARIANT_SDK STREQUAL ANDROID)
elseif(SWIFT_HOST_VARIANT_SDK STREQUAL "ANDROID")
target_link_libraries(${target} PRIVATE
dl
log
Expand Down Expand Up @@ -422,7 +422,7 @@ function(_add_host_variant_link_flags target)
#
# TODO: Evaluate/enable -f{function,data}-sections --gc-sections for bfd,
# gold, and lld.
if(NOT CMAKE_BUILD_TYPE STREQUAL Debug AND CMAKE_SYSTEM_NAME MATCHES Darwin)
if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug" AND CMAKE_SYSTEM_NAME MATCHES Darwin)
if (NOT SWIFT_DISABLE_DEAD_STRIPPING)
# See rdar://48283130: This gives 6MB+ size reductions for swift and
# SourceKitService, and much larger size reductions for sil-opt etc.
Expand All @@ -446,7 +446,7 @@ function(_add_swift_runtime_link_flags target relpath_to_lib_dir bootstrapping)
# RPATH where Swift runtime can be found.
set(swift_runtime_rpath)

if(${SWIFT_HOST_VARIANT_SDK} IN_LIST SWIFT_DARWIN_PLATFORMS)
if(SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_DARWIN_PLATFORMS)

set(sdk_dir "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_ARCH_${SWIFT_HOST_VARIANT_ARCH}_PATH}/usr/lib/swift")

Expand Down Expand Up @@ -529,7 +529,7 @@ function(_add_swift_runtime_link_flags target relpath_to_lib_dir bootstrapping)

elseif(SWIFT_HOST_VARIANT_SDK MATCHES "LINUX|ANDROID|OPENBSD|FREEBSD")
set(swiftrt "swiftImageRegistrationObject${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_OBJECT_FORMAT}-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}")
if(${ASRLF_BOOTSTRAPPING_MODE} MATCHES "HOSTTOOLS|CROSSCOMPILE")
if(ASRLF_BOOTSTRAPPING_MODE MATCHES "HOSTTOOLS|CROSSCOMPILE")
# At build time and run time, link against the swift libraries in the
# installed host toolchain.
get_filename_component(swift_bin_dir ${SWIFT_EXEC_FOR_SWIFT_MODULES} DIRECTORY)
Expand Down Expand Up @@ -575,7 +575,7 @@ function(_add_swift_runtime_link_flags target relpath_to_lib_dir bootstrapping)
# able to fall back to the SDK directory for libswiftCore et al.
if (BOOTSTRAPPING_MODE MATCHES "BOOTSTRAPPING.*")
if (NOT "${bootstrapping}" STREQUAL "1")
if(${SWIFT_HOST_VARIANT_SDK} IN_LIST SWIFT_DARWIN_PLATFORMS)
if(SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_DARWIN_PLATFORMS)
target_link_directories(${target} PRIVATE "${sdk_dir}")

# Include the abi stable system stdlib in our rpath.
Expand Down Expand Up @@ -706,10 +706,10 @@ function(add_swift_host_library name)
if(SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_DARWIN_PLATFORMS)
set_target_properties(${name} PROPERTIES
INSTALL_NAME_DIR "@rpath")
elseif(SWIFT_HOST_VARIANT_SDK STREQUAL LINUX)
elseif(SWIFT_HOST_VARIANT_SDK STREQUAL "LINUX")
set_target_properties(${name} PROPERTIES
INSTALL_RPATH "$ORIGIN")
elseif(SWIFT_HOST_VARIANT_SDK STREQUAL CYGWIN)
elseif(SWIFT_HOST_VARIANT_SDK STREQUAL "CYGWIN")
set_target_properties(${name} PROPERTIES
INSTALL_RPATH "$ORIGIN:/usr/lib/swift/cygwin")
elseif(SWIFT_HOST_VARIANT_SDK STREQUAL "ANDROID")
Expand All @@ -731,18 +731,18 @@ function(add_swift_host_library name)
endif()

# Set compilation and link flags.
if(SWIFT_HOST_VARIANT_SDK STREQUAL WINDOWS)
if(SWIFT_HOST_VARIANT_SDK STREQUAL "WINDOWS")
swift_windows_include_for_arch(${SWIFT_HOST_VARIANT_ARCH}
${SWIFT_HOST_VARIANT_ARCH}_INCLUDE)
target_include_directories(${name} SYSTEM PRIVATE
${${SWIFT_HOST_VARIANT_ARCH}_INCLUDE})

if(libkind STREQUAL SHARED)
if(libkind STREQUAL "SHARED")
target_compile_definitions(${name} PRIVATE
_WINDLL)
endif()

if(NOT ${CMAKE_C_COMPILER_ID} STREQUAL MSVC)
if(NOT CMAKE_C_COMPILER_ID STREQUAL "MSVC")
swift_windows_get_sdk_vfs_overlay(ASHL_VFS_OVERLAY)
# Both clang and clang-cl on Windows set CMAKE_C_SIMULATE_ID to MSVC.
# We are using CMAKE_C_COMPILER_FRONTEND_VARIANT to detect the correct
Expand Down Expand Up @@ -770,7 +770,7 @@ function(add_swift_host_library name)

set_target_properties(${name} PROPERTIES LINKER_LANGUAGE CXX)

if(${SWIFT_HOST_VARIANT_SDK} IN_LIST SWIFT_DARWIN_PLATFORMS)
if(SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_DARWIN_PLATFORMS)
target_link_options(${name} PRIVATE
"LINKER:-compatibility_version,1")
if(SWIFT_COMPILER_VERSION)
Expand Down Expand Up @@ -856,7 +856,7 @@ function(add_swift_host_tool executable)
add_dependencies(${executable} ${LLVM_COMMON_DEPENDS})
endif()

if(NOT ${ASHT_BOOTSTRAPPING} STREQUAL "")
if(NOT "${ASHT_BOOTSTRAPPING}" STREQUAL "")
# Strip the "-bootstrapping<n>" suffix from the target name to get the base
# executable name.
string(REGEX REPLACE "-bootstrapping.*" "" executable_filename ${executable})
Expand Down Expand Up @@ -891,7 +891,7 @@ function(add_swift_host_tool executable)
BINARY_DIR ${out_bin_dir}
LIBRARY_DIR ${out_lib_dir})

if(SWIFT_HOST_VARIANT_SDK STREQUAL WINDOWS)
if(SWIFT_HOST_VARIANT_SDK STREQUAL "WINDOWS")
swift_windows_include_for_arch(${SWIFT_HOST_VARIANT_ARCH}
${SWIFT_HOST_VARIANT_ARCH}_INCLUDE)
target_include_directories(${executable} SYSTEM PRIVATE
Expand All @@ -913,8 +913,8 @@ function(add_swift_host_tool executable)

if(SWIFT_SWIFT_PARSER)
set(extra_relative_rpath "")
if(NOT ${ASHT_BOOTSTRAPPING} STREQUAL "")
if (${executable} MATCHES "-bootstrapping")
if(NOT "${ASHT_BOOTSTRAPPING}" STREQUAL "")
if(executable MATCHES "-bootstrapping")
set(extra_relative_rpath "../")
endif()
endif()
Expand All @@ -938,7 +938,7 @@ function(add_swift_host_tool executable)
target_link_options(${executable} PRIVATE "${lto_codegen_only_link_options}")
endif()

if(NOT ${ASHT_SWIFT_COMPONENT} STREQUAL "no_component")
if(NOT ASHT_SWIFT_COMPONENT STREQUAL "no_component")
add_dependencies(${ASHT_SWIFT_COMPONENT} ${executable})
swift_install_in_component(TARGETS ${executable}
RUNTIME
Expand Down

0 comments on commit 112681f

Please sign in to comment.