@@ -1606,6 +1606,98 @@ function(add_swift_library name)
1606
1606
1607
1607
set (THIN_INPUT_TARGETS )
1608
1608
1609
+ # Collect architecture agnostic SDK module dependencies
1610
+ set (swiftlib_module_depends_flattened ${SWIFTLIB_SWIFT_MODULE_DEPENDS} )
1611
+ if (${sdk} STREQUAL OSX )
1612
+ list (APPEND swiftlib_module_depends_flattened
1613
+ ${SWIFTLIB_SWIFT_MODULE_DEPENDS_OSX} )
1614
+ elseif (${sdk} STREQUAL IOS OR ${sdk} STREQUAL IOS_SIMULATOR )
1615
+ list (APPEND swiftlib_module_depends_flattened
1616
+ ${SWIFTLIB_SWIFT_MODULE_DEPENDS_IOS} )
1617
+ elseif (${sdk} STREQUAL TVOS OR ${sdk} STREQUAL TVOS_SIMULATOR )
1618
+ list (APPEND swiftlib_module_depends_flattened
1619
+ ${SWIFTLIB_SWIFT_MODULE_DEPENDS_TVOS} )
1620
+ elseif (${sdk} STREQUAL WATCHOS OR ${sdk} STREQUAL WATCHOS_SIMULATOR )
1621
+ list (APPEND swiftlib_module_depends_flattened
1622
+ ${SWIFTLIB_SWIFT_MODULE_DEPENDS_WATCHOS} )
1623
+ elseif (${sdk} STREQUAL FREEBSD )
1624
+ list (APPEND swiftlib_module_depends_flattened
1625
+ ${SWIFTLIB_SWIFT_MODULE_DEPENDS_FREEBSD} )
1626
+ elseif (${sdk} STREQUAL LINUX OR ${sdk} STREQUAL ANDROID )
1627
+ list (APPEND swiftlib_module_depends_flattened
1628
+ ${SWIFTLIB_SWIFT_MODULE_DEPENDS_LINUX} )
1629
+ elseif (${sdk} STREQUAL CYGWIN )
1630
+ list (APPEND swiftlib_module_depends_flattened
1631
+ ${SWIFTLIB_SWIFT_MODULE_DEPENDS_CYGWIN} )
1632
+ elseif (${sdk} STREQUAL HAIKU )
1633
+ list (APPEND swiftlib_module_depends_flattened
1634
+ ${SWIFTLIB_SWIFT_MODULE_DEPENDS_HAIKU} )
1635
+ endif ()
1636
+
1637
+ # Collect architecture agnostic SDK framework dependencies
1638
+ set (swiftlib_framework_depends_flattened ${SWIFTLIB_FRAMEWORK_DEPENDS} )
1639
+ if (${sdk} STREQUAL OSX )
1640
+ list (APPEND swiftlib_framework_depends_flattened
1641
+ ${SWIFTLIB_FRAMEWORK_DEPENDS_OSX} )
1642
+ elseif (${sdk} STREQUAL IOS OR ${sdk} STREQUAL IOS_SIMULATOR OR
1643
+ ${sdk} STREQUAL TVOS OR ${sdk} STREQUAL TVOS_SIMULATOR )
1644
+ list (APPEND swiftlib_framework_depends_flattened
1645
+ ${SWIFTLIB_FRAMEWORK_DEPENDS_IOS_TVOS} )
1646
+ endif ()
1647
+
1648
+ # Collect architecutre agnostic compiler flags
1649
+ set (swiftlib_swift_compile_flags_all ${SWIFTLIB_SWIFT_COMPILE_FLAGS} )
1650
+ if (${sdk} STREQUAL OSX )
1651
+ list (APPEND swiftlib_swift_compile_flags_all
1652
+ ${SWIFTLIB_SWIFT_COMPILE_FLAGS_OSX} )
1653
+ elseif (${sdk} STREQUAL IOS OR ${sdk} STREQUAL IOS_SIMULATOR )
1654
+ list (APPEND swiftlib_swift_compile_flags_all
1655
+ ${SWIFTLIB_SWIFT_COMPILE_FLAGS_IOS} )
1656
+ elseif (${sdk} STREQUAL TVOS OR ${sdk} STREQUAL TVOS_SIMULATOR )
1657
+ list (APPEND swiftlib_swift_compile_flags_all
1658
+ ${SWIFTLIB_SWIFT_COMPILE_FLAGS_TVOS} )
1659
+ elseif (${sdk} STREQUAL WATCHOS OR ${sdk} STREQUAL WATCHOS_SIMULATOR )
1660
+ list (APPEND swiftlib_swift_compile_flags_all
1661
+ ${SWIFTLIB_SWIFT_COMPILE_FLAGS_WATCHOS} )
1662
+ elseif (${sdk} STREQUAL WINDOWS )
1663
+ # FIXME(SR2005) static and shared are not mutually exclusive; however
1664
+ # since we do a single build of the sources, this doesn't work for
1665
+ # building both simultaneously. Effectively, only shared builds are
1666
+ # supported on windows currently.
1667
+ if (SWIFTLIB_SHARED )
1668
+ list (APPEND swiftlib_swift_compile_flags_all -D_USRDLL )
1669
+ if (SWIFTLIB_IS_STDLIB_CORE )
1670
+ list (APPEND swiftlib_swift_compile_flags_all -DswiftCore_EXPORTS )
1671
+ endif ()
1672
+ elseif (SWIFTLIB_STATIC )
1673
+ list (APPEND swiftlib_swift_compile_flags_all -D_LIB )
1674
+ endif ()
1675
+ endif ()
1676
+
1677
+
1678
+ # Collect architecture agnostic SDK linker flags
1679
+ set (swiftlib_link_flags_all ${SWIFTLIB_LINK_FLAGS} )
1680
+ if (${sdk} STREQUAL IOS_SIMULATOR )
1681
+ if (${name} STREQUAL swiftMediaPlayer )
1682
+ # message("DISABLING AUTOLINK FOR swiftMediaPlayer")
1683
+ list (APPEND swiftlib_link_flags_all "-Xlinker" "-ignore_auto_link" )
1684
+ endif ()
1685
+ endif ()
1686
+
1687
+ # We unconditionally removed "-z,defs" from CMAKE_SHARED_LINKER_FLAGS in
1688
+ # swift_common_standalone_build_config_llvm within
1689
+ # SwiftSharedCMakeConfig.cmake, where it was added by a call to
1690
+ # HandleLLVMOptions.
1691
+ #
1692
+ # Rather than applying it to all targets and libraries, we here add it
1693
+ # back to supported targets and libraries only. This is needed for ELF
1694
+ # targets only; however, RemoteMirror needs to build with undefined
1695
+ # symbols.
1696
+ if (${SWIFT_SDK_${sdk}_OBJECT_FORMAT} STREQUAL ELF AND
1697
+ NOT ${name} STREQUAL swiftRemoteMirror )
1698
+ list (APPEND swiftlib_link_flags_all "-Wl,-z,defs" )
1699
+ endif ()
1700
+
1609
1701
# For each architecture supported by this SDK
1610
1702
foreach (arch ${SWIFT_SDK_${sdk}_ARCHITECTURES} )
1611
1703
# Configure variables for this subdirectory.
@@ -1624,33 +1716,6 @@ function(add_swift_library name)
1624
1716
endif ()
1625
1717
endforeach ()
1626
1718
1627
- set (swiftlib_module_depends_flattened ${SWIFTLIB_SWIFT_MODULE_DEPENDS} )
1628
- if ("${sdk} " STREQUAL "OSX" )
1629
- list (APPEND swiftlib_module_depends_flattened
1630
- ${SWIFTLIB_SWIFT_MODULE_DEPENDS_OSX} )
1631
- elseif ("${sdk} " STREQUAL "IOS" OR "${sdk} " STREQUAL "IOS_SIMULATOR" )
1632
- list (APPEND swiftlib_module_depends_flattened
1633
- ${SWIFTLIB_SWIFT_MODULE_DEPENDS_IOS} )
1634
- elseif ("${sdk} " STREQUAL "TVOS" OR "${sdk} " STREQUAL "TVOS_SIMULATOR" )
1635
- list (APPEND swiftlib_module_depends_flattened
1636
- ${SWIFTLIB_SWIFT_MODULE_DEPENDS_TVOS} )
1637
- elseif ("${sdk} " STREQUAL "WATCHOS" OR "${sdk} " STREQUAL "WATCHOS_SIMULATOR" )
1638
- list (APPEND swiftlib_module_depends_flattened
1639
- ${SWIFTLIB_SWIFT_MODULE_DEPENDS_WATCHOS} )
1640
- elseif ("${sdk} " STREQUAL "FREEBSD" )
1641
- list (APPEND swiftlib_module_depends_flattened
1642
- ${SWIFTLIB_SWIFT_MODULE_DEPENDS_FREEBSD} )
1643
- elseif ("${sdk} " STREQUAL "LINUX" OR "${sdk} " STREQUAL "ANDROID" )
1644
- list (APPEND swiftlib_module_depends_flattened
1645
- ${SWIFTLIB_SWIFT_MODULE_DEPENDS_LINUX} )
1646
- elseif ("${sdk} " STREQUAL "CYGWIN" )
1647
- list (APPEND swiftlib_module_depends_flattened
1648
- ${SWIFTLIB_SWIFT_MODULE_DEPENDS_CYGWIN} )
1649
- elseif ("${sdk} " STREQUAL "HAIKU" )
1650
- list (APPEND swiftlib_module_depends_flattened
1651
- ${SWIFTLIB_SWIFT_MODULE_DEPENDS_HAIKU} )
1652
- endif ()
1653
-
1654
1719
# Swift compiles depend on swift modules, while links depend on
1655
1720
# linked libraries. Find targets for both of these here.
1656
1721
set (swiftlib_module_dependency_targets )
@@ -1692,69 +1757,10 @@ function(add_swift_library name)
1692
1757
endif ()
1693
1758
endforeach ()
1694
1759
1695
- set (swiftlib_framework_depends_flattened ${SWIFTLIB_FRAMEWORK_DEPENDS} )
1696
- if ("${sdk} " STREQUAL "OSX" )
1697
- list (APPEND swiftlib_framework_depends_flattened
1698
- ${SWIFTLIB_FRAMEWORK_DEPENDS_OSX} )
1699
- elseif ("${sdk} " STREQUAL "IOS" OR "${sdk} " STREQUAL "IOS_SIMULATOR" OR "${sdk} " STREQUAL "TVOS" OR "${sdk} " STREQUAL "TVOS_SIMULATOR" )
1700
- list (APPEND swiftlib_framework_depends_flattened
1701
- ${SWIFTLIB_FRAMEWORK_DEPENDS_IOS_TVOS} )
1702
- endif ()
1703
-
1704
- # Collect compiler flags
1705
- set (swiftlib_swift_compile_flags_all ${SWIFTLIB_SWIFT_COMPILE_FLAGS} )
1706
- if ("${sdk} " STREQUAL "OSX" )
1707
- list (APPEND swiftlib_swift_compile_flags_all
1708
- ${SWIFTLIB_SWIFT_COMPILE_FLAGS_OSX} )
1709
- elseif ("${sdk} " STREQUAL "IOS" OR "${sdk} " STREQUAL "IOS_SIMULATOR" )
1710
- list (APPEND swiftlib_swift_compile_flags_all
1711
- ${SWIFTLIB_SWIFT_COMPILE_FLAGS_IOS} )
1712
- elseif ("${sdk} " STREQUAL "TVOS" OR "${sdk} " STREQUAL "TVOS_SIMULATOR" )
1713
- list (APPEND swiftlib_swift_compile_flags_all
1714
- ${SWIFTLIB_SWIFT_COMPILE_FLAGS_TVOS} )
1715
- elseif ("${sdk} " STREQUAL "WATCHOS" OR "${sdk} " STREQUAL "WATCHOS_SIMULATOR" )
1716
- list (APPEND swiftlib_swift_compile_flags_all
1717
- ${SWIFTLIB_SWIFT_COMPILE_FLAGS_WATCHOS} )
1718
- elseif ("${sdk} " STREQUAL "WINDOWS" )
1719
- # FIXME(SR2005) static and shared are not mutually exclusive; however
1720
- # since we do a single build of the sources, this doesn't work for
1721
- # building both simultaneously. Effectively, only shared builds are
1722
- # supported on windows currently.
1723
- if (SWIFTLIB_SHARED )
1724
- list (APPEND swiftlib_swift_compile_flags_all -D_USRDLL )
1725
- if (SWIFTLIB_IS_STDLIB_CORE )
1726
- list (APPEND swiftlib_swift_compile_flags_all -DswiftCore_EXPORTS )
1727
- endif ()
1728
- elseif (SWIFTLIB_STATIC )
1729
- list (APPEND swiftlib_swift_compile_flags_all -D_LIB )
1730
- endif ()
1731
- endif ()
1732
-
1733
1760
# Add PrivateFrameworks, rdar://28466433
1734
- set (swiftlib_link_flags_all ${SWIFTLIB_LINK_FLAGS} )
1735
1761
if (SWIFTLIB_IS_SDK_OVERLAY )
1736
- list ( APPEND swiftlib_swift_compile_flags_all "-Fsystem" "${SWIFT_SDK_${sdk} _ARCH_${arch} _PATH}/System/Library/PrivateFrameworks/" )
1762
+ set ( swiftlib_swift_compile_private_frameworks_flag "-Fsystem" "${SWIFT_SDK_${sdk} _ARCH_${arch} _PATH}/System/Library/PrivateFrameworks/" )
1737
1763
endif ()
1738
-
1739
- if ("${sdk} " STREQUAL "IOS_SIMULATOR" )
1740
- if ("${name} " STREQUAL "swiftMediaPlayer" )
1741
- message ("DISABLING AUTOLINK FOR swiftMediaPlayer" )
1742
- list (APPEND swiftlib_link_flags_all "-Xlinker" "-ignore_auto_link" )
1743
- endif ()
1744
- endif ()
1745
-
1746
- # We unconditionally removed "-z,defs" from CMAKE_SHARED_LINKER_FLAGS in
1747
- # swift_common_standalone_build_config_llvm within SwiftSharedCMakeConfig.cmake,
1748
- # where it was added by a call to HandleLLVMOptions.
1749
- #
1750
- # Rather than applying it to all targets and libraries, we here add it back to
1751
- # supported targets and libraries only.
1752
- # This is needed for ELF targets only; however, RemoteMirror needs to build
1753
- # with undefined symbols.
1754
- if ("${SWIFT_SDK_${LFLAGS_SDK} _OBJECT_FORMAT}" STREQUAL "ELF"
1755
- AND NOT "${name} " STREQUAL "swiftRemoteMirror" )
1756
- list (APPEND swiftlib_link_flags_all "-Wl,-z,defs" )
1757
- endif ()
1758
1764
1759
1765
# Add this library variant.
1760
1766
_add_swift_library_single (
@@ -1774,7 +1780,7 @@ function(add_swift_library name)
1774
1780
LLVM_COMPONENT_DEPENDS ${SWIFTLIB_LLVM_COMPONENT_DEPENDS}
1775
1781
FILE_DEPENDS ${SWIFTLIB_FILE_DEPENDS} ${swiftlib_module_dependency_targets}
1776
1782
C_COMPILE_FLAGS ${SWIFTLIB_C_COMPILE_FLAGS}
1777
- SWIFT_COMPILE_FLAGS ${swiftlib_swift_compile_flags_all}
1783
+ SWIFT_COMPILE_FLAGS ${swiftlib_swift_compile_flags_all} ${swiftlib_swift_compile_private_frameworks_flag}
1778
1784
LINK_FLAGS ${swiftlib_link_flags_all}
1779
1785
PRIVATE_LINK_LIBRARIES ${swiftlib_private_link_libraries_targets}
1780
1786
INCORPORATE_OBJECT_LIBRARIES ${SWIFTLIB_INCORPORATE_OBJECT_LIBRARIES}
0 commit comments