summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEllie Hermaszewska <ellieh@nvidia.com>2025-02-19 15:51:22 +0800
committerGitHub <noreply@github.com>2025-02-18 23:51:22 -0800
commit5ceef13e2336dfa1c4de8fdb3a273d81add0a7ca (patch)
tree9e59e1d4d45c0686e7293b20838493aa2a829edd
parentad69ebd873a0fc79d1781863f1049daffa2cc318 (diff)
Fix and document static build (#6374)
* Set static stbi flag for static builds * Add missing SYSTEM directive for external includes * Add instructions for linking statically against slang --------- Co-authored-by: Yong He <yonghe@outlook.com>
-rw-r--r--cmake/CompilerFlags.cmake1
-rw-r--r--docs/building.md15
-rw-r--r--external/CMakeLists.txt12
3 files changed, 26 insertions, 2 deletions
diff --git a/cmake/CompilerFlags.cmake b/cmake/CompilerFlags.cmake
index b35f98b98..ad9a69185 100644
--- a/cmake/CompilerFlags.cmake
+++ b/cmake/CompilerFlags.cmake
@@ -205,6 +205,7 @@ function(set_default_compile_options target)
$<$<BOOL:${SLANG_ENABLE_FULL_DEBUG_VALIDATION}>:SLANG_ENABLE_FULL_IR_VALIDATION>
$<$<BOOL:${SLANG_ENABLE_IR_BREAK_ALLOC}>:SLANG_ENABLE_IR_BREAK_ALLOC>
$<$<BOOL:${SLANG_ENABLE_DX_ON_VK}>:SLANG_CONFIG_DX_ON_VK>
+ $<$<STREQUAL:${SLANG_LIB_TYPE},STATIC>:STB_IMAGE_STATIC>
)
if(SLANG_ENABLE_ASAN)
diff --git a/docs/building.md b/docs/building.md
index 21a86b03b..504e4e10c 100644
--- a/docs/building.md
+++ b/docs/building.md
@@ -321,6 +321,21 @@ cmake -B build -G Ninja
cmake --build build -j
```
+## Static linking against libslang
+
+If linking against a static `libslang.a` you will need to link against some
+dependencies also if you're not already incorporating them into your project.
+
+You will need to link against:
+
+```
+${SLANG_DIR}/build/Release/lib/libslang.a
+${SLANG_DIR}/build/Release/lib/libcompiler-core.a
+${SLANG_DIR}/build/Release/lib/libcore.a
+${SLANG_DIR}/build/external/miniz/libminiz.a
+${SLANG_DIR}/build/external/lz4/build/cmake/liblz4.a
+```
+
## Notes
[^1] below 3.25, CMake lacks the ability to mark directories as being
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
index 2a9d3fee8..f23027f68 100644
--- a/external/CMakeLists.txt
+++ b/external/CMakeLists.txt
@@ -89,11 +89,19 @@ endif()
# imgui
add_library(imgui INTERFACE)
-target_include_directories(imgui INTERFACE "${CMAKE_CURRENT_LIST_DIR}/imgui")
+target_include_directories(
+ imgui
+ ${system}
+ INTERFACE "${CMAKE_CURRENT_LIST_DIR}/imgui"
+)
# stb
add_library(stb INTERFACE)
-target_include_directories(stb INTERFACE "${CMAKE_CURRENT_LIST_DIR}/stb")
+target_include_directories(
+ stb
+ ${system}
+ INTERFACE "${CMAKE_CURRENT_LIST_DIR}/stb"
+)
# slang-rhi
if(SLANG_ENABLE_SLANG_RHI)