Skip to content

Commit 749dd26

Browse files
committed
build: inline constant values for _add_swift_host_library_single
1 parent f11ecde commit 749dd26

File tree

1 file changed

+26
-49
lines changed

1 file changed

+26
-49
lines changed

cmake/modules/AddSwift.cmake

Lines changed: 26 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -675,10 +675,7 @@ endfunction()
675675
# target
676676
# [SHARED]
677677
# [STATIC]
678-
# [SDK sdk]
679-
# [ARCHITECTURE architecture]
680678
# [LLVM_LINK_COMPONENTS comp1 ...]
681-
# INSTALL_IN_COMPONENT comp
682679
# source1 [source2 source3 ...])
683680
#
684681
# target
@@ -690,28 +687,16 @@ endfunction()
690687
# STATIC
691688
# Build a static library.
692689
#
693-
# SDK sdk
694-
# SDK to build for.
695-
#
696-
# ARCHITECTURE
697-
# Architecture to build for.
698-
#
699690
# LLVM_LINK_COMPONENTS
700691
# LLVM components this library depends on.
701692
#
702-
# INSTALL_IN_COMPONENT comp
703-
# The Swift installation component that this library belongs to.
704-
#
705693
# source1 ...
706694
# Sources to add into this library
707695
function(_add_swift_host_library_single target)
708696
set(SWIFTLIB_SINGLE_options
709697
SHARED
710698
STATIC)
711-
set(SWIFTLIB_SINGLE_single_parameter_options
712-
ARCHITECTURE
713-
INSTALL_IN_COMPONENT
714-
SDK)
699+
set(SWIFTLIB_SINGLE_single_parameter_options)
715700
set(SWIFTLIB_SINGLE_multiple_parameter_options
716701
GYB_SOURCES
717702
LLVM_LINK_COMPONENTS)
@@ -726,23 +711,18 @@ function(_add_swift_host_library_single target)
726711

727712
translate_flags(SWIFTLIB_SINGLE "${SWIFTLIB_SINGLE_options}")
728713

729-
# Check arguments.
730-
precondition(SWIFTLIB_SINGLE_SDK MESSAGE "Should specify an SDK")
731-
precondition(SWIFTLIB_SINGLE_ARCHITECTURE MESSAGE "Should specify an architecture")
732-
precondition(SWIFTLIB_SINGLE_INSTALL_IN_COMPONENT MESSAGE "INSTALL_IN_COMPONENT is required")
733-
734714
if(NOT SWIFTLIB_SINGLE_SHARED AND NOT SWIFTLIB_SINGLE_STATIC)
735715
message(FATAL_ERROR "Either SHARED or STATIC must be specified")
736716
endif()
737717

738718
# Determine the subdirectory where this library will be installed.
739719
set(SWIFTLIB_SINGLE_SUBDIR
740-
"${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}/${SWIFTLIB_SINGLE_ARCHITECTURE}")
720+
"${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}/${SWIFT_HOST_VARIANT_ARCH}")
741721

742722
# Include LLVM Bitcode slices for iOS, Watch OS, and Apple TV OS device libraries.
743723
set(embed_bitcode_arg)
744724
if(SWIFT_EMBED_BITCODE_SECTION)
745-
if("${SWIFTLIB_SINGLE_SDK}" STREQUAL "IOS" OR "${SWIFTLIB_SINGLE_SDK}" STREQUAL "TVOS" OR "${SWIFTLIB_SINGLE_SDK}" STREQUAL "WATCHOS")
725+
if("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "IOS" OR "${SWIFT_HOST_VARIANT_SDK}" STREQUAL "TVOS" OR "${SWIFT_HOST_VARIANT_SDK}" STREQUAL "WATCHOS")
746726
list(APPEND SWIFTLIB_SINGLE_C_COMPILE_FLAGS "-fembed-bitcode")
747727
set(embed_bitcode_arg EMBED_BITCODE)
748728
endif()
@@ -777,24 +757,24 @@ function(_add_swift_host_library_single target)
777757
handle_gyb_sources(
778758
gyb_dependency_targets
779759
SWIFTLIB_SINGLE_GYB_SOURCES
780-
"${SWIFTLIB_SINGLE_ARCHITECTURE}")
760+
"${SWIFT_HOST_VARIANT_ARCH}")
781761
set(SWIFTLIB_SINGLE_SOURCES ${SWIFTLIB_SINGLE_SOURCES}
782762
${SWIFTLIB_SINGLE_GYB_SOURCES})
783763
endif()
784764

785765
add_library("${target}" ${libkind}
786766
${SWIFTLIB_SINGLE_SOURCES})
787-
_set_target_prefix_and_suffix("${target}" "${libkind}" "${SWIFTLIB_SINGLE_SDK}")
767+
_set_target_prefix_and_suffix("${target}" "${libkind}" "${SWIFT_HOST_VARIANT_SDK}")
788768

789-
if("${SWIFTLIB_SINGLE_SDK}" STREQUAL "WINDOWS")
790-
swift_windows_include_for_arch(${SWIFTLIB_SINGLE_ARCHITECTURE} SWIFTLIB_INCLUDE)
769+
if("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "WINDOWS")
770+
swift_windows_include_for_arch(${SWIFT_HOST_VARIANT_ARCH} SWIFTLIB_INCLUDE)
791771
target_include_directories("${target}" SYSTEM PRIVATE ${SWIFTLIB_INCLUDE})
792772
set_target_properties(${target}
793773
PROPERTIES
794774
CXX_STANDARD 14)
795775
endif()
796776

797-
if("${SWIFTLIB_SINGLE_SDK}" STREQUAL "WINDOWS" AND NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
777+
if("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "WINDOWS" AND NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
798778
if("${libkind}" STREQUAL "SHARED")
799779
# Each dll has an associated .lib (import library); since we may be
800780
# building on a non-DLL platform (not windows), create an imported target
@@ -816,19 +796,19 @@ function(_add_swift_host_library_single target)
816796
BINARY_DIR ${SWIFT_RUNTIME_OUTPUT_INTDIR}
817797
LIBRARY_DIR ${SWIFT_LIBRARY_OUTPUT_INTDIR})
818798

819-
if(SWIFTLIB_SINGLE_SDK IN_LIST SWIFT_APPLE_PLATFORMS)
799+
if(SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_APPLE_PLATFORMS)
820800
set_target_properties("${target}"
821801
PROPERTIES
822802
INSTALL_NAME_DIR "@rpath")
823-
elseif("${SWIFTLIB_SINGLE_SDK}" STREQUAL "LINUX")
803+
elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "LINUX")
824804
set_target_properties("${target}"
825805
PROPERTIES
826806
INSTALL_RPATH "$ORIGIN:/usr/lib/swift/linux")
827-
elseif("${SWIFTLIB_SINGLE_SDK}" STREQUAL "CYGWIN")
807+
elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "CYGWIN")
828808
set_target_properties("${target}"
829809
PROPERTIES
830810
INSTALL_RPATH "$ORIGIN:/usr/lib/swift/cygwin")
831-
elseif("${SWIFTLIB_SINGLE_SDK}" STREQUAL "ANDROID")
811+
elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "ANDROID")
832812
# Only set the install RPATH if cross-compiling the host tools, in which
833813
# case both the NDK and Sysroot paths must be set.
834814
if(NOT "${SWIFT_ANDROID_NDK_PATH}" STREQUAL "" AND
@@ -857,11 +837,11 @@ function(_add_swift_host_library_single target)
857837
set(c_compile_flags ${SWIFTLIB_SINGLE_C_COMPILE_FLAGS})
858838
set(link_flags)
859839

860-
set(library_search_subdir "${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}")
840+
set(library_search_subdir "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
861841
set(library_search_directories
862842
"${SWIFTLIB_DIR}/${SWIFTLIB_SINGLE_SUBDIR}"
863843
"${SWIFT_NATIVE_SWIFT_TOOLS_PATH}/../lib/swift/${SWIFTLIB_SINGLE_SUBDIR}"
864-
"${SWIFT_NATIVE_SWIFT_TOOLS_PATH}/../lib/swift/${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}")
844+
"${SWIFT_NATIVE_SWIFT_TOOLS_PATH}/../lib/swift/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
865845

866846
# In certain cases when building, the environment variable SDKROOT is set to override
867847
# where the sdk root is located in the system. If that environment variable has been
@@ -872,38 +852,38 @@ function(_add_swift_host_library_single target)
872852
endif()
873853

874854
_add_variant_c_compile_flags(
875-
SDK "${SWIFTLIB_SINGLE_SDK}"
876-
ARCH "${SWIFTLIB_SINGLE_ARCHITECTURE}"
855+
SDK "${SWIFT_HOST_VARIANT_SDK}"
856+
ARCH "${SWIFT_HOST_VARIANT_ARCH}"
877857
BUILD_TYPE ${CMAKE_BUILD_TYPE}
878858
ENABLE_ASSERTIONS ${LLVM_ENABLE_ASSERTIONS}
879859
ANALYZE_CODE_COVERAGE ${SWIFT_ANALYZE_CODE_COVERAGE}
880860
ENABLE_LTO ${SWIFT_TOOLS_ENABLE_LTO}
881861
RESULT_VAR_NAME c_compile_flags
882862
)
883863

884-
if(SWIFTLIB_SINGLE_SDK STREQUAL WINDOWS)
864+
if(SWIFT_HOST_VARIANT_SDK STREQUAL WINDOWS)
885865
if(libkind STREQUAL SHARED)
886866
list(APPEND c_compile_flags -D_WINDLL)
887867
endif()
888868
endif()
889869
_add_variant_link_flags(
890-
SDK "${SWIFTLIB_SINGLE_SDK}"
891-
ARCH "${SWIFTLIB_SINGLE_ARCHITECTURE}"
870+
SDK "${SWIFT_HOST_VARIANT_SDK}"
871+
ARCH "${SWIFT_HOST_VARIANT_ARCH}"
892872
BUILD_TYPE ${CMAKE_BUILD_TYPE}
893873
ENABLE_ASSERTIONS ${LLVM_ENABLE_ASSERTIONS}
894874
ANALYZE_CODE_COVERAGE ${SWIFT_ANALYZE_CODE_COVERAGE}
895875
ENABLE_LTO ${SWIFT_TOOLS_ENABLE_LTO}
896-
LTO_OBJECT_NAME "${target}-${SWIFTLIB_SINGLE_SDK}-${SWIFTLIB_SINGLE_ARCHITECTURE}"
876+
LTO_OBJECT_NAME "${target}-${SWIFT_HOST_VARIANT_SDK}-${SWIFT_HOST_VARIANT_ARCH}"
897877
RESULT_VAR_NAME link_flags
898878
LIBRARY_SEARCH_DIRECTORIES_VAR_NAME library_search_directories
899879
)
900880

901881
# Set compilation and link flags.
902-
if(SWIFTLIB_SINGLE_SDK STREQUAL WINDOWS)
903-
swift_windows_include_for_arch(${SWIFTLIB_SINGLE_ARCHITECTURE}
904-
${SWIFTLIB_SINGLE_ARCHITECTURE}_INCLUDE)
882+
if(SWIFT_HOST_VARIANT_SDK STREQUAL WINDOWS)
883+
swift_windows_include_for_arch(${SWIFT_HOST_VARIANT_ARCH}
884+
${SWIFT_HOST_VARIANT_ARCH}_INCLUDE)
905885
target_include_directories(${target} SYSTEM PRIVATE
906-
${${SWIFTLIB_SINGLE_ARCHITECTURE}_INCLUDE})
886+
${${SWIFT_HOST_VARIANT_ARCH}_INCLUDE})
907887

908888
if(NOT ${CMAKE_C_COMPILER_ID} STREQUAL MSVC)
909889
swift_windows_get_sdk_vfs_overlay(SWIFTLIB_SINGLE_VFS_OVERLAY)
@@ -923,7 +903,7 @@ function(_add_swift_host_library_single target)
923903
${c_compile_flags})
924904
target_link_options(${target} PRIVATE
925905
${link_flags})
926-
if(${SWIFTLIB_SINGLE_SDK} IN_LIST SWIFT_APPLE_PLATFORMS)
906+
if(${SWIFT_HOST_VARIANT_SDK} IN_LIST SWIFT_APPLE_PLATFORMS)
927907
target_link_options(${target} PRIVATE
928908
"LINKER:-compatibility_version,1")
929909
if(SWIFT_COMPILER_VERSION)
@@ -932,7 +912,7 @@ function(_add_swift_host_library_single target)
932912
endif()
933913
# Include LLVM Bitcode slices for iOS, Watch OS, and Apple TV OS device libraries.
934914
if(SWIFT_EMBED_BITCODE_SECTION)
935-
if(${SWIFTLIB_SINGLE_SDK} MATCHES "(I|TV|WATCH)OS")
915+
if(${SWIFT_HOST_VARIANT_SDK} MATCHES "(I|TV|WATCH)OS")
936916
# The two branches of this if statement accomplish the same end result
937917
# We are simply accounting for the fact that on CMake < 3.16
938918
# using a generator expression to
@@ -1014,10 +994,7 @@ function(add_swift_host_library name)
1014994
${ASHL_SHARED_keyword}
1015995
${ASHL_STATIC_keyword}
1016996
${ASHL_SOURCES}
1017-
SDK ${SWIFT_HOST_VARIANT_SDK}
1018-
ARCHITECTURE ${SWIFT_HOST_VARIANT_ARCH}
1019997
LLVM_LINK_COMPONENTS ${ASHL_LLVM_LINK_COMPONENTS}
1020-
INSTALL_IN_COMPONENT "dev"
1021998
)
1022999

10231000
add_dependencies(dev ${name})

0 commit comments

Comments
 (0)