game/CMakeLists.txt
Warwick 517f8b2d6c Deleted unused fast noise and added method of installing newer assimp
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.
2023-03-21 15:23:05 +00:00

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
)