Files
RedScarfEngine/Graphics/CMakeLists.txt
T
Piotr Krygier 649e7f76fe Change build system to CMake
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.
2023-03-16 12:04:35 +01:00

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
)