76 lines
3.1 KiB
Diff
76 lines
3.1 KiB
Diff
|
commit f84992addb0f7cd54c13762274e898f79d0b0631
|
||
|
Date: Sun, 8 Nov 2020 13:25:13 +0530
|
||
|
Subject: [build] Make it possible to actually build the stdlib with a
|
||
|
prebuilt clang
|
||
|
|
||
|
diff --git a/swift/CMakeLists.txt b/swift/CMakeLists.txt
|
||
|
index 99937910af2b..2cec8d38a493 100644
|
||
|
--- a/swift/CMakeLists.txt
|
||
|
+++ b/swift/CMakeLists.txt
|
||
|
@@ -462,10 +462,12 @@ if(SWIFT_PATH_TO_CMARK_BUILD)
|
||
|
endif()
|
||
|
message(STATUS "")
|
||
|
|
||
|
-if("${SWIFT_NATIVE_LLVM_TOOLS_PATH}" STREQUAL "")
|
||
|
- set(SWIFT_CROSS_COMPILING FALSE)
|
||
|
+# Check if a prebuilt clang path was passed in, as this variable will be
|
||
|
+# assigned if not, in SwiftSharedCMakeConfig.
|
||
|
+if("${SWIFT_NATIVE_CLANG_TOOLS_PATH}" STREQUAL "")
|
||
|
+ set(SWIFT_PREBUILT_CLANG FALSE)
|
||
|
else()
|
||
|
- set(SWIFT_CROSS_COMPILING TRUE)
|
||
|
+ set(SWIFT_PREBUILT_CLANG TRUE)
|
||
|
endif()
|
||
|
|
||
|
include(SwiftSharedCMakeConfig)
|
||
|
diff --git a/swift/cmake/modules/SwiftSharedCMakeConfig.cmake b/swift/cmake/modules/SwiftSharedCMakeConfig.cmake
|
||
|
index c4c15084fe9..9ee08656589 100644
|
||
|
--- a/swift/cmake/modules/SwiftSharedCMakeConfig.cmake
|
||
|
+++ b/swift/cmake/modules/SwiftSharedCMakeConfig.cmake
|
||
|
@@ -58,7 +58,7 @@ macro(swift_common_standalone_build_config_llvm product)
|
||
|
fix_imported_targets_for_xcode("${LLVM_EXPORTED_TARGETS}")
|
||
|
endif()
|
||
|
|
||
|
- if(NOT CMAKE_CROSSCOMPILING AND NOT SWIFT_CROSS_COMPILING)
|
||
|
+ if(NOT CMAKE_CROSSCOMPILING)
|
||
|
set(${product}_NATIVE_LLVM_TOOLS_PATH "${LLVM_TOOLS_BINARY_DIR}")
|
||
|
endif()
|
||
|
|
||
|
@@ -159,7 +159,7 @@ endmacro()
|
||
|
macro(swift_common_standalone_build_config_clang product)
|
||
|
find_package(Clang CONFIG REQUIRED NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
|
||
|
|
||
|
- if (NOT CMAKE_CROSSCOMPILING)
|
||
|
+ if (NOT CMAKE_CROSSCOMPILING AND NOT SWIFT_PREBUILT_CLANG)
|
||
|
set(${product}_NATIVE_CLANG_TOOLS_PATH "${LLVM_TOOLS_BINARY_DIR}")
|
||
|
endif()
|
||
|
|
||
|
diff --git a/swift/stdlib/cmake/modules/AddSwiftStdlib.cmake b/swift/stdlib/cmake/modules/AddSwiftStdlib.cmake
|
||
|
index 7a296b5807d5..ace3fb90370f 100644
|
||
|
--- a/swift/stdlib/cmake/modules/AddSwiftStdlib.cmake
|
||
|
+++ b/swift/stdlib/cmake/modules/AddSwiftStdlib.cmake
|
||
|
@@ -1653,7 +1653,8 @@ function(add_swift_target_library name)
|
||
|
list(APPEND SWIFTLIB_SWIFT_COMPILE_FLAGS "-warn-implicit-overrides")
|
||
|
endif()
|
||
|
|
||
|
- if(NOT SWIFT_BUILD_RUNTIME_WITH_HOST_COMPILER AND NOT BUILD_STANDALONE)
|
||
|
+ if(NOT SWIFT_BUILD_RUNTIME_WITH_HOST_COMPILER AND NOT BUILD_STANDALONE AND
|
||
|
+ NOT SWIFT_PREBUILT_CLANG)
|
||
|
list(APPEND SWIFTLIB_DEPENDS clang)
|
||
|
endif()
|
||
|
|
||
|
diff --git a/swift/stdlib/public/SwiftShims/CMakeLists.txt b/swift/stdlib/public/SwiftShims/CMakeLists.txt
|
||
|
index 33c49a3f8861..8553f4f00b37 100644
|
||
|
--- a/swift/stdlib/public/SwiftShims/CMakeLists.txt
|
||
|
+++ b/swift/stdlib/public/SwiftShims/CMakeLists.txt
|
||
|
@@ -110,7 +110,8 @@ endif()
|
||
|
# First extract the "version" used for Clang's resource directory.
|
||
|
string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION
|
||
|
"${LLVM_PACKAGE_VERSION}")
|
||
|
-if(NOT SWIFT_INCLUDE_TOOLS AND SWIFT_BUILD_RUNTIME_WITH_HOST_COMPILER)
|
||
|
+if(NOT SWIFT_INCLUDE_TOOLS AND
|
||
|
+ (SWIFT_BUILD_RUNTIME_WITH_HOST_COMPILER OR SWIFT_PREBUILT_CLANG))
|
||
|
if(SWIFT_COMPILER_IS_MSVC_LIKE)
|
||
|
execute_process(COMMAND ${CMAKE_C_COMPILER} /clang:-print-resource-dir
|
||
|
OUTPUT_VARIABLE clang_headers_location
|