Files
RealTimeFractal/CMakeLists.txt
2025-02-26 20:23:26 +11:00

69 lines
1.6 KiB
CMake

cmake_minimum_required(VERSION 3.28)
include(FetchContent)
project(App)
set(CMAKE_CXX_STANDARD 20)
#
# Dependencies
#
# GLFW
find_package(glfw3 3.4 QUIET)
if (NOT glfw3_FOUND)
FetchContent_Declare(
glfw3
DOWNLOAD_EXTRACT_TIMESTAMP OFF
URL https://github.com/glfw/glfw/releases/download/3.4/glfw-3.4.zip
)
FetchContent_GetProperties(glfw3)
if (NOT glfw3_POPULATED)
set(FETCHCONTENT_QUIET NO)
FetchContent_Populate(glfw3)
add_subdirectory(${glfw3_SOURCE_DIR} ${glfw3_BINARY_DIR})
endif()
endif()
# OpenGL
find_package(OpenGL REQUIRED)
# GLAD
FetchContent_Declare(
glad
DOWNLOAD_EXTRACT_TIMESTAMP OFF
URL https://github.com/Dav1dde/glad/archive/refs/tags/v2.0.8.zip
)
FetchContent_GetProperties(glad)
if(NOT glad_POPULATED)
set(FETCHCONTENT_QUIET NO)
FetchContent_MakeAvailable(glad)
add_subdirectory("${glad_SOURCE_DIR}/cmake" glad_cmake)
glad_add_library(glad REPRODUCIBLE EXCLUDE_FROM_ALL LOADER API gl:core=4.6)
endif()
set_target_properties(glad PROPERTIES FOLDER "Dependencies")
# GLM
find_package(glm 1.0.1 QUIET)
if (NOT glm_FOUND)
FetchContent_Declare(
glm
DOWNLOAD_EXTRACT_TIMESTAMP OFF
URL https://github.com/g-truc/glm/archive/refs/tags/1.0.1.zip
)
FetchContent_GetProperties(glm)
if (NOT glm_POPULATED)
set(FETCHCONTENT_QUIET NO)
FetchContent_Populate(glm)
add_subdirectory(${glm_SOURCE_DIR} ${glm_BINARY_DIR})
endif()
endif()
set_target_properties(glm PROPERTIES FOLDER "Dependencies")
#
# Projects
#
add_subdirectory(App)