From 1bfc71d4dab0a7347f76dc6f0afc1346bd3dc3bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Tue, 8 Apr 2025 23:11:32 +0200 Subject: [PATCH] build: Set LLVM_BUILD_STATIC/CLANG_BUILD_STATIC when linking statically. This is needed since LLVM 20, particularly for Windows. --- CMakeLists.txt | 7 +++++++ build.zig | 3 +++ 2 files changed, 10 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 15f981b069..4bb75bc9cf 100644 --- 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 index 07f781e158..d3fe688f9f 100644 --- 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(