diff options
| author | Ellie Hermaszewska <ellieh@nvidia.com> | 2025-02-19 15:51:22 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-18 23:51:22 -0800 |
| commit | 5ceef13e2336dfa1c4de8fdb3a273d81add0a7ca (patch) | |
| tree | 9e59e1d4d45c0686e7293b20838493aa2a829edd | |
| parent | ad69ebd873a0fc79d1781863f1049daffa2cc318 (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.cmake | 1 | ||||
| -rw-r--r-- | docs/building.md | 15 | ||||
| -rw-r--r-- | external/CMakeLists.txt | 12 |
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) |
