summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2025-10-10 22:53:26 -0700
committeryum <yum.food.vr@gmail.com>2025-10-10 22:54:28 -0700
commit4cbf98dd43ebb4795fe36faa68b858602a4044f3 (patch)
tree006f9f024eae1dcdb8932038865933bb944abb53 /CMakeLists.txt
initial commit
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt45
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"
+)