According to my own documentation, the project tree should look entirely different. Also, it should use CMake instead of Make. This commit introduces changes that will make my project tree to adhere to my own documentation.
52 lines
1.2 KiB
CMake
52 lines
1.2 KiB
CMake
add_library(rse_graphics)
|
|
|
|
find_package(Vulkan REQUIRED)
|
|
find_package(glfw3 REQUIRED)
|
|
find_package(glm REQUIRED)
|
|
|
|
find_package(Vulkan COMPONENTS glslc)
|
|
find_program(glslc_executable NAMES glslc HINTS Vulkan::glslc)
|
|
|
|
function(compile_shader)
|
|
cmake_parse_arguments(PARSE_ARGV 1 arg "" "ENV;FORMAT" "SOURCES")
|
|
foreach(source ${arg_SOURCES})
|
|
add_custom_command(
|
|
OUTPUT ${source}.${arg_FORMAT}
|
|
DEPENDS ${source}
|
|
DEPFILE ${source}.d
|
|
COMMAND
|
|
${glslc_executable}
|
|
-o ${source}.${arg_FORMAT}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/${source}
|
|
)
|
|
endforeach()
|
|
endfunction()
|
|
|
|
|
|
target_include_directories(rse_graphics PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
${CMAKE_SOURCE_DIR}/third_party/vma/include
|
|
${CMAKE_SOURCE_DIR}/Utilities/include
|
|
${Vulkan_INCLUDE_DIR}
|
|
${glfw3_INCLUDE_DIR}
|
|
${glm_INCLUDE_DIR})
|
|
|
|
|
|
target_sources(rse_graphics PRIVATE
|
|
src/window.cpp
|
|
src/vulkanBase.cpp)
|
|
|
|
target_link_libraries(rse_graphics PRIVATE
|
|
rse_utilities
|
|
${Vulkan_LIBRARIES}
|
|
glfw
|
|
glm)
|
|
|
|
compile_shader(rse_graphics
|
|
ENV opengl
|
|
FORMAT num
|
|
SOURCES
|
|
shaders/shader.vert
|
|
shaders/shader.frag
|
|
)
|