84 lines
3.0 KiB
CMake
Executable File
84 lines
3.0 KiB
CMake
Executable File
cmake_minimum_required(VERSION 3.5)
|
|
|
|
project(rublon-ssh LANGUAGES CXX)
|
|
|
|
include(CTest)
|
|
include(GNUInstallDirs)
|
|
|
|
set(PROJECT_VERSION_MAJOR 2)
|
|
set(PROJECT_VERSION_MINOR 3)
|
|
set(PROJECT_VERSION_PATCH 3)
|
|
set(RUBLON_VERSION_STRING "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED YES)
|
|
set(CMAKE_CXX_EXTENSIONS NO)
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE YES)
|
|
|
|
include(CheckIPOSupported)
|
|
|
|
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
|
|
add_compile_options(-Wall -Wextra -Wno-format-security -fvisibility=hidden -fno-exceptions)
|
|
|
|
# add_compile_options(-g -fsanitize=address,undefined,float-divide-by-zero,float-cast-overflow,null -fsanitize-address-use-after-scope -fno-sanitize-recover=all -fno-sanitize=alignment -fno-omit-frame-pointer)
|
|
# add_link_options(-g -fsanitize=address,undefined,float-divide-by-zero,float-cast-overflow,null -fsanitize-address-use-after-scope -fno-sanitize-recover=all -fno-sanitize=alignment -fno-omit-frame-pointer)
|
|
|
|
add_compile_definitions(RUBLON_VERSION_STRING="${RUBLON_VERSION_STRING}")
|
|
|
|
option(ENABLE_TESTS "Enable tests" OFF)
|
|
add_custom_target(CONFIG_IDE SOURCES ${CMAKE_CURRENT_LIST_DIR}/rsc/rublon.config.defaults)
|
|
add_custom_target(INSTSCRIPTS_IDE SUORCES ${CMAKE_CURRENT_LIST_DIR}/service/helpers/postinst)
|
|
|
|
execute_process (
|
|
COMMAND bash -c "awk -F= '/^ID=/{print $2}' /etc/os-release |tr -d '\n' | tr -d '\"'"
|
|
RESULT_VARIABLE outOS
|
|
)
|
|
|
|
if ( ${outOS} MATCHES "ubuntu" OR ${outOS} MATCHES "debian" OR ${outOS} MATCHES "FREEBSD" )
|
|
install(
|
|
FILES
|
|
${CMAKE_CURRENT_LIST_DIR}/rsc/rublon.config.defaults
|
|
${CMAKE_CURRENT_LIST_DIR}/service/01-rublon-ssh_pubkey.conf.default
|
|
${CMAKE_CURRENT_LIST_DIR}/service/01-rublon-ssh.conf.default
|
|
${CMAKE_CURRENT_LIST_DIR}/service/inst_pubkey.sh
|
|
DESTINATION
|
|
share/rublon
|
|
COMPONENT
|
|
PAM
|
|
PERMISSIONS
|
|
OWNER_READ
|
|
OWNER_WRITE
|
|
GROUP_READ
|
|
)
|
|
else ()
|
|
install(
|
|
FILES
|
|
${CMAKE_CURRENT_LIST_DIR}/rsc/rublon.config.defaults
|
|
${CMAKE_CURRENT_LIST_DIR}/service/01-rublon-ssh_pubkey.conf.default
|
|
${CMAKE_CURRENT_LIST_DIR}/service/01-rublon-ssh.conf.default
|
|
${CMAKE_CURRENT_LIST_DIR}/service/login_rublon.mod
|
|
${CMAKE_CURRENT_LIST_DIR}/service/login_rublon.pp
|
|
${CMAKE_CURRENT_LIST_DIR}/service/login_rublon.te
|
|
${CMAKE_CURRENT_LIST_DIR}/service/pam_service.txt
|
|
${CMAKE_CURRENT_LIST_DIR}/service/rublon_veritas
|
|
${CMAKE_CURRENT_LIST_DIR}/service/inst_pubkey_rhel_9.sh
|
|
${CMAKE_CURRENT_LIST_DIR}/service/inst_pubkey_rhel_8.sh
|
|
${CMAKE_CURRENT_LIST_DIR}/service/inst_pubkey.sh
|
|
DESTINATION
|
|
share/rublon
|
|
COMPONENT
|
|
PAM
|
|
PERMISSIONS
|
|
OWNER_READ
|
|
OWNER_WRITE
|
|
GROUP_READ
|
|
)
|
|
endif()
|
|
|
|
if (${ENABLE_TESTS})
|
|
enable_testing()
|
|
endif()
|
|
|
|
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/PAM/ssh)
|
|
include(${CMAKE_CURRENT_LIST_DIR}/pack.cmake)
|