commit 1bfc71d4dab0a7347f76dc6f0afc1346bd3dc3bb (tree)
parent 7733b5dbe603033a1ed9e8d0146ef7432d5ffd5b
Author: Alex Rønne Petersen <alex@alexrp.com>
Date: Tue, 8 Apr 2025 23:11:32 +0200
build: Set LLVM_BUILD_STATIC/CLANG_BUILD_STATIC when linking statically.
This is needed since LLVM 20, particularly for Windows.
Diffstat:
2 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
@@ -698,6 +698,13 @@ add_library(zigcpp STATIC ${ZIG_CPP_SOURCES})
target_compile_features(zigcpp PRIVATE cxx_std_17)
set_target_properties(zigcpp PROPERTIES POSITION_INDEPENDENT_CODE ${ZIG_PIE})
+if(LLVM_LINK_MODE STREQUAL "static")
+ target_compile_definitions(zigcpp PRIVATE
+ LLVM_BUILD_STATIC
+ CLANG_BUILD_STATIC
+ )
+endif()
+
if(NOT MSVC)
if(MINGW)
target_compile_options(zigcpp PRIVATE -Wno-format)
diff --git a/build.zig b/build.zig
@@ -706,6 +706,9 @@ const exe_cflags = [_][]const u8{
"-Wno-type-limits",
"-Wno-missing-braces",
"-Wno-comment",
+ // `exe_cflags` is only used for static linking.
+ "-DLLVM_BUILD_STATIC",
+ "-DCLANG_BUILD_STATIC",
};
fn addCmakeCfgOptionsToExe(