~ubuntu-branches/debian/sid/botan/sid

« back to all changes in this revision

Viewing changes to src/build-data/cmake.in

  • Committer: Package Import Robot
  • Author(s): Laszlo Boszormenyi (GCS)
  • Date: 2018-03-01 22:23:25 UTC
  • mfrom: (1.2.2)
  • Revision ID: package-import@ubuntu.com-20180301222325-7p7vc45gu3hta34d
Tags: 2.4.0-2
* Don't remove .doctrees from the manual if it doesn't exist.
* Don't specify parallel to debhelper.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
cmake_minimum_required(VERSION 2.8.0)
 
2
project(botan)
 
3
 
 
4
if(POLICY CMP0042)
 
5
cmake_policy(SET CMP0042 NEW)
 
6
endif()
 
7
 
 
8
set(BOTAN_SOURCES
 
9
%{for lib_srcs}
 
10
    "${CMAKE_CURRENT_LIST_DIR}/%{i}"
 
11
%{endfor}
 
12
)
 
13
 
 
14
set(BOTAN_CLI
 
15
%{for cli_srcs}
 
16
    "${CMAKE_CURRENT_LIST_DIR}/%{i}"
 
17
%{endfor}
 
18
)
 
19
 
 
20
set(BOTAN_TESTS
 
21
%{for test_srcs}
 
22
    "${CMAKE_CURRENT_LIST_DIR}/%{i}"
 
23
%{endfor}
 
24
)
 
25
 
 
26
%{for isa_build_info}
 
27
set_source_files_properties("${CMAKE_CURRENT_LIST_DIR}/%{src}" PROPERTIES COMPILE_FLAGS "%{isa_flags}")
 
28
%{endfor}
 
29
 
 
30
option(ENABLED_OPTIONAL_WARINIGS "If enabled more strict warning policy will be used" OFF)
 
31
option(ENABLED_LTO "If enabled link time optimization will be used" OFF)
 
32
 
 
33
set(COMPILER_FEATURES_RELEASE %{cc_lang_flags} %{cc_compile_opt_flags} %{cxx_abi_opt_flags})
 
34
set(COMPILER_FEATURES_DEBUG %{cc_lang_flags} %{cc_compile_debug_flags} %{cxx_abi_debug_flags})
 
35
set(COMPILER_FEATURES $<$<NOT:$<CONFIG:DEBUG>>:${COMPILER_FEATURES_RELEASE}>  $<$<CONFIG:DEBUG>:${COMPILER_FEATURES_DEBUG}>)
 
36
set(SHARED_FEATURES %{cmake_shared_flags})
 
37
set(STATIC_FEATURES -DBOTAN_DLL=)
 
38
set(COMPILER_WARNINGS %{cc_warning_flags})
 
39
set(COMPILER_INCLUDE_DIRS build/include build/include/external)
 
40
if(ENABLED_LTO)
 
41
    set(COMPILER_FEATURES ${COMPILER_FEATURES} -lto)
 
42
endif()
 
43
if(ENABLED_OPTIONAL_WARINIGS)
 
44
    set(COMPILER_OPTIONAL_WARNINGS -Wsign-promo -Wctor-dtor-privacy -Wdeprecated -Winit-self -Wnon-virtual-dtor -Wunused-macros -Wold-style-cast -Wuninitialized)
 
45
endif()
 
46
 
 
47
add_library(${PROJECT_NAME} STATIC ${BOTAN_SOURCES})
 
48
target_link_libraries(${PROJECT_NAME} PUBLIC  %{cmake_link_to})
 
49
target_compile_options(${PROJECT_NAME} PUBLIC ${COMPILER_WARNINGS} ${COMPILER_FEATURES} ${COMPILER_OPTIONAL_WARNINGS} PRIVATE ${STATIC_FEATURES})
 
50
target_include_directories(${PROJECT_NAME} PUBLIC ${COMPILER_INCLUDE_DIRS})
 
51
 
 
52
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME}-static)
 
53
 
 
54
add_library(${PROJECT_NAME}_shared SHARED ${BOTAN_SOURCES})
 
55
target_link_libraries(${PROJECT_NAME}_shared PUBLIC  %{cmake_link_to})
 
56
target_compile_options(${PROJECT_NAME}_shared PUBLIC ${COMPILER_WARNINGS} ${COMPILER_FEATURES} ${COMPILER_OPTIONAL_WARNINGS} PRIVATE ${SHARED_FEATURES})
 
57
target_include_directories(${PROJECT_NAME}_shared PUBLIC ${COMPILER_INCLUDE_DIRS})
 
58
set_target_properties(${PROJECT_NAME}_shared PROPERTIES OUTPUT_NAME ${PROJECT_NAME})
 
59
 
 
60
add_executable(${PROJECT_NAME}_cli ${BOTAN_CLI})
 
61
target_link_libraries(${PROJECT_NAME}_cli PRIVATE ${PROJECT_NAME}_shared  )
 
62
set_target_properties(${PROJECT_NAME}_cli PROPERTIES OUTPUT_NAME ${PROJECT_NAME}-cli)
 
63
 
 
64
add_executable(${PROJECT_NAME}_tests ${BOTAN_TESTS})
 
65
target_link_libraries(${PROJECT_NAME}_tests PRIVATE ${PROJECT_NAME}_shared  )
 
66
set_target_properties(${PROJECT_NAME}_tests PROPERTIES OUTPUT_NAME botan-test)
 
67
 
 
68
set(GLOBAL_CONFIGURATION_FILES configure.py .gitignore news.rst readme.rst)
 
69
file(GLOB_RECURSE CONFIGURATION_FILES src/configs/* )
 
70
file(GLOB_RECURSE DOCUMENTATION_FILES doc/* )
 
71
file(GLOB_RECURSE HEADER_FILES src/*.h )
 
72
file(GLOB_RECURSE INFO_FILES src/lib/*info.txt )
 
73
add_custom_target(CONFIGURATION_DUMMY SOURCES ${GLOBAL_CONFIGURATION_FILES} ${CONFIGURATION_FILES} ${DOCUMENTATION_FILES} ${INFO_FILES} ${HEADER_FILES})