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) add_compile_options(-Wall -Wextra -Wno-format-security) # 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)