|
| 1 | +diff --git a/CMakeLists.txt b/CMakeLists.txt |
| 2 | +index 2748e9420cd..665fad4fd2a 100644 |
| 3 | +--- a/CMakeLists.txt |
| 4 | ++++ b/CMakeLists.txt |
| 5 | +@@ -866,12 +866,12 @@ if(SWIFT_PARALLEL_LINK_JOBS) |
| 6 | + endif() |
| 7 | + endif() |
| 8 | + |
| 9 | +-# Set the CMAKE_OSX_* variables in a way that minimizes conflicts. |
| 10 | +-if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin" AND NOT CMAKE_CROSSCOMPILING) |
| 11 | +- set(CMAKE_OSX_SYSROOT "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_PATH}") |
| 12 | +- set(CMAKE_OSX_ARCHITECTURES "") |
| 13 | +- set(CMAKE_OSX_DEPLOYMENT_TARGET "") |
| 14 | +-endif() |
| 15 | ++# # Set the CMAKE_OSX_* variables in a way that minimizes conflicts. |
| 16 | ++# if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin" AND NOT CMAKE_CROSSCOMPILING) |
| 17 | ++# set(CMAKE_OSX_SYSROOT "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_PATH}") |
| 18 | ++# set(CMAKE_OSX_ARCHITECTURES "") |
| 19 | ++# set(CMAKE_OSX_DEPLOYMENT_TARGET "") |
| 20 | ++# endif() |
| 21 | + |
| 22 | + if(SWIFT_INCLUDE_TOOLS) |
| 23 | + message(STATUS "Building host Swift tools for ${SWIFT_HOST_VARIANT_SDK} ${SWIFT_HOST_VARIANT_ARCH}") |
| 24 | +diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt |
| 25 | +index 8046ea79966..4c2c040a573 100644 |
| 26 | +--- a/cmake/modules/CMakeLists.txt |
| 27 | ++++ b/cmake/modules/CMakeLists.txt |
| 28 | +@@ -17,3 +17,55 @@ configure_file( |
| 29 | + SwiftConfig.cmake.in |
| 30 | + ${swift_cmake_builddir}/SwiftConfig.cmake |
| 31 | + @ONLY) |
| 32 | ++ |
| 33 | ++ |
| 34 | ++# Generate install-tree CMake files |
| 35 | ++set(SWIFT_CONFIG_CODE " |
| 36 | ++# Compute the installation prefix from this LLVMConfig.cmake file location. |
| 37 | ++get_filename_component(SWIFT_INSTALL_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)") |
| 38 | ++# Construct the proper number of get_filename_component(... PATH) |
| 39 | ++# calls to compute the installation prefix. |
| 40 | ++string(REGEX REPLACE "/" ";" _count "${SWIFT_INSTALL_PACKAGE_DIR}") |
| 41 | ++foreach(p ${_count}) |
| 42 | ++ set(SWIFT_CONFIG_CODE "${SWIFT_CONFIG_CODE} |
| 43 | ++get_filename_component(SWIFT_INSTALL_PREFIX \"\${SWIFT_INSTALL_PREFIX}\" PATH)") |
| 44 | ++endforeach(p) |
| 45 | ++set(SWIFT_INCLUDE_DIRS "\${SWIFT_INSTALL_PREFIX}/include") |
| 46 | ++set(SWIFT_LIBRARY_DIRS "\${SWIFT_INSTALL_PREFIX}/lib") |
| 47 | ++set(SWIFT_CMAKE_DIR "\${SWIFT_INSTALL_PREFIX}/${SWIFT_INSTALL_PACKAGE_DIR}") |
| 48 | ++set(SWIFT_BINARY_DIR "\${SWIFT_INSTALL_PREFIX}") |
| 49 | ++ |
| 50 | ++set(SWIFT_EXPORTS_FILE "\${SWIFT_CMAKE_DIR}/SwiftExports.cmake") |
| 51 | ++set(SWIFT_CONFIG_EXPORTS ${SWIFT_EXPORTS}) |
| 52 | ++ |
| 53 | ++install(TARGETS ${SWIFT_CONFIG_EXPORTS} |
| 54 | ++ DESTINATION . |
| 55 | ++ EXPORT SwiftExports |
| 56 | ++ COMPONENT dev) |
| 57 | ++ |
| 58 | ++include(CMakePackageConfigHelpers) |
| 59 | ++configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/SwiftConfig.cmake.in |
| 60 | ++ "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/SwiftConfig.cmake" |
| 61 | ++ INSTALL_DESTINATION ${SWIFT_INSTALL_PACKAGE_DIR}/cmake/swift) |
| 62 | ++ |
| 63 | ++install(FILES |
| 64 | ++ ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/SwiftConfig.cmake |
| 65 | ++ DESTINATION ${SWIFT_INSTALL_PACKAGE_DIR}) |
| 66 | ++ |
| 67 | ++install(EXPORT SwiftExports DESTINATION ${SWIFT_INSTALL_PACKAGE_DIR}) |
| 68 | ++ |
| 69 | ++# installing each header individually to preserve the directory structure |
| 70 | ++macro(install_headers directory ext) |
| 71 | ++ file(GLOB_RECURSE headers RELATIVE ${directory} ${directory}/*.${ext}) |
| 72 | ++ foreach(header ${headers}) |
| 73 | ++ get_filename_component(dir ${header} DIRECTORY) |
| 74 | ++ install(FILES ${directory}/${header} DESTINATION ${SWIFT_INCLUDE_DIRS}/${dir}) |
| 75 | ++ endforeach() |
| 76 | ++endmacro() |
| 77 | ++install_headers(${SWIFT_INCLUDE_DIR} h) |
| 78 | ++install_headers(${SWIFT_MAIN_INCLUDE_DIR} h) |
| 79 | ++install_headers(${SWIFT_INCLUDE_DIR} def) |
| 80 | ++install_headers(${SWIFT_MAIN_INCLUDE_DIR} def) |
| 81 | ++ |
| 82 | ++install(DIRECTORY ${CMAKE_SOURCE_DIR}/stdlib/public/SwiftShims DESTINATION stdlib/public) |
| 83 | ++ |
| 84 | +diff --git a/cmake/modules/SwiftComponents.cmake b/cmake/modules/SwiftComponents.cmake |
| 85 | +index 401cff7a6ef..15dba54db72 100644 |
| 86 | +--- a/cmake/modules/SwiftComponents.cmake |
| 87 | ++++ b/cmake/modules/SwiftComponents.cmake |
| 88 | +@@ -72,7 +72,7 @@ set(_SWIFT_DEFINED_COMPONENTS |
| 89 | + # for the following exceptions. |
| 90 | + set(_SWIFT_DEFAULT_COMPONENTS "${_SWIFT_DEFINED_COMPONENTS}") |
| 91 | + # 'dev' takes up a lot of disk space and isn't part of a normal toolchain. |
| 92 | +-list(REMOVE_ITEM _SWIFT_DEFAULT_COMPONENTS "dev") |
| 93 | ++#list(REMOVE_ITEM _SWIFT_DEFAULT_COMPONENTS "dev") |
| 94 | + # These clang header options conflict with 'clang-builtin-headers'. |
| 95 | + list(REMOVE_ITEM _SWIFT_DEFAULT_COMPONENTS "clang-resource-dir-symlink") |
| 96 | + list(REMOVE_ITEM _SWIFT_DEFAULT_COMPONENTS "clang-builtin-headers-in-clang-resource-dir") |
| 97 | +diff --git a/cmake/modules/SwiftSharedCMakeConfig.cmake b/cmake/modules/SwiftSharedCMakeConfig.cmake |
| 98 | +index 0b830e33ce1..22f074cf7ae 100644 |
| 99 | +--- a/cmake/modules/SwiftSharedCMakeConfig.cmake |
| 100 | ++++ b/cmake/modules/SwiftSharedCMakeConfig.cmake |
| 101 | +@@ -14,6 +14,20 @@ macro(swift_common_standalone_build_config_llvm product) |
| 102 | + # Then we import LLVMConfig. This is going to override whatever cached value |
| 103 | + # we have for LLVM_ENABLE_ASSERTIONS. |
| 104 | + find_package(LLVM CONFIG REQUIRED NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH) |
| 105 | ++ if (APPLE) |
| 106 | ++ if (LLVM_VERSION_MAJOR GREATER_EQUAL 12) |
| 107 | ++ # Precompiled LLVM 12+ on macOS contains a hardcoded dependency on a very |
| 108 | ++ # specific version of libcurses: |
| 109 | ++ # |
| 110 | ++ # set_target_properties(LLVMSupport PROPERTIES |
| 111 | ++ # INTERFACE_LINK_LIBRARIES "m;ZLIB::ZLIB;/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/usr/lib/libcurses.tbd;LLVMDemangle" |
| 112 | ++ # ) |
| 113 | ++ # |
| 114 | ++ # So we are monkey-patching it here |
| 115 | ++ set_target_properties(LLVMSupport PROPERTIES |
| 116 | ++ INTERFACE_LINK_LIBRARIES "z;curses;m;LLVMDemangle") |
| 117 | ++ endif() |
| 118 | ++ endif() |
| 119 | + list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}") |
| 120 | + |
| 121 | + set(LLVM_MAIN_SRC_DIR "${LLVM_BUILD_MAIN_SRC_DIR}" |
| 122 | +diff --git a/utils/build-script b/utils/build-script |
| 123 | +index 3f2e0549568..885264e7e89 100755 |
| 124 | +--- a/utils/build-script |
| 125 | ++++ b/utils/build-script |
| 126 | +@@ -720,6 +720,9 @@ class BuildScriptInvocation(object): |
| 127 | + '-DCMAKE_IGNORE_PATH=/usr/lib;/usr/local/lib;/lib', |
| 128 | + '-DPKG_CONFIG_EXECUTABLE=/usr/bin/false', |
| 129 | + ] |
| 130 | ++ args.extra_cmake_options += [ |
| 131 | ++ '-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64' |
| 132 | ++ ] |
| 133 | + |
| 134 | + if toolchain.libtool is not None: |
| 135 | + impl_args += [ |
| 136 | +diff --git a/utils/swift_build_support/swift_build_support/products/cmark.py b/utils/swift_build_support/swift_build_support/products/cmark.py |
| 137 | +index cac4f2e03d1..eb854e76860 100644 |
| 138 | +--- a/utils/swift_build_support/swift_build_support/products/cmark.py |
| 139 | ++++ b/utils/swift_build_support/swift_build_support/products/cmark.py |
| 140 | +@@ -14,6 +14,11 @@ from . import product |
| 141 | + |
| 142 | + |
| 143 | + class CMark(product.Product): |
| 144 | ++ def __init__(self, args, toolchain, source_dir, build_dir): |
| 145 | ++ product.Product.__init__(self, args, toolchain, source_dir, |
| 146 | ++ build_dir) |
| 147 | ++ self.cmake_options.define('CMAKE_INSTALL_PREFIX:STRING', self.args.install_prefix) |
| 148 | ++ |
| 149 | + @classmethod |
| 150 | + def is_build_script_impl_product(cls): |
| 151 | + """is_build_script_impl_product -> bool |
0 commit comments