Files
somaesque-native/CMakeLists.txt

99 lines
2.0 KiB
CMake

cmake_minimum_required(VERSION 3.24)
project(somaesque)
set(VENDOR_DIR "${CMAKE_CURRENT_SOURCE_DIR}/vendor")
set(SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
set(CMAKE_EXPORT_COMPILE_COMMANDS true)
set(CMAKE_BUILD_TYPE Release)
set(CMAKE_CXX_FLAGS_RELEASE "-O2")
set(CMAKE_CXX_STANDARD 20)
option(GLFW_BUILD_DOCS OFF)
option(GLFW_BUILD_EXAMPLES OFF)
option(GLFW_BUILD_TESTS OFF)
option(GLFW_INSTALL OFF)
find_package(glfw3 3.3 REQUIRED)
find_package(glm REQUIRED)
# Glad
add_library(glad
STATIC
${VENDOR_DIR}/glad/glad.c
)
target_include_directories(glad
PUBLIC
${VENDOR_DIR}
)
# KHR
# STB
add_library(loaders
STATIC
${VENDOR_DIR}/loaders/tinyobj.cpp
${VENDOR_DIR}/loaders/stb_image.cpp
)
target_include_directories(loaders
PUBLIC
${VENDOR_DIR}
)
# somaesque
add_executable(${PROJECT_NAME})
target_sources(${PROJECT_NAME}
PRIVATE
${SRC_DIR}/main.cpp
${SRC_DIR}/VoxelSpace.cpp
${SRC_DIR}/VoxelSpace.h
${SRC_DIR}/SomaSolve.cpp
${SRC_DIR}/SomaSolve.h
${SRC_DIR}/gfx/Texture.h
${SRC_DIR}/gfx/Texture.cpp
${SRC_DIR}/gfx/Mesh.h
${SRC_DIR}/gfx/Mesh.cpp
${SRC_DIR}/gfx/Shader.h
${SRC_DIR}/gfx/Shader.cpp
${SRC_DIR}/gfx/geometry.h
${SRC_DIR}/gfx/geometry.cpp
)
target_link_libraries(${PROJECT_NAME}
PRIVATE
glfw
GL
X11
pthread
Xrandr
dl
glm::glm
glad
loaders
)
target_include_directories(somaesque
PUBLIC
${VENDOR_DIR}/KHR
)
# TESTING
include(FetchContent)
FetchContent_Declare(
googletest
URL https://github.com/google/googletest/archive/03597a01ee50ed33e9dfd640b249b4be3799d395.zip
)
FetchContent_MakeAvailable(googletest)
enable_testing()
add_executable(tests
${SRC_DIR}/tests.cpp
${SRC_DIR}/VoxelSpace.cpp
${SRC_DIR}/VoxelSpace.h
)
target_link_libraries(tests
GTest::gtest_main
)
include(GoogleTest)
gtest_discover_tests(tests)