2019-03-14 17:40:04 +01:00
|
|
|
cmake_minimum_required(VERSION 3.0)
|
2019-03-14 19:10:41 +01:00
|
|
|
project(bastion LANGUAGES C VERSION 0.1.1)
|
2019-02-14 20:48:20 +01:00
|
|
|
|
|
|
|
set(CMAKE_VERBOSE_MAKEFILE FALSE)
|
2019-03-14 19:10:41 +01:00
|
|
|
if(EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
|
|
|
set(default_build_type Debug)
|
|
|
|
else()
|
|
|
|
set(default_build_type Release)
|
|
|
|
endif()
|
|
|
|
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
|
|
|
message(STATUS "Setting build type to '${default_build_type}' as none was specified.")
|
|
|
|
set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE STRING "Choose the type of build." FORCE)
|
|
|
|
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
|
|
|
|
endif()
|
2019-02-14 20:48:20 +01:00
|
|
|
|
|
|
|
set(CMAKE_C_FLAGS "-Wall -Werror -Wextra -pedantic")
|
|
|
|
set(CMAKE_C_FLAGS_DEBUG "-g -ggdb -pg -fsanitize=address")
|
2019-03-14 16:44:11 +01:00
|
|
|
set(CMAKE_C_FLAGS_RELEASE "-O2")
|
|
|
|
set(CMAKE_C_FLAGS_MinSizeRel "-Os")
|
|
|
|
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -ggdb -pg -fsanitize=address")
|
2019-02-14 20:48:20 +01:00
|
|
|
|
2019-03-11 15:02:37 +01:00
|
|
|
option(LIBSSH_VERBOSE_OUTPUT "whether or not verbose output for libssh mode is activated" OFF)
|
2019-02-14 20:51:41 +01:00
|
|
|
option(SESSION_RECORDING "whether or not recording feature based on lib termrec is activated" ON)
|
2019-02-14 20:48:20 +01:00
|
|
|
|
2019-03-14 17:40:04 +01:00
|
|
|
configure_file("common/config.h.in" "common/config.h")
|
|
|
|
include_directories("${CMAKE_CURRENT_BINARY_DIR}")
|
|
|
|
|
2019-02-14 20:51:41 +01:00
|
|
|
add_subdirectory(bastion)
|
|
|
|
add_subdirectory(common)
|
2019-03-11 19:02:10 +01:00
|
|
|
add_subdirectory(external)
|
2019-03-14 19:10:41 +01:00
|
|
|
|
|
|
|
include (InstallRequiredSystemLibraries)
|
|
|
|
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
|
|
|
|
set(CPACK_PACKAGE_CONTACT "Julien Dessaux <julien.dessaux@adyxax.org>")
|
|
|
|
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
|
|
|
|
set(CPACK_DEBIAN_PACKAGE_SECTION "net")
|
|
|
|
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, libssh-4")
|
|
|
|
set(CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}")
|
|
|
|
set(CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}")
|
|
|
|
set(CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}")
|
|
|
|
find_program(DPKG_CMD dpkg)
|
|
|
|
if(EXISTS ${DPKG_CMD})
|
|
|
|
execute_process(COMMAND "${DPKG_CMD}" --print-architecture
|
|
|
|
OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE
|
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
|
endif()
|
|
|
|
include (CPack)
|