@@ -481,28 +481,17 @@ function(add_swift_host_library name)
481
481
message (FATAL_ERROR "Either SHARED or STATIC must be specified" )
482
482
endif ()
483
483
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
-
493
484
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
+
496
487
file (GLOB_RECURSE ASHL_HEADERS
497
488
${SWIFT_SOURCE_DIR} /include/swift${dir}/*.h
498
489
${SWIFT_SOURCE_DIR} /include/swift${dir}/*.def
499
490
${CMAKE_CURRENT_SOURCE_DIR} /*.def )
500
-
501
491
file (GLOB_RECURSE ASHL_TDS
502
492
${SWIFT_SOURCE_DIR} /include/swift${dir}/*.td )
503
493
504
- set_source_files_properties (${ASHL_HEADERS} ${ASHL_TDS}
505
- PROPERTIES
494
+ set_source_files_properties (${ASHL_HEADERS} ${ASHL_TDS} PROPERTIES
506
495
HEADER_FILE_ONLY true )
507
496
source_group ("TableGen descriptions" FILES ${ASHL_TDS} )
508
497
@@ -515,110 +504,95 @@ function(add_swift_host_library name)
515
504
set (libkind STATIC )
516
505
endif ()
517
506
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}
537
512
BINARY_DIR ${SWIFT_RUNTIME_OUTPUT_INTDIR}
538
513
LIBRARY_DIR ${SWIFT_LIBRARY_OUTPUT_INTDIR} )
539
514
540
515
if (SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_APPLE_PLATFORMS )
541
- set_target_properties (" ${target} "
516
+ set_target_properties (${name}
542
517
PROPERTIES
543
518
INSTALL_NAME_DIR "@rpath" )
544
519
elseif (SWIFT_HOST_VARIANT_SDK STREQUAL LINUX )
545
- set_target_properties (" ${target} "
520
+ set_target_properties (${name}
546
521
PROPERTIES
547
522
INSTALL_RPATH "$ORIGIN:/usr/lib/swift/linux" )
548
523
elseif (SWIFT_HOST_VARIANT_SDK STREQUAL CYGWIN )
549
- set_target_properties (" ${target} "
524
+ set_target_properties (${name}
550
525
PROPERTIES
551
526
INSTALL_RPATH "$ORIGIN:/usr/lib/swift/cygwin" )
552
527
elseif (SWIFT_HOST_VARIANT_SDK STREQUAL "ANDROID" )
553
- set_target_properties (" ${target} "
528
+ set_target_properties (${name}
554
529
PROPERTIES
555
530
INSTALL_RPATH "$ORIGIN" )
556
531
endif ()
557
532
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" )
560
536
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} " )
575
540
576
541
# Set compilation and link flags.
577
542
if (SWIFT_HOST_VARIANT_SDK STREQUAL WINDOWS )
578
543
swift_windows_include_for_arch (${SWIFT_HOST_VARIANT_ARCH}
579
544
${SWIFT_HOST_VARIANT_ARCH} _INCLUDE )
580
- target_include_directories (${target } SYSTEM PRIVATE
545
+ target_include_directories (${name } SYSTEM PRIVATE
581
546
${${SWIFT_HOST_VARIANT_ARCH}_INCLUDE} )
582
547
548
+ if (libkind STREQUAL SHARED )
549
+ target_compile_definitions (${name} PRIVATE
550
+ _WINDLL )
551
+ endif ()
552
+
583
553
if (NOT ${CMAKE_C_COMPILER_ID} STREQUAL MSVC )
584
554
swift_windows_get_sdk_vfs_overlay (ASHL_VFS_OVERLAY )
585
- target_compile_options (${target } PRIVATE
555
+ target_compile_options (${name } PRIVATE
586
556
"SHELL:-Xclang -ivfsoverlay -Xclang ${ASHL_VFS_OVERLAY} " )
587
557
588
558
# MSVC doesn't support -Xclang. We don't need to manually specify
589
559
# the dependent libraries as `cl` does so.
590
- target_compile_options (${target } PRIVATE
560
+ target_compile_options (${name } PRIVATE
591
561
"SHELL:-Xclang --dependent-lib=oldnames"
592
562
# TODO(compnerd) handle /MT, /MTd
593
563
"SHELL:-Xclang --dependent-lib=msvcrt$<$<CONFIG:Debug>:d>" )
594
564
endif ()
565
+
566
+ set_target_properties (${name} PROPERTIES
567
+ CXX_STANDARD 14
568
+ NO_SONAME YES )
595
569
endif ()
596
570
597
571
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 ()
604
572
# Include LLVM Bitcode slices for iOS, Watch OS, and Apple TV OS device libraries.
605
573
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" )
620
587
endif ()
621
588
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 ()
622
596
endif ()
623
597
624
598
add_dependencies (dev ${name} )
0 commit comments