glsl-basic/CMakeLists.txt
2023-10-12 21:25:36 +02:00

81 lines
1.9 KiB
CMake

cmake_minimum_required(VERSION 3.9)
# Set a name and a version number for your project:
project(glsl-basic VERSION 0.0.1 LANGUAGES CXX)
# Set CMake policies for this project
# We allow <Package>_ROOT (env) variables for locating dependencies
cmake_policy(SET CMP0074 NEW)
# Initialize some default paths
include(GNUInstallDirs)
# Define the minimum C++ standard that is required
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Compilation options
# Find external dependencies
find_package(GLFW)
# compile the library
add_subdirectory(src)
# compile the application
add_subdirectory(app)
# compile the tests
include(CTest)
if(BUILD_TESTING)
find_package(Catch2 REQUIRED)
include(Catch)
add_subdirectory(tests)
endif()
# Add an alias target for use if this project is included as a subproject in another project
add_library(glsl-basic::glsl-basic ALIAS glsl-basic)
# Install targets and configuration
install(
TARGETS glsl-basic
EXPORT glsl-basic-targets
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(
EXPORT glsl-basic-targets
FILE glsl-basicTargets.cmake
NAMESPACE glsl-basic::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/glsl-basic)
include(CMakePackageConfigHelpers)
configure_package_config_file(
${CMAKE_CURRENT_LIST_DIR}/glsl-basicConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/glsl-basicConfig.cmake
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/glsl-basic)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/glsl-basicConfig.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/glsl-basic)
export(
EXPORT glsl-basic-targets
FILE ${CMAKE_CURRENT_BINARY_DIR}/glsl-basicTargets.cmake
NAMESPACE glsl-basic::)
install(
DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/include/
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)
# This prints a summary of found dependencies
include(FeatureSummary)
feature_summary(WHAT ALL)