odyssey/CMakeLists.txt

103 lines
3.1 KiB
CMake
Raw Normal View History

2017-01-12 11:44:48 +00:00
cmake_minimum_required(VERSION 2.8)
project(odyssey C)
2017-01-12 11:44:48 +00:00
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
${CMAKE_CURRENT_SOURCE_DIR}/cmake)
execute_process(COMMAND git describe --always
OUTPUT_VARIABLE OD_VERSION_GIT
RESULT_VARIABLE OD_VERSION_GIT_RESULT
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET)
if(NOT "${OD_VERSION_GIT_RESULT}" STREQUAL "0")
set(OD_VERSION_GIT "unknown")
endif()
2017-01-27 12:55:32 +00:00
if ("${CMAKE_BUILD_TYPE}" STREQUAL "")
set(CMAKE_BUILD_TYPE "Debug")
endif()
2017-01-12 11:44:48 +00:00
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(CMAKE_C_FLAGS "-std=gnu99 -pedantic -Wall -Wextra -Wstrict-aliasing -g -O2")
2017-01-12 11:44:48 +00:00
elseif("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
set(CMAKE_C_FLAGS "-std=gnu99 -pedantic -Wall -Wextra -Wstrict-aliasing -g -O0")
2017-01-12 11:44:48 +00:00
endif()
2017-01-27 12:55:32 +00:00
string(TOLOWER ${CMAKE_BUILD_TYPE} OD_VERSION_BUILD)
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
find_package(Threads REQUIRED)
2017-01-12 11:44:48 +00:00
add_custom_target(build_libs)
2017-02-06 13:53:17 +00:00
set(od_libraries "rt")
2017-01-12 11:44:48 +00:00
2018-06-06 15:11:56 +00:00
# debian build
option(BUILD_DEBIAN "Enable Debian Build" OFF)
if (BUILD_DEBIAN)
include(BuildDebian)
endif()
2017-01-12 11:44:48 +00:00
2019-11-11 09:28:50 +00:00
# postgresql
find_package(PostgreSQL REQUIRED)
2019-11-21 11:54:59 +00:00
set(od_libraries ${od_libraries} ${POSTGRESQL_LIBRARY} ${PQ_LIBRARY})
2019-11-11 09:28:50 +00:00
include_directories(${POSTGRESQL_INCLUDE_DIR})
2018-11-23 14:07:39 +00:00
# use BoringSSL or OpenSSL
option(USE_BORINGSSL "Use BoringSSL" OFF)
if (USE_BORINGSSL)
find_package(BoringSSL REQUIRED)
if (BORINGSSL_FOUND)
set(od_ssl ${BORINGSSL_LIBRARIES})
include_directories(${BORINGSSL_INCLUDE_DIR})
endif()
else()
find_package(OpenSSL REQUIRED)
set(od_ssl ${OPENSSL_LIBRARIES})
include_directories(${OPENSSL_INCLUDE_DIR})
endif()
2018-06-06 15:11:56 +00:00
2019-09-09 09:17:41 +00:00
# use PAM
find_package(PAM)
2019-09-27 13:47:45 +00:00
if (PAM_FOUND)
2019-09-09 09:17:41 +00:00
set(od_pam ${PAM_LIBRARY})
2019-09-27 13:47:45 +00:00
include_directories(${PAM_INCLUDE_DIR})
2019-09-09 09:17:41 +00:00
endif()
2018-06-06 15:11:56 +00:00
# machinarium
include(BuildMachinarium)
build_machinarium()
2018-11-23 14:07:39 +00:00
set(od_libraries ${od_libraries} ${MACHINARIUM_LIBRARIES} ${od_ssl} "dl")
2018-06-06 15:11:56 +00:00
include_directories(${MACHINARIUM_INCLUDE_DIRS})
2018-08-23 13:24:07 +00:00
# kiwi
include(BuildKiwi)
build_kiwi()
set(od_libraries ${od_libraries} ${KIWI_LIBRARIES})
include_directories(${KIWI_INCLUDE_DIRS})
2017-01-12 11:44:48 +00:00
2019-09-09 09:17:41 +00:00
# pam
set(od_libraries ${od_libraries} ${od_pam})
2019-09-27 13:47:45 +00:00
message(STATUS "")
message(STATUS "Odyssey (version: ${OD_VERSION_GIT} ${OD_VERSION_BUILD})")
message(STATUS "")
2019-11-11 09:28:50 +00:00
message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
message(STATUS "BUILD_DEBIAN: ${BUILD_DEBIAN}")
message(STATUS "POSTGRESQL_INCLUDE_DIR: ${POSTGRESQL_INCLUDE_DIR}")
message(STATUS "POSTGRESQL_LIBRARY: ${POSTGRESQL_LIBRARY}")
2019-11-21 11:54:59 +00:00
message(STATUS "PQ_LIBRARY: ${PQ_LIBRARY}")
2019-11-11 09:28:50 +00:00
message(STATUS "USE_BORINGSSL: ${USE_BORINGSSL}")
message(STATUS "BORINGSSL_ROOT_DIR: ${BORINGSSL_ROOT_DIR}")
message(STATUS "BORINGSSL_INCLUDE_DIR: ${BORINGSSL_INCLUDE_DIR}")
message(STATUS "OPENSSL_VERSION: ${OPENSSL_VERSION}")
message(STATUS "OPENSSL_ROOT_DIR: ${OPENSSL_ROOT_DIR}")
message(STATUS "OPENSSL_INCLUDE_DIR: ${OPENSSL_INCLUDE_DIR}")
message(STATUS "PAM_LIBRARY: ${PAM_LIBRARY}")
message(STATUS "PAM_INCLUDE_DIR: ${PAM_INCLUDE_DIR}")
2019-09-27 13:47:45 +00:00
message(STATUS "")
add_subdirectory(sources)
add_subdirectory(test)
2019-04-29 09:01:15 +00:00
add_subdirectory(stress)