blob: 79714df23705ca6f57fbaba1fb191c7763d63385 (
plain)
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
# Installation configuration
include(CMakePackageConfigHelpers)
# Public headers
install(FILES ${PUBLIC_HEADER_FILES}
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ouroboros)
# Man pages
if(GZIP_EXECUTABLE)
foreach(_man ${MAN_FILES})
string(REGEX REPLACE "^.+[.]([1-9]).gz" "\\1" _mansect ${_man})
install(FILES ${_man} DESTINATION "${CMAKE_INSTALL_MANDIR}/man${_mansect}")
endforeach()
endif()
# pkg-config files
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ouroboros-dev.pc"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ouroboros-irm.pc"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
set(OUROBOROS_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/Ouroboros")
install(EXPORT OuroborosTargets
FILE OuroborosTargets.cmake
NAMESPACE Ouroboros::
DESTINATION ${OUROBOROS_CMAKE_DIR})
configure_package_config_file(
"${CMAKE_SOURCE_DIR}/cmake/OuroborosConfig.cmake.in"
"${CMAKE_BINARY_DIR}/OuroborosConfig.cmake"
INSTALL_DESTINATION ${OUROBOROS_CMAKE_DIR})
write_basic_package_version_file(
"${CMAKE_BINARY_DIR}/OuroborosConfigVersion.cmake"
VERSION ${PACKAGE_VERSION}
COMPATIBILITY SameMajorVersion)
install(FILES
"${CMAKE_BINARY_DIR}/OuroborosConfig.cmake"
"${CMAKE_BINARY_DIR}/OuroborosConfigVersion.cmake"
DESTINATION ${OUROBOROS_CMAKE_DIR})
# Systemd service file installation
set(SYSTEMD_INSTALL_FILES "DETECT" CACHE STRING
"Install systemd .service files (NO (never), DETECT (use pkg-config - default),\
FORCE (always - see SYSTEMD_UNITDIR_OVERRIDE))")
set(SYSTEMD_UNITDIR_OVERRIDE "" CACHE PATH
"Path to install systemd files. When SYSTEMD_INSTALL_FILES == DETECT, this\
can be empty to automatically determine the path. Cannot be empty when FORCE.")
if(SYSTEMD_INSTALL_FILES STREQUAL "DETECT" OR SYSTEMD_INSTALL_FILES STREQUAL "FORCE")
if(SYSTEMD_INSTALL_FILES STREQUAL "DETECT")
if(PkgConfig_FOUND)
pkg_check_modules(SYSTEMD "systemd")
endif()
if(SYSTEMD_FOUND)
if(SYSTEMD_UNITDIR_OVERRIDE STREQUAL "")
execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE}
--variable=systemdsystemunitdir systemd
OUTPUT_VARIABLE SYSTEMD_UNITDIR_INTERNAL)
string(REGEX REPLACE "[ \t\n]+" "" SYSTEMD_UNITDIR_INTERNAL
"${SYSTEMD_UNITDIR_INTERNAL}"
)
else()
set(SYSTEMD_UNITDIR_INTERNAL "${SYSTEMD_UNITDIR_OVERRIDE}")
endif()
else()
set(SYSTEMD_UNITDIR_INTERNAL "")
endif()
elseif(SYSTEMD_INSTALL_FILES STREQUAL "FORCE")
if(SYSTEMD_UNITDIR_OVERRIDE STREQUAL "")
message(FATAL_ERROR "Systemd installation required by user, but no path\
provided with SYSTEMD_UNITDIR_OVERRIDE.")
else()
set(SYSTEMD_UNITDIR_INTERNAL "${SYSTEMD_UNITDIR_OVERRIDE}")
endif()
endif()
if(NOT SYSTEMD_UNITDIR_INTERNAL STREQUAL "")
message(STATUS "Systemd service installation enabled to: ${SYSTEMD_UNITDIR_INTERNAL}")
if(LIBTOML_LIBRARIES AND NOT DISABLE_CONFIGFILE)
set (CONFIGURE_STRING "--config ${OUROBOROS_CONFIG_DIR}/${OUROBOROS_CONFIG_FILE}")
else()
set (CONFIGURE_STRING "")
endif()
configure_file("${CMAKE_SOURCE_DIR}/ouroboros.service.in"
"${CMAKE_BINARY_DIR}/ouroboros.service" @ONLY)
install(FILES "${CMAKE_BINARY_DIR}/ouroboros.service"
DESTINATION "${SYSTEMD_UNITDIR_INTERNAL}")
endif()
else()
message(STATUS "Systemd service installation disabled by user")
endif()
configure_file("${CMAKE_SOURCE_DIR}/cmake/utils/CMakeUninstall.cmake.in"
"${CMAKE_BINARY_DIR}/cmake/cmakeuninstall.cmake" @ONLY)
add_custom_target(uninstall
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/cmake/cmakeuninstall.cmake)
|