Skip to content

Commit 02e04c3

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 74fbae1 commit 02e04c3

File tree

4 files changed

+22
-24
lines changed

4 files changed

+22
-24
lines changed

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -785,6 +785,8 @@ if(SWIFT_PATH_TO_CMARK_BUILD)
785785
OUTPUT_VARIABLE _CMARK_VERSION
786786
OUTPUT_STRIP_TRAILING_WHITESPACE)
787787
message(STATUS "CMark Version: ${_CMARK_VERSION}")
788+
else()
789+
find_package(cmark-gfm CONFIG REQUIRED)
788790
endif()
789791
message(STATUS "")
790792

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 & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -843,6 +843,22 @@ function Build-WiXProject() {
843843
Invoke-Program $msbuild @MSBuildArgs
844844
}
845845

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

@@ -937,7 +954,6 @@ function Build-Compilers() {
937954
LLDB_PYTHON_RELATIVE_PATH = "lib/site-packages";
938955
LLDB_TABLEGEN = "$BinaryCache\0\bin\lldb-tblgen.exe";
939956
LLVM_CONFIG_PATH = "$BinaryCache\0\bin\llvm-config.exe";
940-
LLVM_EXTERNAL_CMARK_SOURCE_DIR = "$SourceCache\cmark";
941957
LLVM_EXTERNAL_SWIFT_SOURCE_DIR = "$SourceCache\swift";
942958
LLVM_NATIVE_TOOL_DIR = "$BinaryCache\0\bin";
943959
LLVM_TABLEGEN = "$BinaryCache\0\bin\llvm-tblgen.exe";
@@ -954,6 +970,7 @@ function Build-Compilers() {
954970
SWIFT_PATH_TO_SWIFT_SYNTAX_SOURCE = "$SourceCache\swift-syntax";
955971
SWIFT_PATH_TO_STRING_PROCESSING_SOURCE = "$SourceCache\swift-experimental-string-processing";
956972
SWIFT_PATH_TO_SWIFT_SDK = (Get-PinnedToolchainSDK);
973+
"cmark-gfm_DIR" = "$($HostArch.BinaryCache)\cmark-gfm-0.29.0.gfm.13";
957974
})
958975
}
959976
}
@@ -1737,6 +1754,7 @@ if (-not $SkipBuild) {
17371754
}
17381755

17391756
if (-not $SkipBuild) {
1757+
Invoke-BuildStep Build-CMark $HostArch
17401758
Invoke-BuildStep Build-BuildTools $HostArch
17411759
Invoke-BuildStep Build-Compilers $HostArch
17421760
}

0 commit comments

Comments
 (0)