-
Notifications
You must be signed in to change notification settings - Fork 274
/
ProjectSettings.cmake
73 lines (58 loc) · 3.29 KB
/
ProjectSettings.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#
# Project settings
#
################################################################################
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type")
set(CMAKE_BUILD_TYPE Release)
endif()
string(TOUPPER "${CMAKE_BUILD_TYPE}" _CONFIG)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(${PROJECT_NAME}_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE PATH
"${PROJECT_NAME} installation prefix")
add_feature(CMAKE_C_FLAGS_${_CONFIG} "C compiler build-specific flags")
add_feature(CMAKE_CXX_FLAGS_${_CONFIG} "C++ compiler build-specific flags")
################################################################################
#
# Non-python installation directories
#
################################################################################
if(${PROJECT_NAME}_DEVELOPER_INSTALL)
set(${PROJECT_NAME}_INSTALL_DATAROOTDIR ${CMAKE_INSTALL_DATAROOTDIR})
if(NOT IS_ABSOLUTE ${${PROJECT_NAME}_INSTALL_DATAROOTDIR})
set(${PROJECT_NAME}_INSTALL_DATAROOTDIR "${${PROJECT_NAME}_INSTALL_PREFIX}/share"
CACHE PATH "Installation root directory for data" FORCE)
endif()
set(${PROJECT_NAME}_INSTALL_CMAKEDIR ${${PROJECT_NAME}_INSTALL_DATAROOTDIR}/cmake/${PROJECT_NAME}
CACHE PATH "Installation for CMake config" FORCE)
set(${PROJECT_NAME}_INSTALL_INCLUDEDIR ${${PROJECT_NAME}_INSTALL_PREFIX}/include
CACHE PATH "Installation for include directories" FORCE)
set(${PROJECT_NAME}_INSTALL_LIBDIR ${${PROJECT_NAME}_INSTALL_PREFIX}/${LIBDIR_DEFAULT}
CACHE PATH "Installation for libraries" FORCE)
set(${PROJECT_NAME}_INSTALL_BINDIR ${${PROJECT_NAME}_INSTALL_PREFIX}/bin
CACHE PATH "Installation for executables" FORCE)
set(${PROJECT_NAME}_INSTALL_MANDIR ${${PROJECT_NAME}_INSTALL_DATAROOTDIR}/man
CACHE PATH "Installation for executables" FORCE)
set(${PROJECT_NAME}_INSTALL_DOCDIR ${${PROJECT_NAME}_INSTALL_DATAROOTDIR}/doc
CACHE PATH "Installation for executables" FORCE)
else(${PROJECT_NAME}_DEVELOPER_INSTALL)
# cmake installation folder
set(${PROJECT_NAME}_INSTALL_CMAKEDIR ${CMAKE_INSTALL_DATAROOTDIR}/cmake/${PROJECT_NAME}
CACHE PATH "Installation directory for CMake package config files")
# the rest of the installation folders
foreach(_TYPE in DATAROOT INCLUDE LIB BIN MAN DOC)
set(${PROJECT_NAME}_INSTALL_${_TYPE}DIR ${CMAKE_INSTALL_${_TYPE}DIR})
endforeach(_TYPE in DATAROOT INCLUDE LIB BIN MAN DOC)
endif(${PROJECT_NAME}_DEVELOPER_INSTALL)
# create the full path version and generic path versions
foreach(_TYPE in DATAROOT CMAKE INCLUDE LIB BIN MAN DOC)
# set the absolute versions
if(NOT IS_ABSOLUTE "${${PROJECT_NAME}_INSTALL_${_TYPE}DIR}")
set(${PROJECT_NAME}_INSTALL_FULL_${_TYPE}DIR ${CMAKE_INSTALL_PREFIX}/${${PROJECT_NAME}_INSTALL_${_TYPE}DIR})
else(NOT IS_ABSOLUTE "${${PROJECT_NAME}_INSTALL_${_TYPE}DIR}")
set(${PROJECT_NAME}_INSTALL_FULL_${_TYPE}DIR ${${PROJECT_NAME}_INSTALL_${_TYPE}DIR})
endif(NOT IS_ABSOLUTE "${${PROJECT_NAME}_INSTALL_${_TYPE}DIR}")
# generic "PROJECT_INSTALL_" variables (used by documentation)"
set(PROJECT_INSTALL_${_TYPE}DIR ${${PROJECT_NAME}_INSTALL_${TYPE}DIR})
set(PROJECT_INSTALL_FULL_${_TYPE}DIR ${${PROJECT_NAME}_INSTALL_FULL_${TYPE}DIR})
endforeach(_TYPE in DATAROOT CMAKE INCLUDE LIB BIN MAN DOC)