Skip to content

Commit b58d47d

Browse files
committed
build: update for cmark build revamp and split the build
Extricate cmark from the unified build system. This is preparatory work to support building CMark GFM with dynamic linkage for sharing it across swift-markdown and the compiler. It also simplifies the build logic for the unified build.
1 parent 2d6eabf commit b58d47d

File tree

4 files changed

+29
-28
lines changed

4 files changed

+29
-28
lines changed

CMakeLists.txt

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -780,11 +780,15 @@ if (CMAKE_Swift_COMPILER)
780780
else()
781781
message(STATUS "Swift Compiler (None).")
782782
endif()
783-
if(SWIFT_PATH_TO_CMARK_BUILD)
784-
execute_process(COMMAND ${SWIFT_PATH_TO_CMARK_BUILD}/src/cmark --version
785-
OUTPUT_VARIABLE _CMARK_VERSION
786-
OUTPUT_STRIP_TRAILING_WHITESPACE)
787-
message(STATUS "CMark Version: ${_CMARK_VERSION}")
783+
if(SWIFT_INCLUDE_TOOLS)
784+
if(SWIFT_PATH_TO_CMARK_BUILD)
785+
execute_process(COMMAND ${SWIFT_PATH_TO_CMARK_BUILD}/src/cmark --version
786+
OUTPUT_VARIABLE _CMARK_VERSION
787+
OUTPUT_STRIP_TRAILING_WHITESPACE)
788+
message(STATUS "CMark Version: ${_CMARK_VERSION}")
789+
else()
790+
find_package(cmark-gfm CONFIG REQUIRED)
791+
endif()
788792
endif()
789793
message(STATUS "")
790794

cmake/modules/SwiftSharedCMakeConfig.cmake

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -276,24 +276,6 @@ macro(swift_common_unified_build_config product)
276276
include_directories(${LLVM_EXTERNAL_CLANG_SOURCE_DIR}/include
277277
${CMAKE_BINARY_DIR}/tools/clang/include)
278278

279-
# If cmark was checked out into tools/cmark, expect to build it as
280-
# part of the unified build.
281-
if(EXISTS "${LLVM_EXTERNAL_CMARK_SOURCE_DIR}")
282-
set(${product}_PATH_TO_CMARK_SOURCE "${LLVM_EXTERNAL_CMARK_SOURCE_DIR}")
283-
set(${product}_PATH_TO_CMARK_BUILD "${CMAKE_BINARY_DIR}/tools/cmark")
284-
set(${product}_CMARK_LIBRARY_DIR "${CMAKE_BINARY_DIR}/lib")
285-
286-
get_filename_component(CMARK_MAIN_SRC_DIR "${${product}_PATH_TO_CMARK_SOURCE}"
287-
ABSOLUTE)
288-
get_filename_component(PATH_TO_CMARK_BUILD "${${product}_PATH_TO_CMARK_BUILD}"
289-
ABSOLUTE)
290-
get_filename_component(CMARK_LIBRARY_DIR "${${product}_CMARK_LIBRARY_DIR}"
291-
ABSOLUTE)
292-
293-
include_directories(${PATH_TO_CMARK_BUILD}/src
294-
${CMARK_MAIN_SRC_DIR}/src/include)
295-
endif()
296-
297279
include(AddSwiftTableGen) # This imports TableGen from LLVM.
298280
endmacro()
299281

lib/Markup/CMakeLists.txt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,4 @@ add_swift_host_library(swiftMarkup STATIC
33
LineList.cpp
44
Markup.cpp)
55
target_link_libraries(swiftMarkup PRIVATE
6-
libcmark-gfm_static)
7-
target_compile_definitions(swiftMarkup
8-
PRIVATE
9-
CMARK_GFM_STATIC_DEFINE)
10-
6+
libcmark-gfm)

utils/build.ps1

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -842,6 +842,22 @@ function Build-WiXProject() {
842842
Invoke-Program $msbuild @MSBuildArgs
843843
}
844844

845+
function Build-CMark($Arch) {
846+
$ArchName = $Arch.ShortName
847+
848+
Build-CMakeProject `
849+
-Src $SourceCache\cmark `
850+
-Bin "$($Arch.BinaryCache)\cmark-gfm-0.29.0.gfm.13" `
851+
-InstallTo "$LibraryRoot\cmark-0.29.0.gfm.13\usr" `
852+
-Arch $Arch `
853+
-BuildTargets default `
854+
-Defines @{
855+
BUILD_SHARED_LIBS = "NO";
856+
BUILD_TESTING = "NO";
857+
CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP = "YES";
858+
}
859+
}
860+
845861
function Build-BuildTools($Arch) {
846862
Build-CMakeProject `
847863
-Src $SourceCache\llvm-project\llvm `
@@ -873,6 +889,7 @@ function Build-BuildTools($Arch) {
873889
SWIFT_INCLUDE_APINOTES = "NO";
874890
SWIFT_INCLUDE_DOCS = "NO";
875891
SWIFT_INCLUDE_TESTS = "NO";
892+
"cmark-gfm_DIR" = "$($HostArch.BinaryCache)\cmark-gfm-0.29.0.gfm.13";
876893
}
877894
}
878895

@@ -953,6 +970,7 @@ function Build-Compilers() {
953970
SWIFT_PATH_TO_SWIFT_SYNTAX_SOURCE = "$SourceCache\swift-syntax";
954971
SWIFT_PATH_TO_STRING_PROCESSING_SOURCE = "$SourceCache\swift-experimental-string-processing";
955972
SWIFT_PATH_TO_SWIFT_SDK = (Get-PinnedToolchainSDK);
973+
"cmark-gfm_DIR" = "$($HostArch.BinaryCache)\cmark-gfm-0.29.0.gfm.13";
956974
})
957975
}
958976
}
@@ -1736,6 +1754,7 @@ if (-not $SkipBuild) {
17361754
}
17371755

17381756
if (-not $SkipBuild) {
1757+
Invoke-BuildStep Build-CMark $HostArch
17391758
Invoke-BuildStep Build-BuildTools $HostArch
17401759
Invoke-BuildStep Build-Compilers $HostArch
17411760
}

0 commit comments

Comments
 (0)