Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
gli/CMakeLists.txt
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
132 lines (104 sloc)
3.51 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cmake_minimum_required(VERSION 3.1 FATAL_ERROR) | |
cmake_policy(SET CMP0054 NEW) | |
project(gli) | |
set(GLI_VERSION "0.8.3") | |
set(CMAKE_CXX_STANDARD 11) | |
set(CMAKE_CXX_STANDARD_REQUIRED ON) | |
set(CMAKE_CXX_EXTENSIONS OFF) | |
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") | |
include(GNUInstallDirs) | |
include(CMakePackageConfigHelpers) | |
enable_testing() | |
option(GLI_TEST_ENABLE "Build unit tests" ON) | |
add_definitions(-D_CRT_SECURE_NO_WARNINGS) | |
add_definitions(-DSOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}") | |
include_directories(".") | |
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") | |
# To generate .asm files: /FAs | |
add_definitions(/Za) | |
endif() | |
if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") OR (("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") AND UNIX)) | |
add_definitions(-Wall) | |
endif() | |
################################ | |
# Add source files | |
file(GLOB ROOT_SOURCE ./gli/*.cpp) | |
file(GLOB ROOT_INLINE ./gli/*.inl) | |
file(GLOB ROOT_HEADER ./gli/*.hpp) | |
file(GLOB ROOT_TEXT ./*.txt) | |
file(GLOB ROOT_MD ../*.md) | |
file(GLOB ROOT_KMG ./doc/spec/*.html) | |
file(GLOB_RECURSE CORE_SOURCE ./gli/core/*.cpp) | |
file(GLOB_RECURSE CORE_INLINE ./gli/core/*.inl) | |
file(GLOB_RECURSE CORE_HEADER ./gli/core/*.hpp) | |
file(GLOB_RECURSE GTX_SOURCE ./gli/gtx/*.cpp) | |
file(GLOB_RECURSE GTX_INLINE ./gli/gtx/*.inl) | |
file(GLOB_RECURSE GTX_HEADER ./gli/gtx/*.hpp) | |
source_group("KMG Spec" FILES ${ROOT_KMG}) | |
source_group("Text Files" FILES ${ROOT_TEXT} ${ROOT_MD}) | |
source_group("Core Files" FILES ${CORE_SOURCE}) | |
source_group("Core Files" FILES ${CORE_INLINE}) | |
source_group("Core Files" FILES ${CORE_HEADER}) | |
source_group("GTX Files" FILES ${GTX_SOURCE}) | |
source_group("GTX Files" FILES ${GTX_INLINE}) | |
source_group("GTX Files" FILES ${GTX_HEADER}) | |
################################ | |
# Add package | |
macro(addExternalPackageGTC NAME DIRECTORY) | |
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/external/${DIRECTORY}/util) | |
set(${NAME}_PACKAGE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/${DIRECTORY}) | |
find_package(${NAME}) | |
if(NOT ${NAME}_FOUND) | |
message("ERROR: ${NAME} not found") | |
endif(NOT ${NAME}_FOUND) | |
endmacro(addExternalPackageGTC) | |
################################ | |
# Add subdirectory | |
add_subdirectory(gli) | |
add_subdirectory(test) | |
#add_subdirectory(doc) | |
################################ | |
# Add installer | |
set(GLI_INSTALL_CONFIGDIR "${CMAKE_INSTALL_LIBDIR}/cmake/gli") | |
install(DIRECTORY gli DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) | |
write_basic_package_version_file( | |
"${CMAKE_CURRENT_BINARY_DIR}/gliVersion.cmake" | |
VERSION ${GLI_VERSION} | |
COMPATIBILITY AnyNewerVersion | |
) | |
# build tree package config | |
configure_file( | |
cmake/gliBuildConfig.cmake.in | |
gliConfig.cmake | |
@ONLY | |
) | |
# install tree package config | |
configure_package_config_file( | |
cmake/gliConfig.cmake.in | |
${GLI_INSTALL_CONFIGDIR}/gliConfig.cmake | |
INSTALL_DESTINATION ${GLI_INSTALL_CONFIGDIR} | |
PATH_VARS CMAKE_INSTALL_INCLUDEDIR | |
NO_CHECK_REQUIRED_COMPONENTS_MACRO | |
) | |
install( | |
FILES | |
"${CMAKE_CURRENT_BINARY_DIR}/${GLI_INSTALL_CONFIGDIR}/gliConfig.cmake" | |
"${CMAKE_CURRENT_BINARY_DIR}/gliVersion.cmake" | |
DESTINATION ${GLI_INSTALL_CONFIGDIR} | |
) | |
add_library(gli INTERFACE) | |
target_include_directories(gli INTERFACE | |
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> | |
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> | |
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/external> | |
) | |
install(TARGETS gli EXPORT gliTargets) | |
export( | |
EXPORT gliTargets | |
FILE "${CMAKE_CURRENT_BINARY_DIR}/gliTargets.cmake" | |
) | |
install( | |
EXPORT gliTargets FILE gliTargets.cmake | |
DESTINATION ${GLI_INSTALL_CONFIGDIR} | |
) | |
export(PACKAGE gli) |