Skip to content

Commit 8b47616

Browse files
committed
build: simplify the unified build configuration
Conditionalise the inclusion of directory paths. If the include directory is empty, CMake will raise an error. This allows us to disable larger portions of the Swift build to speed up some of the build tool configuration phase and prepares for consuming CMark GFM as a CMake project.
1 parent dba3498 commit 8b47616

File tree

2 files changed

+10
-18
lines changed

2 files changed

+10
-18
lines changed

cmake/modules/SwiftSharedCMakeConfig.cmake

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -268,16 +268,13 @@ endmacro()
268268
# cmake variables.
269269
macro(swift_common_unified_build_config product)
270270
set(${product}_PATH_TO_CLANG_BUILD "${CMAKE_BINARY_DIR}")
271-
set(CLANG_MAIN_INCLUDE_DIR "${LLVM_EXTERNAL_CLANG_SOURCE_DIR}/include")
272-
set(CLANG_BUILD_INCLUDE_DIR "${CMAKE_BINARY_DIR}/tools/clang/include")
273271
set(${product}_NATIVE_LLVM_TOOLS_PATH "${CMAKE_BINARY_DIR}/bin")
274272
set(${product}_NATIVE_CLANG_TOOLS_PATH "${CMAKE_BINARY_DIR}/bin")
275273
set(LLVM_PACKAGE_VERSION ${PACKAGE_VERSION})
276274
set(LLVM_CMAKE_DIR "${CMAKE_SOURCE_DIR}/cmake/modules")
277-
set(CLANG_INCLUDE_DIRS
278-
"${CLANG_MAIN_INCLUDE_DIR}"
279-
"${CLANG_BUILD_INCLUDE_DIR}"
280-
)
275+
276+
include_directories(${LLVM_EXTERNAL_CLANG_SOURCE_DIR}/include
277+
${CMAKE_BINARY_DIR}/tools/clang/include)
281278

282279
# If cmark was checked out into tools/cmark, expect to build it as
283280
# part of the unified build.
@@ -293,16 +290,10 @@ macro(swift_common_unified_build_config product)
293290
get_filename_component(CMARK_LIBRARY_DIR "${${product}_CMARK_LIBRARY_DIR}"
294291
ABSOLUTE)
295292

296-
set(CMARK_BUILD_INCLUDE_DIR "${PATH_TO_CMARK_BUILD}/src")
297-
set(CMARK_MAIN_INCLUDE_DIR "${CMARK_MAIN_SRC_DIR}/src/include")
293+
include_directories(${PATH_TO_CMARK_BUILD}/src
294+
${CMARK_MAIN_SRC_DIR}/src/include)
298295
endif()
299296

300-
include_directories(
301-
"${CLANG_BUILD_INCLUDE_DIR}"
302-
"${CLANG_MAIN_INCLUDE_DIR}"
303-
"${CMARK_MAIN_INCLUDE_DIR}"
304-
"${CMARK_BUILD_INCLUDE_DIR}")
305-
306297
include(AddSwiftTableGen) # This imports TableGen from LLVM.
307298

308299
check_cxx_compiler_flag("-Werror -Wnested-anon-types" CXX_SUPPORTS_NO_NESTED_ANON_TYPES_FLAG)

utils/build.ps1

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -857,21 +857,22 @@ function Build-BuildTools($Arch) {
857857
LLVM_ENABLE_LIBEDIT = "NO";
858858
LLVM_ENABLE_LIBXML2 = "NO";
859859
LLVM_ENABLE_PROJECTS = "clang;clang-tools-extra;lldb";
860-
LLVM_EXTERNAL_PROJECTS = "cmark;swift";
861-
LLVM_EXTERNAL_CMARK_SOURCE_DIR = "$SourceCache\cmark";
860+
LLVM_EXTERNAL_PROJECTS = "swift";
862861
LLVM_EXTERNAL_SWIFT_SOURCE_DIR = "$SourceCache\swift";
863862
SWIFT_BUILD_DYNAMIC_SDK_OVERLAY = "NO";
864863
SWIFT_BUILD_DYNAMIC_STDLIB = "NO";
864+
SWIFT_BUILD_HOST_DISPATCH = "NO";
865865
SWIFT_BUILD_LIBEXEC = "NO";
866+
SWIFT_BUILD_REGEX_PARSER_IN_COMPILER = "NO";
866867
SWIFT_BUILD_REMOTE_MIRROR = "NO";
867868
SWIFT_BUILD_SOURCEKIT = "NO";
868869
SWIFT_BUILD_STATIC_SDK_OVERLAY = "NO";
869870
SWIFT_BUILD_STATIC_STDLIB = "NO";
871+
SWIFT_BUILD_SWIFT_SYNTAX = "NO";
872+
SWIFT_ENABLE_DISPATCH = "NO";
870873
SWIFT_INCLUDE_APINOTES = "NO";
871874
SWIFT_INCLUDE_DOCS = "NO";
872875
SWIFT_INCLUDE_TESTS = "NO";
873-
SWIFT_PATH_TO_LIBDISPATCH_SOURCE = "$SourceCache\swift-corelibs-libdispatch";
874-
SWIFT_PATH_TO_SWIFT_SYNTAX_SOURCE = "$SourceCache\swift-syntax";
875876
}
876877
}
877878

0 commit comments

Comments
 (0)