@@ -481,28 +481,17 @@ function(add_swift_host_library name)
481481 message (FATAL_ERROR "Either SHARED or STATIC must be specified" )
482482 endif ()
483483
484- # Include LLVM Bitcode slices for iOS, Watch OS, and Apple TV OS device libraries.
485- set (embed_bitcode_arg)
486- if (SWIFT_EMBED_BITCODE_SECTION)
487- if (SWIFT_HOST_VARIANT_SDK MATCHES "(I|TV|WATCH)OS" )
488- list (APPEND ASHL_C_COMPILE_FLAGS "-fembed-bitcode" )
489- set (embed_bitcode_arg EMBED_BITCODE)
490- endif ()
491- endif ()
492-
493484 if (XCODE)
494- string ( REGEX MATCHALL "/[^/]+" split_path ${CMAKE_CURRENT_SOURCE_DIR} )
495- list ( GET split_path -1 dir)
485+ get_filename_component (dir ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY )
486+
496487 file (GLOB_RECURSE ASHL_HEADERS
497488 ${SWIFT_SOURCE_DIR} /include /swift${dir} /*.h
498489 ${SWIFT_SOURCE_DIR} /include /swift${dir} /*.def
499490 ${CMAKE_CURRENT_SOURCE_DIR} /*.def)
500-
501491 file (GLOB_RECURSE ASHL_TDS
502492 ${SWIFT_SOURCE_DIR} /include /swift${dir} /*.td)
503493
504- set_source_files_properties (${ASHL_HEADERS} ${ASHL_TDS}
505- PROPERTIES
494+ set_source_files_properties (${ASHL_HEADERS} ${ASHL_TDS} PROPERTIES
506495 HEADER_FILE_ONLY true )
507496 source_group ("TableGen descriptions" FILES ${ASHL_TDS} )
508497
@@ -515,110 +504,95 @@ function(add_swift_host_library name)
515504 set (libkind STATIC )
516505 endif ()
517506
518- add_library ("${target} " ${libkind} ${ASHL_SOURCES} )
519- _set_target_prefix_and_suffix("${target} " "${libkind} " "${SWIFT_HOST_VARIANT_SDK} " )
520- add_dependencies (${target} ${LLVM_COMMON_DEPENDS} )
521-
522- if (SWIFT_HOST_VARIANT_SDK STREQUAL WINDOWS)
523- swift_windows_include_for_arch(${SWIFT_HOST_VARIANT_ARCH} SWIFTLIB_INCLUDE)
524- target_include_directories ("${target} " SYSTEM PRIVATE ${SWIFTLIB_INCLUDE} )
525- set_target_properties (${target}
526- PROPERTIES
527- CXX_STANDARD 14)
528- endif ()
529-
530- if (SWIFT_HOST_VARIANT_SDK STREQUAL WINDOWS)
531- set_property (TARGET "${target} " PROPERTY NO_SONAME ON )
532- endif ()
533-
534- llvm_update_compile_flags(${target} )
535-
536- set_output_directory(${target}
507+ add_library (${name} ${libkind} ${ASHL_SOURCES} )
508+ add_dependencies (${name} ${LLVM_COMMON_DEPENDS} )
509+ llvm_update_compile_flags(${name} )
510+ swift_common_llvm_config(${name} ${ASHL_LLVM_LINK_COMPONENTS} )
511+ set_output_directory(${name}
537512 BINARY_DIR ${SWIFT_RUNTIME_OUTPUT_INTDIR}
538513 LIBRARY_DIR ${SWIFT_LIBRARY_OUTPUT_INTDIR} )
539514
540515 if (SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_APPLE_PLATFORMS)
541- set_target_properties (" ${target} "
516+ set_target_properties (${name}
542517 PROPERTIES
543518 INSTALL_NAME_DIR "@rpath" )
544519 elseif (SWIFT_HOST_VARIANT_SDK STREQUAL LINUX)
545- set_target_properties (" ${target} "
520+ set_target_properties (${name}
546521 PROPERTIES
547522 INSTALL_RPATH "$ORIGIN:/usr/lib/swift/linux" )
548523 elseif (SWIFT_HOST_VARIANT_SDK STREQUAL CYGWIN )
549- set_target_properties (" ${target} "
524+ set_target_properties (${name}
550525 PROPERTIES
551526 INSTALL_RPATH "$ORIGIN:/usr/lib/swift/cygwin" )
552527 elseif (SWIFT_HOST_VARIANT_SDK STREQUAL "ANDROID" )
553- set_target_properties (" ${target} "
528+ set_target_properties (${name}
554529 PROPERTIES
555530 INSTALL_RPATH "$ORIGIN" )
556531 endif ()
557532
558- set_target_properties ("${target} " PROPERTIES BUILD_WITH_INSTALL_RPATH YES )
559- set_target_properties ("${target} " PROPERTIES FOLDER "Swift libraries" )
533+ set_target_properties (${name} PROPERTIES
534+ BUILD_WITH_INSTALL_RPATH YES
535+ FOLDER "Swift libraries" )
560536
561- # Call llvm_config() only for libraries that are part of the compiler.
562- swift_common_llvm_config("${target} " ${ASHL_LLVM_LINK_COMPONENTS} )
563-
564- target_compile_options (${target} PRIVATE
565- ${ASHL_C_COMPILE_FLAGS} )
566- if (SWIFT_HOST_VARIANT_SDK STREQUAL WINDOWS)
567- if (libkind STREQUAL SHARED)
568- target_compile_definitions (${target} PRIVATE
569- _WINDLL)
570- endif ()
571- endif ()
572-
573- _add_host_variant_c_compile_flags(${target} )
574- _add_host_variant_link_flags(${target} )
537+ _add_host_variant_c_compile_flags(${name} )
538+ _add_host_variant_link_flags(${name} )
539+ _set_target_prefix_and_suffix(${name} "${libkind} " "${SWIFT_HOST_VARIANT_SDK} " )
575540
576541 # Set compilation and link flags.
577542 if (SWIFT_HOST_VARIANT_SDK STREQUAL WINDOWS)
578543 swift_windows_include_for_arch(${SWIFT_HOST_VARIANT_ARCH}
579544 ${SWIFT_HOST_VARIANT_ARCH} _INCLUDE)
580- target_include_directories (${target } SYSTEM PRIVATE
545+ target_include_directories (${name } SYSTEM PRIVATE
581546 ${${SWIFT_HOST_VARIANT_ARCH} _INCLUDE})
582547
548+ if (libkind STREQUAL SHARED)
549+ target_compile_definitions (${name} PRIVATE
550+ _WINDLL)
551+ endif ()
552+
583553 if (NOT ${CMAKE_C_COMPILER_ID} STREQUAL MSVC )
584554 swift_windows_get_sdk_vfs_overlay(ASHL_VFS_OVERLAY)
585- target_compile_options (${target } PRIVATE
555+ target_compile_options (${name } PRIVATE
586556 "SHELL:-Xclang -ivfsoverlay -Xclang ${ASHL_VFS_OVERLAY} " )
587557
588558 # MSVC doesn't support -Xclang. We don't need to manually specify
589559 # the dependent libraries as `cl` does so.
590- target_compile_options (${target } PRIVATE
560+ target_compile_options (${name } PRIVATE
591561 "SHELL:-Xclang --dependent-lib=oldnames"
592562 # TODO(compnerd) handle /MT, /MTd
593563 "SHELL:-Xclang --dependent-lib=msvcrt$<$<CONFIG:Debug>:d>" )
594564 endif ()
565+
566+ set_target_properties (${name} PROPERTIES
567+ CXX_STANDARD 14
568+ NO_SONAME YES )
595569 endif ()
596570
597571 if (${SWIFT_HOST_VARIANT_SDK} IN_LIST SWIFT_APPLE_PLATFORMS)
598- target_link_options (${target} PRIVATE
599- "LINKER:-compatibility_version,1" )
600- if (SWIFT_COMPILER_VERSION)
601- target_link_options (${target} PRIVATE
602- "LINKER:-current_version,${SWIFT_COMPILER_VERSION} " )
603- endif ()
604572 # Include LLVM Bitcode slices for iOS, Watch OS, and Apple TV OS device libraries.
605573 if (SWIFT_EMBED_BITCODE_SECTION)
606- if (${SWIFT_HOST_VARIANT_SDK} MATCHES "(I|TV|WATCH)OS" )
607- target_link_options (${target} PRIVATE
608- "LINKER:-bitcode_bundle"
609- "LINKER:-lto_library,${LLVM_LIBRARY_DIR} /libLTO.dylib" )
610-
611- # Please note that using a generator expression to fit
612- # this in a single target_link_options does not work
613- # (at least in CMake 3.15 and 3.16),
614- # since that seems not to allow the LINKER: prefix to be
615- # evaluated (i.e. it will be added as-is to the linker parameters)
616- if (SWIFT_EMBED_BITCODE_SECTION_HIDE_SYMBOLS)
617- target_link_options (${target} PRIVATE
618- "LINKER:-bitcode_hide_symbols" )
619- endif ()
574+ target_compile_options (${name} PRIVATE
575+ -fembed-bitcode)
576+ target_link_options (${name} PRIVATE
577+ "LINKER:-bitcode_bundle"
578+ "LINKER:-lto_library,${LLVM_LIBRARY_DIR} /libLTO.dylib" )
579+
580+ # Please note that using a generator expression to fit this in a single
581+ # target_link_options does not work (at least in CMake 3.15 and 3.16),
582+ # since that seems not to allow the LINKER: prefix to be evaluated (i.e.
583+ # it will be added as-is to the linker parameters)
584+ if (SWIFT_EMBED_BITCODE_SECTION_HIDE_SYMBOLS)
585+ target_link_options (${name} PRIVATE
586+ "LINKER:-bitcode_hide_symbols" )
620587 endif ()
621588 endif ()
589+
590+ target_link_options (${name} PRIVATE
591+ "LINKER:-compatibility_version,1" )
592+ if (SWIFT_COMPILER_VERSION)
593+ target_link_options (${name} PRIVATE
594+ "LINKER:-current_version,${SWIFT_COMPILER_VERSION} " )
595+ endif ()
622596 endif ()
623597
624598 add_dependencies (dev ${name} )
0 commit comments