added new cmake setup, graphics, vendors, obj importer, etc.
This commit is contained in:
@@ -1,24 +1,79 @@
|
||||
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")
|
||||
|
||||
#find_package(glfw3 3.3 REQUIRED)
|
||||
#find_package(glm REQUIRED)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
#set(CMAKE_CXX_FLAGS -I/usr/include/SDL2)
|
||||
|
||||
add_executable(somaesque
|
||||
main.cpp
|
||||
VoxelSpace.cpp
|
||||
VoxelSpace.h
|
||||
SomaSolve.cpp
|
||||
SomaSolve.h
|
||||
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
|
||||
)
|
||||
#target_link_libraries(somaesque glfw GL X11 pthread Xrandr dl SDL2 glm::glm)
|
||||
#target_include_directories(somaesque PRIVATE src/KHR src/glad)
|
||||
|
||||
# TESTING
|
||||
include(FetchContent)
|
||||
@@ -30,15 +85,14 @@ FetchContent_MakeAvailable(googletest)
|
||||
|
||||
enable_testing()
|
||||
add_executable(tests
|
||||
tests.cpp
|
||||
VoxelSpace.cpp
|
||||
VoxelSpace.h
|
||||
${SRC_DIR}/tests.cpp
|
||||
${SRC_DIR}/VoxelSpace.cpp
|
||||
${SRC_DIR}/VoxelSpace.h
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
tests
|
||||
target_link_libraries(tests
|
||||
GTest::gtest_main
|
||||
)
|
||||
)
|
||||
|
||||
include(GoogleTest)
|
||||
gtest_discover_tests(tests)
|
||||
|
||||
Reference in New Issue
Block a user