Skip to content

Commit 020d673

Browse files
committedDec 3, 2024
build: enable libxml2 in the toolchain, use llvm-mt
Enable support for libxml2 on Windows to allow `llvm-mt` to be usable. This then allows us to use `llvm-mt` as the manifest tool when building for Windows. Remove the then obsoleted workaround of `-D CMAKE_MT=mt`. This reduces the dependency on the MSVC toolchain and paves the path to enabling the use of the manifest tool in SPM.
1 parent ab04b3a commit 020d673

File tree

3 files changed

+16
-12
lines changed

3 files changed

+16
-12
lines changed
 

‎cmake/caches/Windows-aarch64.cmake

+4-2
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ set(LLVM_TARGETS_TO_BUILD AArch64 ARM WebAssembly X86 CACHE STRING "")
5050
set(LLVM_BUILD_LLVM_DYLIB NO CACHE BOOL "")
5151
set(LLVM_BUILD_LLVM_C_DYLIB NO CACHE BOOL "")
5252
set(LLVM_ENABLE_LIBEDIT NO CACHE BOOL "")
53-
set(LLVM_ENABLE_LIBXML2 NO CACHE BOOL "")
53+
set(LLVM_ENABLE_LIBXML2 YES CACHE BOOL "")
5454
set(LLVM_ENABLE_OCAMLDOC NO CACHE BOOL "")
5555
set(LLVM_ENABLE_TERMINFO NO CACHE BOOL "")
5656
set(LLVM_ENABLE_Z3_SOLVER NO CACHE BOOL "")
@@ -62,12 +62,14 @@ set(LLVM_INCLUDE_GO_TESTS NO CACHE BOOL "")
6262
set(LLVM_TOOL_GOLD_BUILD NO CACHE BOOL "")
6363
set(LLVM_TOOL_LLVM_SHLIB_BUILD NO CACHE BOOL "")
6464

65+
set(CLANG_ENABLE_LIBXML2 NO CACHE BOOL "")
66+
6567
# Avoid swig dependency for lldb
6668
set(LLDB_ALLOW_STATIC_BINDINGS YES CACHE BOOL "")
6769
set(LLDB_USE_STATIC_BINDINGS YES CACHE BOOL "")
6870
set(LLDB_ENABLE_PYTHON YES CACHE BOOL "")
6971
set(LLDB_EMBED_PYTHON_HOME NO CACHE BOOL "")
70-
set(LLDB_ENABLE_LIBXML2 NO CACHE BOOL "")
72+
set(LLDB_ENABLE_LIBXML2 YES CACHE BOOL "")
7173

7274
# This requires perl which may not be available on Windows
7375
set(SWIFT_INCLUDE_DOCS NO CACHE BOOL "")

‎cmake/caches/Windows-x86_64.cmake

+4-2
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ set(LLVM_TARGETS_TO_BUILD AArch64 ARM WebAssembly X86 CACHE STRING "")
9090
set(LLVM_BUILD_LLVM_DYLIB NO CACHE BOOL "")
9191
set(LLVM_BUILD_LLVM_C_DYLIB NO CACHE BOOL "")
9292
set(LLVM_ENABLE_LIBEDIT NO CACHE BOOL "")
93-
set(LLVM_ENABLE_LIBXML2 NO CACHE BOOL "")
93+
set(LLVM_ENABLE_LIBXML2 YES CACHE BOOL "")
9494
set(LLVM_ENABLE_OCAMLDOC NO CACHE BOOL "")
9595
set(LLVM_ENABLE_TERMINFO NO CACHE BOOL "")
9696
set(LLVM_ENABLE_Z3_SOLVER NO CACHE BOOL "")
@@ -102,12 +102,14 @@ set(LLVM_INCLUDE_GO_TESTS NO CACHE BOOL "")
102102
set(LLVM_TOOL_GOLD_BUILD NO CACHE BOOL "")
103103
set(LLVM_TOOL_LLVM_SHLIB_BUILD NO CACHE BOOL "")
104104

105+
set(CLANG_ENABLE_LIBXML2 NO CACHE BOOL "")
106+
105107
# Avoid swig dependency for lldb
106108
set(LLDB_ALLOW_STATIC_BINDINGS YES CACHE BOOL "")
107109
set(LLDB_USE_STATIC_BINDINGS YES CACHE BOOL "")
108110
set(LLDB_ENABLE_PYTHON YES CACHE BOOL "")
109111
set(LLDB_EMBED_PYTHON_HOME NO CACHE BOOL "")
110-
set(LLDB_ENABLE_LIBXML2 NO CACHE BOOL "")
112+
set(LLDB_ENABLE_LIBXML2 YES CACHE BOOL "")
111113

112114
# This requires perl which may not be available on Windows
113115
set(SWIFT_INCLUDE_DOCS NO CACHE BOOL "")

‎utils/build.ps1

+8-8
Original file line numberDiff line numberDiff line change
@@ -988,7 +988,6 @@ function Build-CMakeProject {
988988
}
989989

990990
TryAdd-KeyValue $Defines CMAKE_BUILD_TYPE Release
991-
TryAdd-KeyValue $Defines CMAKE_MT "mt"
992991

993992
$CFlags = @()
994993
switch ($Platform) {
@@ -1411,6 +1410,8 @@ function Build-BuildTools($Arch) {
14111410
-BuildTargets llvm-tblgen,clang-tblgen,clang-pseudo-gen,clang-tidy-confusable-chars-gen,lldb-tblgen,llvm-config,swift-def-to-strings-converter,swift-serialize-diagnostics,swift-compatibility-symbols `
14121411
-Defines @{
14131412
CMAKE_CROSSCOMPILING = "NO";
1413+
CLANG_ENABLE_LIBXML2 = "NO";
1414+
LLDB_ENABLE_LIBXML2 = "NO";
14141415
LLDB_ENABLE_PYTHON = "NO";
14151416
LLDB_INCLUDE_TESTS = "NO";
14161417
LLDB_ENABLE_SWIFT_SUPPORT = "NO";
@@ -1509,7 +1510,9 @@ function Build-Compilers() {
15091510
-Defines ($TestingDefines + @{
15101511
CLANG_TABLEGEN = (Join-Path -Path $BuildTools -ChildPath "clang-tblgen.exe");
15111512
CLANG_TIDY_CONFUSABLE_CHARS_GEN = (Join-Path -Path $BuildTools -ChildPath "clang-tidy-confusable-chars-gen.exe");
1513+
CMAKE_FIND_PACKAGE_PREFER_CONFIG = "YES";
15121514
CMAKE_Swift_FLAGS = $SwiftFlags;
1515+
LibXml2_DIR = "$LibraryRoot\libxml2-2.11.5\usr\lib\Windows\$($Arch.LLVMName)\cmake\libxml2-2.11.5";
15131516
LLDB_PYTHON_EXE_RELATIVE_PATH = "python.exe";
15141517
LLDB_PYTHON_EXT_SUFFIX = ".pyd";
15151518
LLDB_PYTHON_RELATIVE_PATH = "lib/site-packages";
@@ -1932,14 +1935,9 @@ function Build-Foundation([Platform]$Platform, $Arch, [switch]$Test = $false) {
19321935
-Defines (@{
19331936
ENABLE_TESTING = "NO";
19341937
FOUNDATION_BUILD_TOOLS = if ($Platform -eq "Windows") { "YES" } else { "NO" };
1938+
CMAKE_FIND_PACKAGE_PREFER_CONFIG = "YES";
19351939
CURL_DIR = "$LibraryRoot\curl-8.9.1\usr\lib\$Platform\$ShortArch\cmake\CURL";
1936-
LIBXML2_LIBRARY = if ($Platform -eq "Windows") {
1937-
"$LibraryRoot\libxml2-2.11.5\usr\lib\$Platform\$ShortArch\libxml2s.lib";
1938-
} else {
1939-
"$LibraryRoot\libxml2-2.11.5\usr\lib\$Platform\$ShortArch\libxml2.a";
1940-
};
1941-
LIBXML2_INCLUDE_DIR = "$LibraryRoot\libxml2-2.11.5\usr\include\libxml2";
1942-
LIBXML2_DEFINITIONS = "-DLIBXML_STATIC";
1940+
LibXml2_DIR = "$LibraryRoot\libxml2-2.11.5\usr\lib\$Platform\$ShortArch\cmake\libxml2-2.11.5";
19431941
ZLIB_LIBRARY = if ($Platform -eq "Windows") {
19441942
"$LibraryRoot\zlib-1.3.1\usr\lib\$Platform\$ShortArch\zlibstatic.lib"
19451943
} else {
@@ -2780,13 +2778,15 @@ if (-not $SkipBuild) {
27802778
Invoke-BuildStep Build-CMark $BuildArch
27812779
Invoke-BuildStep Build-BuildTools $BuildArch
27822780
if ($IsCrossCompiling) {
2781+
Invoke-BuildStep Build-XML2 Windows $BuildArch
27832782
Invoke-BuildStep Build-Compilers -Build $BuildArch
27842783
}
27852784
if ($IncludeDS2) {
27862785
Invoke-BuildStep Build-RegsGen2 $BuildArch
27872786
}
27882787

27892788
Invoke-BuildStep Build-CMark $HostArch
2789+
Invoke-BuildStep Build-XML2 Windows $HostArch
27902790
Invoke-BuildStep Build-Compilers $HostArch
27912791
}
27922792

0 commit comments

Comments
 (0)