diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang-core-module/CMakeLists.txt | 113 | ||||
| -rw-r--r-- | source/slang-glsl-module/CMakeLists.txt | 21 | ||||
| -rw-r--r-- | source/slangc/CMakeLists.txt | 11 |
3 files changed, 66 insertions, 79 deletions
diff --git a/source/slang-core-module/CMakeLists.txt b/source/slang-core-module/CMakeLists.txt index 96a874d08..d02301dc2 100644 --- a/source/slang-core-module/CMakeLists.txt +++ b/source/slang-core-module/CMakeLists.txt @@ -9,53 +9,6 @@ # # -# Generate an embeddable core module -# - -set(core_module_generated_header_dir ${CMAKE_CURRENT_BINARY_DIR}) -set(core_module_generated_header - ${core_module_generated_header_dir}/slang-core-module-generated.h -) -add_custom_command( - OUTPUT ${core_module_generated_header} - COMMAND - slang-bootstrap -archive-type riff-lz4 -save-core-module-bin-source - ${core_module_generated_header} - DEPENDS slang-bootstrap - VERBATIM -) - -set(core_module_common_args - . - OBJECT - EXCLUDE_FROM_ALL - EXPORT_MACRO_PREFIX - SLANG - EXPORT_TYPE_AS - ${SLANG_LIB_TYPE} - FOLDER - generated - LINK_WITH_PRIVATE - core - USE_EXTRA_WARNINGS - EXPLICIT_SOURCE - ./slang-embedded-core-module.cpp -) - -slang_add_target( - ${core_module_common_args} - TARGET_NAME slang-embedded-core-module - EXPLICIT_SOURCE ${core_module_generated_header} - EXTRA_COMPILE_DEFINITIONS_PRIVATE SLANG_EMBED_CORE_MODULE - INCLUDE_DIRECTORIES_PRIVATE ${core_module_generated_header_dir} -) - -slang_add_target( - ${core_module_common_args} - TARGET_NAME slang-no-embedded-core-module -) - -# # Compiling the meta.slang files # @@ -95,14 +48,8 @@ add_custom_command( VERBATIM ) -add_custom_target( - generate-core-module-headers - DEPENDS ${core_module_meta_generated_headers} -) -set_target_properties(generate-core-module-headers PROPERTIES FOLDER generated) - # -# Generate embedded core module source +# Generate embedded core module source library (or a dummy library with just nullptrs) # set(core_module_source_common_args @@ -117,17 +64,13 @@ set(core_module_source_common_args SPIRV-Headers INCLUDE_DIRECTORIES_PRIVATE ../slang + ${core_module_meta_output_dir} FOLDER generated EXPLICIT_SOURCE ./slang-embedded-core-module-source.cpp - ${core_module_meta_generated_headers} - REQUIRES - generate-core-module-headers EXTRA_COMPILE_DEFINITIONS_PRIVATE SLANG_EMBED_CORE_MODULE_SOURCE - INCLUDE_DIRECTORIES_PRIVATE - ${core_module_meta_output_dir} EXPORT_MACRO_PREFIX SLANG EXPORT_TYPE_AS @@ -138,9 +81,61 @@ slang_add_target( ${core_module_source_common_args} TARGET_NAME slang-embedded-core-module-source EXTRA_COMPILE_DEFINITIONS_PRIVATE SLANG_EMBED_CORE_MODULE_SOURCE + EXPLICIT_SOURCE ${core_module_meta_generated_headers} + EXCLUDE_FROM_ALL ) slang_add_target( ${core_module_source_common_args} TARGET_NAME slang-no-embedded-core-module-source + EXCLUDE_FROM_ALL +) + +# +# Use that source to generate an embeddable core module, this uses +# slang-bootstrap which will include the embedded source we have above +# + +set(core_module_generated_header_dir ${CMAKE_CURRENT_BINARY_DIR}) +set(core_module_generated_header + ${core_module_generated_header_dir}/slang-core-module-generated.h +) + +add_custom_command( + OUTPUT ${core_module_generated_header} ${glsl_module_generated_header} + COMMAND + slang-bootstrap -archive-type riff-lz4 -save-core-module-bin-source + ${core_module_generated_header} + DEPENDS slang-bootstrap + VERBATIM +) + +set(core_module_common_args + . + OBJECT + EXCLUDE_FROM_ALL + EXPORT_MACRO_PREFIX + SLANG + EXPORT_TYPE_AS + ${SLANG_LIB_TYPE} + FOLDER + generated + LINK_WITH_PRIVATE + core + USE_EXTRA_WARNINGS + EXPLICIT_SOURCE + ./slang-embedded-core-module.cpp +) + +slang_add_target( + ${core_module_common_args} + TARGET_NAME slang-embedded-core-module + EXPLICIT_SOURCE ${core_module_generated_header} + EXTRA_COMPILE_DEFINITIONS_PRIVATE SLANG_EMBED_CORE_MODULE + INCLUDE_DIRECTORIES_PRIVATE ${core_module_generated_header_dir} +) + +slang_add_target( + ${core_module_common_args} + TARGET_NAME slang-no-embedded-core-module ) diff --git a/source/slang-glsl-module/CMakeLists.txt b/source/slang-glsl-module/CMakeLists.txt index 40e88a4ed..95787f01d 100644 --- a/source/slang-glsl-module/CMakeLists.txt +++ b/source/slang-glsl-module/CMakeLists.txt @@ -1,8 +1,6 @@ # # Generate an embeddable glsl module # -if (${SLANG_EMBED_CORE_MODULE}) - set(glsl_module_generated_header_dir ${CMAKE_CURRENT_BINARY_DIR}) set(glsl_module_generated_header ${glsl_module_generated_header_dir}/slang-glsl-module-generated.h @@ -16,27 +14,18 @@ add_custom_command( VERBATIM ) -set(glsl_module_common_args +slang_add_target( . MODULE - FOLDER - generated - LINK_WITH_PRIVATE - core + FOLDER generated + LINK_WITH_PRIVATE core USE_EXTRA_WARNINGS EXPLICIT_SOURCE - ./slang-embedded-glsl-module.cpp -) - -slang_add_target( - ${glsl_module_common_args} - TARGET_NAME slang-glsl-module + ./slang-embedded-glsl-module.cpp + ${glsl_module_generated_header} EXCLUDE_FROM_ALL EXTRA_COMPILE_DEFINITIONS_PRIVATE SLANG_SHARED_LIBRARY_TOOL EXPORT_SET_NAME SlangTargets - EXPLICIT_SOURCE ${glsl_module_generated_header} INCLUDE_DIRECTORIES_PRIVATE ${glsl_module_generated_header_dir} INSTALL ) - -endif()
\ No newline at end of file diff --git a/source/slangc/CMakeLists.txt b/source/slangc/CMakeLists.txt index 22547b686..6692385ba 100644 --- a/source/slangc/CMakeLists.txt +++ b/source/slangc/CMakeLists.txt @@ -1,7 +1,7 @@ -if (SLANG_EMBED_CORE_MODULE) +if(SLANG_EMBED_CORE_MODULE) set(SLANG_GLSL_MODULE_DEPENDENCY REQUIRES slang-glsl-module) else() - set(SLANG_GLSL_MODULE_DEPENDENCY ) + set(SLANG_GLSL_MODULE_DEPENDENCY) endif() if(SLANG_ENABLE_SLANGC) @@ -10,8 +10,11 @@ if(SLANG_ENABLE_SLANGC) EXECUTABLE USE_FEWER_WARNINGS DEBUG_DIR ${slang_SOURCE_DIR} - LINK_WITH_PRIVATE core slang Threads::Threads - ${SLANG_GLSL_MODULE_DEPENDENCY} + LINK_WITH_PRIVATE + core + slang + Threads::Threads + ${SLANG_GLSL_MODULE_DEPENDENCY} INSTALL EXPORT_SET_NAME SlangTargets ) |
