blob: 9906377bb69963bd61f6778d4b94e16cbc3095d7 [file] [log] [blame]
Austin Schuh9d823002019-04-14 12:53:17 -07001cmake_minimum_required(VERSION 3.3)
2
3set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
4
5project(Seasocks VERSION 1.4.1)
6
7
8option(UNITTESTS "Build unittests." ON)
9option(COVERAGE "Build with code coverage enabled" OFF)
10option(SEASOCKS_EXAMPLE_APP "Build the example applications." ON)
11option(DEFLATE_SUPPORT "Include support for deflate (requires zlib)." ON)
12
13if (DEFLATE_SUPPORT)
14 set(DEFLATE_SUPPORT_BOOL "true")
15else ()
16 set(DEFLATE_SUPPORT_BOOL "false")
17endif ()
18message(STATUS "${PROJECT_NAME} ${PROJECT_VERSION}")
19message(STATUS "Unittests: ${UNITTESTS}")
20message(STATUS "Coverage: ${COVERAGE}")
21
22
23set(MEMORYCHECK_SUPPRESSIONS_FILE "${PROJECT_SOURCE_DIR}/src/test/suppressions.txt" CACHE INTERNAL "")
24include(CTest)
25include(Compiler)
26include(GNUInstallDirs)
27include(ClangFormat)
28
29
30configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Config.h.in internal/Config.h)
31include_directories(${CMAKE_CURRENT_BINARY_DIR})
32add_compile_options(-Wall -Werror -Wextra -pedantic)
33if (COVERAGE)
34 add_compile_options(--coverage -O0)
35 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
36endif ()
37
38find_package(Threads)
39
40
41find_program(PYTHON_BIN python DOC "Python executable")
42
43if (NOT PYTHON_BIN)
44 message(SEND_ERROR "Python not found")
45else()
46 message(STATUS "Using Python: '${PYTHON_BIN}'")
47endif ()
48
49if (DEFLATE_SUPPORT)
50 find_package(ZLIB REQUIRED)
51endif ()
52
53add_subdirectory("src")
54
55include(CMakePackageConfigHelpers)
56write_basic_package_version_file(
57 ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
58 VERSION ${PROJECT_VERSION}
59 COMPATIBILITY SameMajorVersion
60)
61
62install(FILES
63 ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
64 DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/
65)
66