diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index 3ca2c17..f7039fd 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -5,6 +5,7 @@ target_link_libraries(vk-bootstrap-triangle vk-bootstrap vk-bootstrap-compiler-warnings vk-boostrap-vulkan-headers) +target_include_directories(vk-bootstrap-triangle PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) #path to build directory for shaders add_custom_command( TARGET vk-bootstrap-triangle @@ -12,4 +13,9 @@ add_custom_command( COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/example/shaders ${CMAKE_CURRENT_BINARY_DIR} - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}) \ No newline at end of file + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}) + +configure_file ( + "${PROJECT_SOURCE_DIR}/example/example_config.h.in" + "${CMAKE_CURRENT_BINARY_DIR}/example_config.h" +) \ No newline at end of file diff --git a/example/example_config.h.in b/example/example_config.h.in new file mode 100644 index 0000000..a29bed4 --- /dev/null +++ b/example/example_config.h.in @@ -0,0 +1,4 @@ +#pragma once + +#define EXAMPLE_SOURCE_DIRECTORY "${CMAKE_SOURCE_DIR}" +#define EXAMPLE_BUILD_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" \ No newline at end of file diff --git a/example/triangle.cpp b/example/triangle.cpp index f9089b7..ce0b8f8 100644 --- a/example/triangle.cpp +++ b/example/triangle.cpp @@ -7,6 +7,8 @@ #include "../tests/common.h" +#include "example_config.h" + const int MAX_FRAMES_IN_FLIGHT = 2; struct Init { @@ -184,8 +186,8 @@ VkShaderModule createShaderModule (Init& init, const std::vector& code) { } int create_graphics_pipeline (Init& init, RenderData& data) { - auto vert_code = readFile ("vert.spv"); - auto frag_code = readFile ("frag.spv"); + auto vert_code = readFile(std::string(EXAMPLE_BUILD_DIRECTORY) + "/vert.spv"); + auto frag_code = readFile(std::string(EXAMPLE_BUILD_DIRECTORY) + "/frag.spv"); VkShaderModule vert_module = createShaderModule (init, vert_code); VkShaderModule frag_module = createShaderModule (init, frag_code);