diff options
| author | yum <yum.food.vr@gmail.com> | 2025-10-10 22:53:26 -0700 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2025-10-10 22:54:28 -0700 |
| commit | 4cbf98dd43ebb4795fe36faa68b858602a4044f3 (patch) | |
| tree | 006f9f024eae1dcdb8932038865933bb944abb53 /CMakeLists.txt | |
initial commit
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..25032e6 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,45 @@ +cmake_minimum_required(VERSION 3.20) +project(modular_slang_demo LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +set(SLANG_SDK_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/slang/build/slang-2025.18.2-windows-x86_64") +if(NOT EXISTS "${SLANG_SDK_ROOT}") + message(FATAL_ERROR "Expected Slang SDK directory at ${SLANG_SDK_ROOT}") +endif() + +add_executable(modular_slang main.cc) +set_target_properties(modular_slang PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" +) + +target_include_directories(modular_slang PRIVATE + "${SLANG_SDK_ROOT}/include" +) + +target_link_libraries(modular_slang PRIVATE + "${SLANG_SDK_ROOT}/lib/slang.lib" +) + +if(MSVC) + target_compile_options(modular_slang PRIVATE /W4 /EHsc) +else() + target_compile_options(modular_slang PRIVATE -Wall -Wextra -pedantic) +endif() + +add_custom_command(TARGET modular_slang POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + "${SLANG_SDK_ROOT}/bin/slang.dll" + "$<TARGET_FILE_DIR:modular_slang>/slang.dll" + COMMAND ${CMAKE_COMMAND} -E copy_if_different + "${SLANG_SDK_ROOT}/bin/slang-rt.dll" + "$<TARGET_FILE_DIR:modular_slang>/slang-rt.dll" + COMMAND ${CMAKE_COMMAND} -E copy_if_different + "${SLANG_SDK_ROOT}/bin/gfx.dll" + "$<TARGET_FILE_DIR:modular_slang>/gfx.dll" + COMMAND ${CMAKE_COMMAND} -E copy_if_different + "${CMAKE_CURRENT_SOURCE_DIR}/test.slang" + "$<TARGET_FILE_DIR:modular_slang>/test.slang" +) |
