/
CMakeLists.txt
49 lines (43 loc) · 1.48 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
cmake_minimum_required(VERSION 3.22.1)
include(FetchContent)
include("./cmake/compileGLSL.cmake")
project(
arteeyes
VERSION 0.1.0.0
DESCRIPTION "Gim. I make gim."
LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# DEPENDENCIES
find_package(Vulkan REQUIRED)
find_package(glm CONFIG REQUIRED)
find_package(SDL2 CONFIG REQUIRED)
find_package(VulkanMemoryAllocator CONFIG REQUIRED)
find_package(vk-bootstrap CONFIG REQUIRED)
find_package(fmt CONFIG REQUIRED)
find_path(VKB_INCLUDES VkBootstrap.h)
find_path(VMA_INCLUDES vk_mem_alloc.h)
# SOURCES
set(SOURCES ./src/platforms/linux.cpp ./src/library/fs.cpp
./src/library/vma.cpp)
include_directories(./include ${VKB_INCLUDES} ${VMA_INCLUDES}
${CMAKE_CURRENT_BINARY_DIR}/include)
configure_file(./include/gim/engine.hpp.in ./include/gim/engine.hpp)
add_executable(${PROJECT_NAME} ${SOURCES})
append_glsl_to_target(
${PROJECT_SOURCE_DIR}/shaders/voxel.comp
${PROJECT_SOURCE_DIR}/shaders/default.frag
${PROJECT_SOURCE_DIR}/shaders/default.vert
${PROJECT_SOURCE_DIR}/shaders/triangle.vert
${PROJECT_SOURCE_DIR}/shaders/triangle.frag)
# LINKER
target_link_libraries(
${PROJECT_NAME}
PRIVATE glm::glm
$<TARGET_NAME_IF_EXISTS:SDL2::SDL2main>
$<IF:$<TARGET_EXISTS:SDL2::SDL2>,SDL2::SDL2,SDL2::SDL2-static>
Vulkan::Vulkan
vk-bootstrap::vk-bootstrap
GPUOpen::VulkanMemoryAllocator
fmt::fmt)