Skip to content

Commit 86b6017

Browse files
compnerdcachemeifyoucan
authored andcommitted
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 ec7a7c6 commit 86b6017

File tree

4 files changed

+26
-24
lines changed

4 files changed

+26
-24
lines changed

CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -784,11 +784,17 @@ if (CMAKE_Swift_COMPILER)
784784
else()
785785
message(STATUS "Swift Compiler (None).")
786786
endif()
787+
788+
set(THREADS_PREFER_PTHREAD_FLAG YES)
789+
include(FindThreads)
790+
787791
if(SWIFT_PATH_TO_CMARK_BUILD)
788792
execute_process(COMMAND ${SWIFT_PATH_TO_CMARK_BUILD}/src/cmark --version
789793
OUTPUT_VARIABLE _CMARK_VERSION
790794
OUTPUT_STRIP_TRAILING_WHITESPACE)
791795
message(STATUS "CMark Version: ${_CMARK_VERSION}")
796+
elseif(SWIFT_INCLUDE_TOOLS)
797+
find_package(cmark-gfm CONFIG REQUIRED)
792798
endif()
793799
message(STATUS "")
794800

cmake/modules/SwiftSharedCMakeConfig.cmake

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -278,24 +278,6 @@ macro(swift_common_unified_build_config product)
278278

279279
include_directories(${CLANG_INCLUDE_DIRS})
280280

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

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
@@ -847,6 +847,22 @@ function Build-WiXProject() {
847847
Invoke-Program $msbuild @MSBuildArgs
848848
}
849849

850+
function Build-CMark($Arch) {
851+
$ArchName = $Arch.ShortName
852+
853+
Build-CMakeProject `
854+
-Src $SourceCache\cmark `
855+
-Bin "$($Arch.BinaryCache)\cmark-gfm-0.29.0.gfm.13" `
856+
-InstallTo "$LibraryRoot\cmark-0.29.0.gfm.13\usr" `
857+
-Arch $Arch `
858+
-BuildTargets default `
859+
-Defines @{
860+
BUILD_SHARED_LIBS = "NO";
861+
BUILD_TESTING = "NO";
862+
CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP = "YES";
863+
}
864+
}
865+
850866
function Build-BuildTools($Arch) {
851867
Build-CMakeProject `
852868
-Src $SourceCache\llvm-project\llvm `
@@ -878,6 +894,7 @@ function Build-BuildTools($Arch) {
878894
SWIFT_INCLUDE_APINOTES = "NO";
879895
SWIFT_INCLUDE_DOCS = "NO";
880896
SWIFT_INCLUDE_TESTS = "NO";
897+
"cmark-gfm_DIR" = "$($HostArch.BinaryCache)\cmark-gfm-0.29.0.gfm.13";
881898
}
882899
}
883900

@@ -941,7 +958,6 @@ function Build-Compilers() {
941958
LLDB_PYTHON_RELATIVE_PATH = "lib/site-packages";
942959
LLDB_TABLEGEN = "$BinaryCache\0\bin\lldb-tblgen.exe";
943960
LLVM_CONFIG_PATH = "$BinaryCache\0\bin\llvm-config.exe";
944-
LLVM_EXTERNAL_CMARK_SOURCE_DIR = "$SourceCache\cmark";
945961
LLVM_EXTERNAL_SWIFT_SOURCE_DIR = "$SourceCache\swift";
946962
LLVM_NATIVE_TOOL_DIR = "$BinaryCache\0\bin";
947963
LLVM_TABLEGEN = "$BinaryCache\0\bin\llvm-tblgen.exe";
@@ -959,6 +975,7 @@ function Build-Compilers() {
959975
SWIFT_PATH_TO_SWIFT_SYNTAX_SOURCE = "$SourceCache\swift-syntax";
960976
SWIFT_PATH_TO_STRING_PROCESSING_SOURCE = "$SourceCache\swift-experimental-string-processing";
961977
SWIFT_PATH_TO_SWIFT_SDK = (Get-PinnedToolchainSDK);
978+
"cmark-gfm_DIR" = "$($HostArch.BinaryCache)\cmark-gfm-0.29.0.gfm.13";
962979
})
963980
}
964981
}
@@ -1743,6 +1760,7 @@ if (-not $SkipBuild) {
17431760
}
17441761

17451762
if (-not $SkipBuild) {
1763+
Invoke-BuildStep Build-CMark $HostArch
17461764
Invoke-BuildStep Build-BuildTools $HostArch
17471765
Invoke-BuildStep Build-Compilers $HostArch
17481766
}

0 commit comments

Comments
 (0)