Moving away from PCG to try to get this project done. Also fed up with manually packaging a newer version of Assimp for every machine I want to build this software on.
108 lines
2.6 KiB
CMake
108 lines
2.6 KiB
CMake
cmake_minimum_required(VERSION 3.18.4 FATAL_ERROR)
|
|
|
|
project(Game)
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
set(CMAKE_CXX_CLANG_TIDY)
|
|
|
|
file(GLOB_RECURSE SOURCE_FILES
|
|
${CMAKE_SOURCE_DIR}/src/*.c
|
|
${CMAKE_SOURCE_DIR}/src/*.cpp)
|
|
|
|
file(GLOB_RECURSE HEADER_FILES
|
|
${CMAKE_SOURCE_DIR}/src/*.h
|
|
${CMAKE_SOURCE_DIR}/src/*.hpp)
|
|
|
|
configure_file(src/helpers/RootDir.h.in src/helpers/RootDir.h)
|
|
include_directories(${CMAKE_BINARY_DIR}/src)
|
|
|
|
link_directories(${CMAKE_SOURCE_DIR}/lib)
|
|
|
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
|
|
|
|
# Generic OpenGL and windowing libraries.
|
|
find_package(SDL2 REQUIRED)
|
|
find_package(SDL2_image REQUIRED)
|
|
find_package(OpenGL REQUIRED)
|
|
find_package(GLEW REQUIRED)
|
|
find_package(GLM REQUIRED)
|
|
|
|
# Model loading
|
|
#find_package(assimp REQUIRED)
|
|
#if (assimp_VERSION VERSION_LESS "5.1")
|
|
# message(FATAL_ERROR "Assimp ${assimp_VERSION} out of date, Assimp 5.1.0 or newer is required!")
|
|
#endif()
|
|
set(CPM_DOWNLOAD_VERSION 0.38.1)
|
|
set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
|
|
if(NOT (EXISTS ${CPM_DOWNLOAD_LOCATION}))
|
|
message(STATUS "Downloading CPM.cmake")
|
|
file(DOWNLOAD
|
|
https://github.com/TheLartians/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake
|
|
${CPM_DOWNLOAD_LOCATION}
|
|
)
|
|
endif()
|
|
include(${CPM_DOWNLOAD_LOCATION})
|
|
set(CPM_USE_LOCAL_PACKAGES ON)
|
|
|
|
#CPMAddPackage(
|
|
# NAME SDL2_image
|
|
# VERSION 2.0.5
|
|
# URL https://libsdl.org/projects/old/SDL_image/release/SDL2_image-2.0.5.zip
|
|
#)
|
|
#CPMAddPackage(
|
|
# NAME SDL2
|
|
# VERSION 2.0.12
|
|
# URL https://libsdl.org/release/SDL2-2.0.12.zip
|
|
#)
|
|
#if (SDL2_ADDED)
|
|
# add_library(SDL2::SDL2 ALIAS SDL2)
|
|
#endif()
|
|
|
|
#CPMAddPackage(
|
|
# NAME GLM
|
|
# VERSION 0.9.9.8
|
|
# GITHUB_REPOSITORY "g-truc/glm"
|
|
# GIT_TAG "0.9.9.8"
|
|
#)
|
|
#
|
|
#
|
|
#CPMAddPackage(
|
|
# NAME GLEW
|
|
# VERSION 2.2.0
|
|
# GITHUB_REPOSITORY "nigels-com/glew"
|
|
# GIT_TAG "glew-2.2.0"
|
|
#)
|
|
|
|
CPMAddPackage(
|
|
NAME assimp
|
|
VERSION 5.2.5
|
|
GITHUB_REPOSITORY "assimp/assimp"
|
|
GIT_TAG "v5.2.5"
|
|
)
|
|
|
|
# Build FastNoise2 Library
|
|
#set(FASTNOISE2_NOISETOOL ON CACHE BOOL "Build Noise Tool" FORCE)
|
|
#set(BUILD_SHARED_LIBS ON CACHE BOOL "Build Noise Tool Dynamic Library" FORCE)
|
|
##add_subdirectory(deps/FastNoise2)
|
|
#CPMAddPackage(
|
|
# NAME FastNoise2
|
|
# VERSION 0.9.7
|
|
# GITHUB_REPOSITORY "Auburn/FastNoise2"
|
|
# GIT_TAG "v0.9.2-alpha"
|
|
#)
|
|
|
|
include_directories(
|
|
${SDL2_INCLUDE_DIRS}
|
|
${SDL2_IMAGE_DIRS}
|
|
${OPENGL_INCLUDE_DIRS}
|
|
${GLEW_INCLUDE_DIRS}
|
|
${ASSIMP_INCLUDE_DIRS})
|
|
|
|
add_executable(${PROJECT_NAME} ${HEADER_FILES} ${SOURCE_FILES})
|
|
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE
|
|
${SDL2_LIBRARIES}
|
|
${SDL2_IMAGE_LIBRARIES}
|
|
${OPENGL_LIBRARIES}
|
|
${GLEW_LIBRARIES}
|
|
assimp::assimp
|
|
)
|