diff options
| -rw-r--r-- | CMakeLists.txt | 12 | ||||
| -rw-r--r-- | cmake/SlangTarget.cmake | 7 | ||||
| -rw-r--r-- | docs/building.md | 1 | ||||
| -rw-r--r-- | source/slang/CMakeLists.txt | 2 |
4 files changed, 21 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index a295e81a4..8b5683c15 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,6 +95,18 @@ option(SLANG_ENABLE_SLANG_GLSLANG "Enable glslang dependency and slang-glslang w option(SLANG_ENABLE_TESTS "Enable test targets, requires SLANG_ENABLE_GFX, SLANG_ENABLE_SLANGD and SLANG_ENABLE_SLANGRT" ON) option(SLANG_ENABLE_EXAMPLES "Enable example targets, requires SLANG_ENABLE_GFX" ON) +enum_option( + SLANG_LIB_TYPE + # Default + SHARED + "How to build the slang lib:" + # Options + SHARED + "Build slang as a shared library (default)" + STATIC + "Build slang as a static library" +) + set(SLANG_GENERATORS_PATH "" CACHE PATH diff --git a/cmake/SlangTarget.cmake b/cmake/SlangTarget.cmake index 44d6c945c..cb4443d0e 100644 --- a/cmake/SlangTarget.cmake +++ b/cmake/SlangTarget.cmake @@ -241,6 +241,13 @@ function(slang_add_target dir type) PUBLIC "${ARG_EXPORT_MACRO_PREFIX}_DYNAMIC" PRIVATE "${ARG_EXPORT_MACRO_PREFIX}_DYNAMIC_EXPORT" ) + elseif( + target_type STREQUAL STATIC_LIBRARY + ) + target_compile_definitions( + ${target} + PUBLIC "${ARG_EXPORT_MACRO_PREFIX}_STATIC" + ) endif() endif() diff --git a/docs/building.md b/docs/building.md index 3cac636a1..89ee9a998 100644 --- a/docs/building.md +++ b/docs/building.md @@ -260,6 +260,7 @@ See the [documentation on testing](../tools/slang-test/README.md) for more infor | `SLANG_ENABLE_SLANG_GLSLANG` | `TRUE` | Enable glslang dependency and slang-glslang wrapper target | | `SLANG_ENABLE_TESTS` | `TRUE` | Enable test targets, requires SLANG_ENABLE_GFX, SLANG_ENABLE_SLANGD and SLANG_ENABLE_SLANGRT | | `SLANG_ENABLE_EXAMPLES` | `TRUE` | Enable example targets, requires SLANG_ENABLE_GFX | +| `SLANG_LIB_TYPE` | `SHARED` | How to build the slang library | | `SLANG_SLANG_LLVM_FLAVOR` | `FETCH_BINARY` | How to set up llvm support | | `SLANG_SLANG_LLVM_BINARY_URL` | System dependent | URL specifying the location of the slang-llvm prebuilt library | | `SLANG_GENERATORS_PATH` | `` | Path to an installed `all-generators` target for cross compilation | diff --git a/source/slang/CMakeLists.txt b/source/slang/CMakeLists.txt index cbec1c793..320cd0ce9 100644 --- a/source/slang/CMakeLists.txt +++ b/source/slang/CMakeLists.txt @@ -243,7 +243,7 @@ target_include_directories( # slang_add_target( . - SHARED + ${SLANG_LIB_TYPE} LINK_WITH_PRIVATE core compiler-core |
