81 lines
1.9 KiB
CMake
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)
|