@@ -673,19 +673,12 @@ endfunction()
673
673
# Usage:
674
674
# _add_swift_host_library_single(
675
675
# target
676
- # name
677
676
# [SHARED]
678
677
# [STATIC]
679
- # [SDK sdk]
680
- # [ARCHITECTURE architecture]
681
678
# [LLVM_LINK_COMPONENTS comp1 ...]
682
- # INSTALL_IN_COMPONENT comp
683
679
# source1 [source2 source3 ...])
684
680
#
685
681
# target
686
- # Name of the target (e.g., swiftParse-IOS-armv7).
687
- #
688
- # name
689
682
# Name of the library (e.g., swiftParse).
690
683
#
691
684
# SHARED
@@ -694,123 +687,91 @@ endfunction()
694
687
# STATIC
695
688
# Build a static library.
696
689
#
697
- # SDK sdk
698
- # SDK to build for.
699
- #
700
- # ARCHITECTURE
701
- # Architecture to build for.
702
- #
703
690
# LLVM_LINK_COMPONENTS
704
691
# LLVM components this library depends on.
705
692
#
706
- # INSTALL_IN_COMPONENT comp
707
- # The Swift installation component that this library belongs to.
708
- #
709
693
# source1 ...
710
694
# Sources to add into this library
711
- function (_add_swift_host_library_single target name )
712
- set (SWIFTLIB_SINGLE_options
695
+ function (_add_swift_host_library_single target )
696
+ set (options
713
697
SHARED
714
698
STATIC )
715
- set (SWIFTLIB_SINGLE_single_parameter_options
716
- ARCHITECTURE
717
- INSTALL_IN_COMPONENT
718
- SDK )
719
- set (SWIFTLIB_SINGLE_multiple_parameter_options
699
+ set (single_parameter_options )
700
+ set (multiple_parameter_options
720
701
GYB_SOURCES
721
702
LLVM_LINK_COMPONENTS )
722
703
723
- cmake_parse_arguments (SWIFTLIB_SINGLE
724
- "${SWIFTLIB_SINGLE_options } "
725
- "${SWIFTLIB_SINGLE_single_parameter_options } "
726
- "${SWIFTLIB_SINGLE_multiple_parameter_options } "
704
+ cmake_parse_arguments (ASHLS
705
+ "${options } "
706
+ "${single_parameter_options } "
707
+ "${multiple_parameter_options } "
727
708
${ARGN} )
709
+ set (ASHLS_SOURCES ${ASHLS_UNPARSED_ARGUMENTS} )
728
710
729
- set (SWIFTLIB_SINGLE_SOURCES ${SWIFTLIB_SINGLE_UNPARSED_ARGUMENTS} )
730
-
731
- translate_flags (SWIFTLIB_SINGLE "${SWIFTLIB_SINGLE_options} " )
732
-
733
- # Check arguments.
734
- precondition (SWIFTLIB_SINGLE_SDK MESSAGE "Should specify an SDK" )
735
- precondition (SWIFTLIB_SINGLE_ARCHITECTURE MESSAGE "Should specify an architecture" )
736
- precondition (SWIFTLIB_SINGLE_INSTALL_IN_COMPONENT MESSAGE "INSTALL_IN_COMPONENT is required" )
711
+ translate_flags (ASHLS "${options} " )
737
712
738
- if (NOT SWIFTLIB_SINGLE_SHARED AND NOT SWIFTLIB_SINGLE_STATIC )
713
+ if (NOT ASHLS_SHARED AND NOT ASHLS_STATIC )
739
714
message (FATAL_ERROR "Either SHARED or STATIC must be specified" )
740
715
endif ()
741
716
742
717
# Determine the subdirectory where this library will be installed.
743
- set (SWIFTLIB_SINGLE_SUBDIR
744
- "${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK } _LIB_SUBDIR}/${SWIFTLIB_SINGLE_ARCHITECTURE } " )
718
+ set (ASHLS_SUBDIR
719
+ "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK } _LIB_SUBDIR}/${SWIFT_HOST_VARIANT_ARCH } " )
745
720
746
721
# Include LLVM Bitcode slices for iOS, Watch OS, and Apple TV OS device libraries.
747
722
set (embed_bitcode_arg )
748
723
if (SWIFT_EMBED_BITCODE_SECTION )
749
- if (" ${SWIFTLIB_SINGLE_SDK} " STREQUAL "IOS" OR " ${SWIFTLIB_SINGLE_SDK} " STREQUAL "TVOS" OR " ${SWIFTLIB_SINGLE_SDK} " STREQUAL "WATCHOS " )
750
- list (APPEND SWIFTLIB_SINGLE_C_COMPILE_FLAGS "-fembed-bitcode" )
724
+ if (SWIFT_HOST_VARIANT_SDK MATCHES "(I|TV|WATCH)OS " )
725
+ list (APPEND ASHLS_C_COMPILE_FLAGS "-fembed-bitcode" )
751
726
set (embed_bitcode_arg EMBED_BITCODE )
752
727
endif ()
753
728
endif ()
754
729
755
730
if (XCODE )
756
731
string (REGEX MATCHALL "/[^/]+" split_path ${CMAKE_CURRENT_SOURCE_DIR} )
757
732
list (GET split_path -1 dir )
758
- file (GLOB_RECURSE SWIFTLIB_SINGLE_HEADERS
733
+ file (GLOB_RECURSE ASHLS_HEADERS
759
734
${SWIFT_SOURCE_DIR} /include/swift${dir}/*.h
760
735
${SWIFT_SOURCE_DIR} /include/swift${dir}/*.def
761
736
${CMAKE_CURRENT_SOURCE_DIR} /*.def )
762
737
763
- file (GLOB_RECURSE SWIFTLIB_SINGLE_TDS
738
+ file (GLOB_RECURSE ASHLS_TDS
764
739
${SWIFT_SOURCE_DIR} /include/swift${dir}/*.td )
765
740
766
- set_source_files_properties (${SWIFTLIB_SINGLE_HEADERS } ${SWIFTLIB_SINGLE_TDS }
741
+ set_source_files_properties (${ASHLS_HEADERS } ${ASHLS_TDS }
767
742
PROPERTIES
768
743
HEADER_FILE_ONLY true )
769
- source_group ("TableGen descriptions" FILES ${SWIFTLIB_SINGLE_TDS } )
744
+ source_group ("TableGen descriptions" FILES ${ASHLS_TDS } )
770
745
771
- set (SWIFTLIB_SINGLE_SOURCES ${SWIFTLIB_SINGLE_SOURCES } ${SWIFTLIB_SINGLE_HEADERS } ${SWIFTLIB_SINGLE_TDS } )
746
+ set (ASHLS_SOURCES ${ASHLS_SOURCES } ${ASHLS_HEADERS } ${ASHLS_TDS } )
772
747
endif ()
773
748
774
- if (SWIFTLIB_SINGLE_SHARED )
749
+ if (ASHLS_SHARED )
775
750
set (libkind SHARED )
776
- elseif (SWIFTLIB_SINGLE_STATIC )
751
+ elseif (ASHLS_STATIC )
777
752
set (libkind STATIC )
778
753
endif ()
779
754
780
- if (SWIFTLIB_SINGLE_GYB_SOURCES )
755
+ if (ASHLS_GYB_SOURCES )
781
756
handle_gyb_sources (
782
757
gyb_dependency_targets
783
- SWIFTLIB_SINGLE_GYB_SOURCES
784
- "${SWIFTLIB_SINGLE_ARCHITECTURE} " )
785
- set (SWIFTLIB_SINGLE_SOURCES ${SWIFTLIB_SINGLE_SOURCES}
786
- ${SWIFTLIB_SINGLE_GYB_SOURCES} )
758
+ ASHLS_GYB_SOURCES
759
+ "${SWIFT_HOST_VARIANT_ARCH} " )
760
+ set (ASHLS_SOURCES ${ASHLS_SOURCES} ${ASHLS_GYB_SOURCES} )
787
761
endif ()
788
762
789
- add_library ("${target} " ${libkind}
790
- ${SWIFTLIB_SINGLE_SOURCES} )
791
- _set_target_prefix_and_suffix ("${target} " "${libkind} " "${SWIFTLIB_SINGLE_SDK} " )
763
+ add_library ("${target} " ${libkind} ${ASHLS_SOURCES} )
764
+ _set_target_prefix_and_suffix ("${target} " "${libkind} " "${SWIFT_HOST_VARIANT_SDK} " )
792
765
793
- if ("${SWIFTLIB_SINGLE_SDK } " STREQUAL "WINDOWS" )
794
- swift_windows_include_for_arch (${SWIFTLIB_SINGLE_ARCHITECTURE } SWIFTLIB_INCLUDE )
766
+ if ("${SWIFT_HOST_VARIANT_SDK } " STREQUAL "WINDOWS" )
767
+ swift_windows_include_for_arch (${SWIFT_HOST_VARIANT_ARCH } SWIFTLIB_INCLUDE )
795
768
target_include_directories ("${target} " SYSTEM PRIVATE ${SWIFTLIB_INCLUDE} )
796
769
set_target_properties (${target}
797
770
PROPERTIES
798
771
CXX_STANDARD 14 )
799
772
endif ()
800
773
801
- if ("${SWIFTLIB_SINGLE_SDK} " STREQUAL "WINDOWS" AND NOT "${CMAKE_SYSTEM_NAME} " STREQUAL "Windows" )
802
- if ("${libkind} " STREQUAL "SHARED" )
803
- # Each dll has an associated .lib (import library); since we may be
804
- # building on a non-DLL platform (not windows), create an imported target
805
- # for the library which created implicitly by the dll.
806
- add_custom_command_target (${target} _IMPORT_LIBRARY
807
- OUTPUT "${SWIFTLIB_DIR} /${SWIFTLIB_SINGLE_SUBDIR} /${name} .lib"
808
- DEPENDS "${target} " )
809
- add_library (${target} _IMPLIB SHARED IMPORTED GLOBAL )
810
- set_property (TARGET "${target} _IMPLIB" PROPERTY
811
- IMPORTED_LOCATION "${SWIFTLIB_DIR} /${SWIFTLIB_SINGLE_SUBDIR} /${name} .lib" )
812
- add_dependencies (${target} _IMPLIB ${${target}_IMPORT_LIBRARY} )
813
- endif ()
774
+ if (SWIFT_HOST_VARIANT_SDK STREQUAL WINDOWS )
814
775
set_property (TARGET "${target} " PROPERTY NO_SONAME ON )
815
776
endif ()
816
777
@@ -820,19 +781,19 @@ function(_add_swift_host_library_single target name)
820
781
BINARY_DIR ${SWIFT_RUNTIME_OUTPUT_INTDIR}
821
782
LIBRARY_DIR ${SWIFT_LIBRARY_OUTPUT_INTDIR} )
822
783
823
- if (SWIFTLIB_SINGLE_SDK IN_LIST SWIFT_APPLE_PLATFORMS )
784
+ if (SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_APPLE_PLATFORMS )
824
785
set_target_properties ("${target} "
825
786
PROPERTIES
826
787
INSTALL_NAME_DIR "@rpath" )
827
- elseif ("${SWIFTLIB_SINGLE_SDK } " STREQUAL "LINUX" )
788
+ elseif ("${SWIFT_HOST_VARIANT_SDK } " STREQUAL "LINUX" )
828
789
set_target_properties ("${target} "
829
790
PROPERTIES
830
791
INSTALL_RPATH "$ORIGIN:/usr/lib/swift/linux" )
831
- elseif ("${SWIFTLIB_SINGLE_SDK } " STREQUAL "CYGWIN" )
792
+ elseif ("${SWIFT_HOST_VARIANT_SDK } " STREQUAL "CYGWIN" )
832
793
set_target_properties ("${target} "
833
794
PROPERTIES
834
795
INSTALL_RPATH "$ORIGIN:/usr/lib/swift/cygwin" )
835
- elseif ("${SWIFTLIB_SINGLE_SDK } " STREQUAL "ANDROID" )
796
+ elseif ("${SWIFT_HOST_VARIANT_SDK } " STREQUAL "ANDROID" )
836
797
# Only set the install RPATH if cross-compiling the host tools, in which
837
798
# case both the NDK and Sysroot paths must be set.
838
799
if (NOT "${SWIFT_ANDROID_NDK_PATH} " STREQUAL "" AND
@@ -846,11 +807,6 @@ function(_add_swift_host_library_single target name)
846
807
set_target_properties ("${target} " PROPERTIES BUILD_WITH_INSTALL_RPATH YES )
847
808
set_target_properties ("${target} " PROPERTIES FOLDER "Swift libraries" )
848
809
849
- set_target_properties (${target}
850
- PROPERTIES
851
- # Library name (without the variant information)
852
- OUTPUT_NAME ${name} )
853
-
854
810
# Handle linking and dependencies.
855
811
add_dependencies_multiple_targets (
856
812
TARGETS "${target} "
@@ -859,18 +815,18 @@ function(_add_swift_host_library_single target name)
859
815
${LLVM_COMMON_DEPENDS} )
860
816
861
817
# Call llvm_config() only for libraries that are part of the compiler.
862
- swift_common_llvm_config ("${target} " ${SWIFTLIB_SINGLE_LLVM_LINK_COMPONENTS } )
818
+ swift_common_llvm_config ("${target} " ${ASHLS_LLVM_LINK_COMPONENTS } )
863
819
864
820
# Collect compile and link flags for the static and non-static targets.
865
821
# Don't set PROPERTY COMPILE_FLAGS or LINK_FLAGS directly.
866
- set (c_compile_flags ${SWIFTLIB_SINGLE_C_COMPILE_FLAGS } )
822
+ set (c_compile_flags ${ASHLS_C_COMPILE_FLAGS } )
867
823
set (link_flags )
868
824
869
- set (library_search_subdir "${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK } _LIB_SUBDIR}" )
825
+ set (library_search_subdir "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK } _LIB_SUBDIR}" )
870
826
set (library_search_directories
871
- "${SWIFTLIB_DIR} /${SWIFTLIB_SINGLE_SUBDIR } "
872
- "${SWIFT_NATIVE_SWIFT_TOOLS_PATH} /../lib/swift/${SWIFTLIB_SINGLE_SUBDIR } "
873
- "${SWIFT_NATIVE_SWIFT_TOOLS_PATH} /../lib/swift/${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK } _LIB_SUBDIR}" )
827
+ "${SWIFTLIB_DIR} /${ASHLS_SUBDIR } "
828
+ "${SWIFT_NATIVE_SWIFT_TOOLS_PATH} /../lib/swift/${ASHLS_SUBDIR } "
829
+ "${SWIFT_NATIVE_SWIFT_TOOLS_PATH} /../lib/swift/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK } _LIB_SUBDIR}" )
874
830
875
831
# In certain cases when building, the environment variable SDKROOT is set to override
876
832
# where the sdk root is located in the system. If that environment variable has been
@@ -881,43 +837,43 @@ function(_add_swift_host_library_single target name)
881
837
endif ()
882
838
883
839
_add_variant_c_compile_flags (
884
- SDK "${SWIFTLIB_SINGLE_SDK } "
885
- ARCH "${SWIFTLIB_SINGLE_ARCHITECTURE } "
840
+ SDK "${SWIFT_HOST_VARIANT_SDK } "
841
+ ARCH "${SWIFT_HOST_VARIANT_ARCH } "
886
842
BUILD_TYPE ${CMAKE_BUILD_TYPE}
887
843
ENABLE_ASSERTIONS ${LLVM_ENABLE_ASSERTIONS}
888
844
ANALYZE_CODE_COVERAGE ${SWIFT_ANALYZE_CODE_COVERAGE}
889
845
ENABLE_LTO ${SWIFT_TOOLS_ENABLE_LTO}
890
846
RESULT_VAR_NAME c_compile_flags
891
847
)
892
848
893
- if (SWIFTLIB_SINGLE_SDK STREQUAL WINDOWS )
849
+ if (SWIFT_HOST_VARIANT_SDK STREQUAL WINDOWS )
894
850
if (libkind STREQUAL SHARED )
895
851
list (APPEND c_compile_flags -D_WINDLL )
896
852
endif ()
897
853
endif ()
898
854
_add_variant_link_flags (
899
- SDK "${SWIFTLIB_SINGLE_SDK } "
900
- ARCH "${SWIFTLIB_SINGLE_ARCHITECTURE } "
855
+ SDK "${SWIFT_HOST_VARIANT_SDK } "
856
+ ARCH "${SWIFT_HOST_VARIANT_ARCH } "
901
857
BUILD_TYPE ${CMAKE_BUILD_TYPE}
902
858
ENABLE_ASSERTIONS ${LLVM_ENABLE_ASSERTIONS}
903
859
ANALYZE_CODE_COVERAGE ${SWIFT_ANALYZE_CODE_COVERAGE}
904
860
ENABLE_LTO ${SWIFT_TOOLS_ENABLE_LTO}
905
- LTO_OBJECT_NAME "${target} -${SWIFTLIB_SINGLE_SDK } -${SWIFTLIB_SINGLE_ARCHITECTURE } "
861
+ LTO_OBJECT_NAME "${target} -${SWIFT_HOST_VARIANT_SDK } -${SWIFT_HOST_VARIANT_ARCH } "
906
862
RESULT_VAR_NAME link_flags
907
863
LIBRARY_SEARCH_DIRECTORIES_VAR_NAME library_search_directories
908
864
)
909
865
910
866
# Set compilation and link flags.
911
- if (SWIFTLIB_SINGLE_SDK STREQUAL WINDOWS )
912
- swift_windows_include_for_arch (${SWIFTLIB_SINGLE_ARCHITECTURE }
913
- ${SWIFTLIB_SINGLE_ARCHITECTURE } _INCLUDE )
867
+ if (SWIFT_HOST_VARIANT_SDK STREQUAL WINDOWS )
868
+ swift_windows_include_for_arch (${SWIFT_HOST_VARIANT_ARCH }
869
+ ${SWIFT_HOST_VARIANT_ARCH } _INCLUDE )
914
870
target_include_directories (${target} SYSTEM PRIVATE
915
- ${${SWIFTLIB_SINGLE_ARCHITECTURE }_INCLUDE} )
871
+ ${${SWIFT_HOST_VARIANT_ARCH }_INCLUDE} )
916
872
917
873
if (NOT ${CMAKE_C_COMPILER_ID} STREQUAL MSVC )
918
- swift_windows_get_sdk_vfs_overlay (SWIFTLIB_SINGLE_VFS_OVERLAY )
874
+ swift_windows_get_sdk_vfs_overlay (ASHLS_VFS_OVERLAY )
919
875
target_compile_options (${target} PRIVATE
920
- "SHELL:-Xclang -ivfsoverlay -Xclang ${SWIFTLIB_SINGLE_VFS_OVERLAY } " )
876
+ "SHELL:-Xclang -ivfsoverlay -Xclang ${ASHLS_VFS_OVERLAY } " )
921
877
922
878
# MSVC doesn't support -Xclang. We don't need to manually specify
923
879
# the dependent libraries as `cl` does so.
@@ -932,7 +888,7 @@ function(_add_swift_host_library_single target name)
932
888
${c_compile_flags} )
933
889
target_link_options (${target} PRIVATE
934
890
${link_flags} )
935
- if (${SWIFTLIB_SINGLE_SDK } IN_LIST SWIFT_APPLE_PLATFORMS )
891
+ if (${SWIFT_HOST_VARIANT_SDK } IN_LIST SWIFT_APPLE_PLATFORMS )
936
892
target_link_options (${target} PRIVATE
937
893
"LINKER:-compatibility_version,1" )
938
894
if (SWIFT_COMPILER_VERSION )
@@ -941,7 +897,7 @@ function(_add_swift_host_library_single target name)
941
897
endif ()
942
898
# Include LLVM Bitcode slices for iOS, Watch OS, and Apple TV OS device libraries.
943
899
if (SWIFT_EMBED_BITCODE_SECTION )
944
- if (${SWIFTLIB_SINGLE_SDK } MATCHES "(I|TV|WATCH)OS" )
900
+ if (${SWIFT_HOST_VARIANT_SDK } MATCHES "(I|TV|WATCH)OS" )
945
901
# The two branches of this if statement accomplish the same end result
946
902
# We are simply accounting for the fact that on CMake < 3.16
947
903
# using a generator expression to
@@ -1019,15 +975,11 @@ function(add_swift_host_library name)
1019
975
endif ()
1020
976
1021
977
_add_swift_host_library_single (
1022
- ${name}
1023
978
${name}
1024
979
${ASHL_SHARED_keyword}
1025
980
${ASHL_STATIC_keyword}
1026
981
${ASHL_SOURCES}
1027
- SDK ${SWIFT_HOST_VARIANT_SDK}
1028
- ARCHITECTURE ${SWIFT_HOST_VARIANT_ARCH}
1029
982
LLVM_LINK_COMPONENTS ${ASHL_LLVM_LINK_COMPONENTS}
1030
- INSTALL_IN_COMPONENT "dev"
1031
983
)
1032
984
1033
985
add_dependencies (dev ${name} )
0 commit comments