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} ) # 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/Color.h ${SRC_DIR}/gfx/Color.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)