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 _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)