aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorNicolas James <nj3ahxac@gmail.com>2026-01-15 18:58:37 +1100
committerNicolas James <nj3ahxac@gmail.com>2026-01-15 18:58:37 +1100
commitc7363b6165a7795d10a8989c241dcdec84d0c7d7 (patch)
treeeedb971780a18d4f98c7fceec52e4877d4065037 /CMakeLists.txt
parentf6ff028f1ed0f838e2e3b767683c620160a37f49 (diff)
Add implementation of renderdoc's vulkan layer tutorial
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt41
1 files changed, 41 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..793e637
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,41 @@
+cmake_minimum_required(VERSION 3.10)
+project(low_latency_layer
+ VERSION 0.01
+ LANGUAGES CXX
+)
+
+set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+
+set(CMAKE_CXX_STANDARD 23)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CMAKE_CXX_EXTENSIONS OFF)
+
+file(GLOB_RECURSE CXX_SOURCES src/*.cc)
+
+set(LIBRARY_NAME VkLayer_NJ3AHXAC_LowLatency)
+add_library(${LIBRARY_NAME} SHARED
+ ${CXX_SOURCES}
+)
+
+find_package(Vulkan REQUIRED)
+target_link_libraries(${LIBRARY_NAME}
+ ${Vulkan_LIBRARIES}
+)
+
+# Copy layer into out/
+set(OUTPUT_DIR "${CMAKE_BINARY_DIR}/out")
+add_custom_command(TARGET ${LIBRARY_NAME} POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory "${OUTPUT_DIR}"
+)
+
+add_custom_command(TARGET ${LIBRARY_NAME} POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ "$<TARGET_FILE:${LIBRARY_NAME}>"
+ "${OUTPUT_DIR}/"
+)
+
+add_custom_command(TARGET ${LIBRARY_NAME} POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ "${CMAKE_CURRENT_SOURCE_DIR}/low_latency_layer.json"
+ "${OUTPUT_DIR}/"
+)