|
|
|
@ -128,3 +128,81 @@ elseif( WITH_SHADOW )
|
|
|
|
|
set( USESHADOW 1 CACHE INTERNAL "" FORCE ) |
|
|
|
|
|
|
|
|
|
endif( ) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# If a tdm.service file is wanted, find systemd, then work out which |
|
|
|
|
# distribution is running, select an appropriate template and create the file. |
|
|
|
|
# When it is not possible to identify the distribution or there is no specific |
|
|
|
|
# template is available, use the default of 'tde.service.cmake'. The template |
|
|
|
|
# can also be set from the command line. |
|
|
|
|
|
|
|
|
|
if( BUILD_TDM_SYSTEMD_UNIT_FILE ) |
|
|
|
|
|
|
|
|
|
if( NOT SYSTEMDSYSTEMUNITDIR ) |
|
|
|
|
pkg_search_module( SYSTEMD systemd ) |
|
|
|
|
if( SYSTEMD_FOUND ) |
|
|
|
|
execute_process( |
|
|
|
|
COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=systemdsystemunitdir systemd |
|
|
|
|
OUTPUT_VARIABLE SYSTEMDSYSTEMUNITDIR |
|
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE |
|
|
|
|
) |
|
|
|
|
endif( ) |
|
|
|
|
endif( ) |
|
|
|
|
|
|
|
|
|
if( "${SYSTEMDSYSTEMUNITDIR}" STREQUAL "" ) |
|
|
|
|
set( SYSTEMDSYSTEMUNITDIR "/usr/lib/systemd/system" ) |
|
|
|
|
endif( ) |
|
|
|
|
|
|
|
|
|
if( NOT TDM_SERVICE_FILE_TEMPLATE ) |
|
|
|
|
|
|
|
|
|
find_program( LSB_RELEASE lsb_release HINTS ENV PATH ) |
|
|
|
|
unset( _DIST_ID_LIST ) |
|
|
|
|
|
|
|
|
|
if( EXISTS "/etc/os-release" ) |
|
|
|
|
|
|
|
|
|
file( READ "/etc/os-release" _OS_RELEASE ) |
|
|
|
|
|
|
|
|
|
if( "\n${_OS_RELEASE}" MATCHES "\nID=\"*([^\"\n]*)" ) |
|
|
|
|
set( _DISTRIBUTION "${CMAKE_MATCH_1}" ) |
|
|
|
|
endif( ) |
|
|
|
|
if( "\n${_OS_RELEASE}" MATCHES "\nVERSION_ID=\"*([^\\.\"\n]*)" ) |
|
|
|
|
set( _DIST_VERSION "${CMAKE_MATCH_1}" ) |
|
|
|
|
endif( ) |
|
|
|
|
if( "\n${_OS_RELEASE}" MATCHES "\nID_LIKE=\"*([^\\.\"\n]*)" ) |
|
|
|
|
string( REGEX REPLACE " " ";" _DIST_ID_LIST "${CMAKE_MATCH_1}" ) |
|
|
|
|
endif( ) |
|
|
|
|
|
|
|
|
|
if( _DISTRIBUTION ) |
|
|
|
|
message( STATUS "Running ${_DISTRIBUTION} distribution, version ${_DIST_VERSION}" ) |
|
|
|
|
string( TOLOWER "${_DISTRIBUTION}" _DISTRIBUTION ) |
|
|
|
|
list( INSERT _DIST_ID_LIST 0 "${_DISTRIBUTION}" ) |
|
|
|
|
endif( ) |
|
|
|
|
|
|
|
|
|
foreach( _DIST_ID IN LISTS _DIST_ID_LIST ) |
|
|
|
|
if( NOT TDM_SERVICE_FILE_TEMPLATE ) |
|
|
|
|
if( _DIST_VERSION AND |
|
|
|
|
EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/tdm.service.${_DIST_ID}-${_DIST_VERSION}.cmake" ) |
|
|
|
|
set( TDM_SERVICE_FILE_TEMPLATE "tdm.service.${_DIST_ID}-${_DIST_VERSION}.cmake" ) |
|
|
|
|
elseif( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/tdm.service.${_DIST_ID}.cmake" ) |
|
|
|
|
set( TDM_SERVICE_FILE_TEMPLATE "tdm.service.${_DIST_ID}.cmake" ) |
|
|
|
|
endif( ) |
|
|
|
|
endif( ) |
|
|
|
|
endforeach( ) |
|
|
|
|
|
|
|
|
|
else( ) |
|
|
|
|
|
|
|
|
|
message(STATUS "**WARNING** /etc/os-release was not found. The default template for tdm.service will be used.") |
|
|
|
|
|
|
|
|
|
endif( ) |
|
|
|
|
|
|
|
|
|
if( NOT TDM_SERVICE_FILE_TEMPLATE ) |
|
|
|
|
set( TDM_SERVICE_FILE_TEMPLATE "tdm.service.cmake" ) |
|
|
|
|
endif( ) |
|
|
|
|
|
|
|
|
|
message( STATUS "tdm.service template file is ${TDM_SERVICE_FILE_TEMPLATE}" ) |
|
|
|
|
|
|
|
|
|
configure_file( "${TDM_SERVICE_FILE_TEMPLATE}" tdm.service @ONLY ) |
|
|
|
|
|
|
|
|
|
endif( ) |
|
|
|
|
|
|
|
|
|
endif( ) |
|
|
|
|