diff options
Diffstat (limited to 'source/slang')
| -rw-r--r-- | source/slang/CMakeLists.txt | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/source/slang/CMakeLists.txt b/source/slang/CMakeLists.txt index 9c51ed767..2adc96939 100644 --- a/source/slang/CMakeLists.txt +++ b/source/slang/CMakeLists.txt @@ -1,4 +1,49 @@ # +# Invoke the "fiddle" tool to generate source +# + +set(SLANG_FIDDLE_INPUT_DIR "${CMAKE_CURRENT_SOURCE_DIR}") +set(SLANG_FIDDLE_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/fiddle") + +file(GLOB SLANG_FIDDLE_INPUT_FILE_NAMES + CONFIGURE_DEPENDS + RELATIVE "${SLANG_FIDDLE_INPUT_DIR}" + "*.h" + "*.cpp") + +list(TRANSFORM SLANG_FIDDLE_INPUT_FILE_NAMES + PREPEND "${SLANG_FIDDLE_INPUT_DIR}/" + OUTPUT_VARIABLE SLANG_FIDDLE_INPUTS) + +list(TRANSFORM SLANG_FIDDLE_INPUT_FILE_NAMES + APPEND ".fiddle" + OUTPUT_VARIABLE SLANG_FIDDLE_OUTPUTS) +list(TRANSFORM SLANG_FIDDLE_OUTPUTS + PREPEND "${SLANG_FIDDLE_OUTPUT_DIR}/") + +add_custom_command( + OUTPUT ${SLANG_FIDDLE_OUTPUTS} + COMMAND ${CMAKE_COMMAND} -E make_directory ${SLANG_FIDDLE_OUTPUT_DIR} + COMMAND slang-fiddle + -i "${SLANG_FIDDLE_INPUT_DIR}/" + -o "${SLANG_FIDDLE_OUTPUT_DIR}/" + ${SLANG_FIDDLE_INPUT_FILE_NAMES} + DEPENDS ${SLANG_FIDDLE_INPUTS} slang-fiddle + VERBATIM +) +add_library( + slang-fiddle-output + INTERFACE + EXCLUDE_FROM_ALL + ${SLANG_FIDDLE_OUTPUTS} +) +set_target_properties(slang-fiddle-output PROPERTIES FOLDER generated) +target_include_directories( + slang-fiddle-output + INTERFACE ${SLANG_FIDDLE_OUTPUT_DIR} +) + +# # generate capability files # glob_append(SLANG_CAPABILITY_SOURCE "*.capdef") @@ -233,6 +278,7 @@ set(slang_link_args compiler-core slang-capability-defs slang-capability-lookup + slang-fiddle-output slang-reflect-headers slang-lookup-tables SPIRV-Headers |
