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() # 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) 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_LIBRARIES} FastNoise)