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.
This commit is contained in:
Piotr Krygier committed 2023-03-16 12:04:35 +01:00
1 parent 0c45da5cc4
commit 649e7f76fe
17 files changed
+109 -53

No files matched your search

+51
View File
@@ -0,0 +1,51 @@
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
)