diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/compiler-core/CMakeLists.txt | 16 | ||||
| -rw-r--r-- | source/core/CMakeLists.txt | 10 | ||||
| -rw-r--r-- | source/slang-glslang/CMakeLists.txt | 16 | ||||
| -rw-r--r-- | source/slang-rt/CMakeLists.txt | 15 | ||||
| -rw-r--r-- | source/slang-stdlib/CMakeLists.txt | 5 | ||||
| -rw-r--r-- | source/slang-wasm/CMakeLists.txt | 17 | ||||
| -rw-r--r-- | source/slangc/CMakeLists.txt | 10 |
7 files changed, 87 insertions, 2 deletions
diff --git a/source/compiler-core/CMakeLists.txt b/source/compiler-core/CMakeLists.txt new file mode 100644 index 000000000..4d1bff17b --- /dev/null +++ b/source/compiler-core/CMakeLists.txt @@ -0,0 +1,16 @@ +slang_add_target( + . + STATIC + EXCLUDE_FROM_ALL + USE_EXTRA_WARNINGS + LINK_WITH_PRIVATE core + INCLUDE_FROM_PUBLIC SPIRV-Headers +) +if(NOT MSVC) + # This is necessary to compile the DXC headers + set_source_files_properties( + slang-dxc-compiler.cpp + PROPERTIES COMPILE_OPTIONS "-fms-extensions" + DIRECTORY ${slang_SOURCE_DIR} + ) +endif() diff --git a/source/core/CMakeLists.txt b/source/core/CMakeLists.txt new file mode 100644 index 000000000..15da2abfb --- /dev/null +++ b/source/core/CMakeLists.txt @@ -0,0 +1,10 @@ +slang_add_target( + . + STATIC + EXCLUDE_FROM_ALL + USE_EXTRA_WARNINGS + LINK_WITH_PRIVATE + miniz lz4_static Threads::Threads ${CMAKE_DL_LIBS} + LINK_WITH_PUBLIC unordered_dense::unordered_dense + INCLUDE_DIRECTORIES_PUBLIC ${slang_SOURCE_DIR}/source ${slang_SOURCE_DIR}/include +) diff --git a/source/slang-glslang/CMakeLists.txt b/source/slang-glslang/CMakeLists.txt new file mode 100644 index 000000000..37bb93ca0 --- /dev/null +++ b/source/slang-glslang/CMakeLists.txt @@ -0,0 +1,16 @@ +# +# Our wrapper for glslang +# +if(SLANG_ENABLE_SLANG_GLSLANG) + slang_add_target( + . + MODULE + USE_FEWER_WARNINGS + LINK_WITH_PRIVATE glslang SPIRV SPIRV-Tools-opt + INCLUDE_DIRECTORIES_PRIVATE ${slang_SOURCE_DIR}/include + INSTALL + ) + # Our only interface is through what we define in source/slang-glslang, in the + # interests of hygiene, hide anything else we link in. + add_supported_cxx_linker_flags(slang-glslang PRIVATE "-Wl,--exclude-libs,ALL") +endif() diff --git a/source/slang-rt/CMakeLists.txt b/source/slang-rt/CMakeLists.txt new file mode 100644 index 000000000..fc37237cd --- /dev/null +++ b/source/slang-rt/CMakeLists.txt @@ -0,0 +1,15 @@ +if(SLANG_ENABLE_SLANGRT) + slang_add_target( + . + SHARED + # This compiles 'core' again with the SLANG_RT_DYNAMIC_EXPORT macro defined + EXTRA_SOURCE_DIRS ${slang_SOURCE_DIR}/source/core + USE_EXTRA_WARNINGS + LINK_WITH_PRIVATE + miniz lz4_static Threads::Threads ${CMAKE_DL_LIBS} + LINK_WITH_PUBLIC unordered_dense::unordered_dense + EXPORT_MACRO_PREFIX SLANG_RT + INCLUDE_DIRECTORIES_PUBLIC ${slang_SOURCE_DIR}/include + INSTALL + ) +endif() diff --git a/source/slang-stdlib/CMakeLists.txt b/source/slang-stdlib/CMakeLists.txt index 6303bc1b9..a6d646cf3 100644 --- a/source/slang-stdlib/CMakeLists.txt +++ b/source/slang-stdlib/CMakeLists.txt @@ -87,7 +87,8 @@ add_custom_command( VERBATIM ) -add_custom_target(generate_stdlib_headers DEPENDS ${stdlib_meta_generated_headers}) +add_custom_target(generate-stdlib-headers DEPENDS ${stdlib_meta_generated_headers}) +set_target_properties(generate-stdlib-headers PROPERTIES FOLDER generated) # # Generate embedded stdlib source @@ -108,7 +109,7 @@ set(stdlib_source_common_args EXPLICIT_SOURCE ./slang-embedded-stdlib-source.cpp ${stdlib_meta_generated_headers} - REQUIRES generate_stdlib_headers + REQUIRES generate-stdlib-headers EXTRA_COMPILE_DEFINITIONS_PRIVATE SLANG_EMBED_STDLIB_SOURCE INCLUDE_DIRECTORIES_PRIVATE ${stdlib_meta_output_dir} diff --git a/source/slang-wasm/CMakeLists.txt b/source/slang-wasm/CMakeLists.txt new file mode 100644 index 000000000..d821415e7 --- /dev/null +++ b/source/slang-wasm/CMakeLists.txt @@ -0,0 +1,17 @@ +# +# WebAssembly bindings for Slang +# +# This is an executable target because emcmake produces .a files without bindings if you just create a static library +# https://stackoverflow.com/questions/63622009/static-library-built-with-cmake-as-a-with-emscripten-instead-of-wasm-js +if (EMSCRIPTEN) + slang_add_target( + . + EXECUTABLE + EXCLUDE_FROM_ALL + USE_FEWER_WARNINGS + LINK_WITH_PRIVATE miniz lz4_static slang core compiler-core + INCLUDE_DIRECTORIES_PUBLIC ${slang_SOURCE_DIR}/include . + ) + # To generate binding code + target_link_options(slang-wasm PUBLIC "--bind") +endif() diff --git a/source/slangc/CMakeLists.txt b/source/slangc/CMakeLists.txt new file mode 100644 index 000000000..fba390b31 --- /dev/null +++ b/source/slangc/CMakeLists.txt @@ -0,0 +1,10 @@ +if(SLANG_ENABLE_SLANGC) + slang_add_target( + . + EXECUTABLE + USE_FEWER_WARNINGS + DEBUG_DIR ${slang_SOURCE_DIR} + LINK_WITH_PRIVATE core slang Threads::Threads + INSTALL + ) +endif() |
