forked from siemens/libsecutils
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
116 lines (92 loc) · 3.27 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
cmake_minimum_required(VERSION 3.7)
set( CMAKE_VERBOSE_MAKEFILE on )
project(secutils)
if (NOT YOCTO_BUILD)
find_package(Git)
if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
RESULT_VARIABLE GIT_SUBMOD_RESULT
)
if(NOT GIT_SUBMOD_RESULT EQUAL "0")
message(FATAL_ERROR "git submodule update --init failed with ${GIT_SUBMOD_RESULT}, please checkout submodules")
endif()
else()
message(FATAL_ERROR "GIT not found please install git...")
endif()
endif()
if(NOT DEFINED SECUTILS_VERSION )
set(SECUTILS_VERSION 0.9)
endif()
set(INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/include
${PROJECT_SOURCE_DIR}/include/secutils
${PROJECT_SOURCE_DIR}/libs/interfaces/include
)
include_directories(
${INCLUDE_DIRS}
)
set(SRC_DIR ${PROJECT_SOURCE_DIR}/src)
set(SRC_EXAMPLE_DIR ${PROJECT_SOURCE_DIR}/test)
find_package(OpenSSL REQUIRED)
if(DEFINED ENV{NDEBUG})
add_definitions(-DNDEBUG=1 -O2)
else()
add_definitions(-g -O0)
add_definitions(-fsanitize=address -fsanitize=undefined -fno-sanitize-recover=all)
link_libraries("-fsanitize=address -fsanitize=undefined -fno-sanitize-recover=all")
endif()
add_definitions(-Wall -Woverflow -Wextra -Wswitch -Wmissing-prototypes -Wstrict-prototypes -Wformat -Wtype-limits -Wundef -Wconversion -Wno-shadow -Wno-conversion -Wno-sign-conversion -Wno-unused-parameter -Wno-sign-compare) # TODO enable -Wconversion -Wsign-conversion -Wsign-compare -Wunused-parameter
add_definitions(-Wformat -Wformat-security -Wno-declaration-after-statement -Wno-vla) # -Wpointer-arith -pedantic -DPEDANTIC # -Werror
if(DEFINED ENV{SECUTILS_USE_UTA})
add_definitions(-DSECUTILS_USE_UTA=1)
endif()
if(DEFINED ENV{SECUTILS_CONFIG_USE_ICV})
add_definitions(-DSECUTILS_CONFIG_USE_ICV=1)
endif()
if(DEFINED ENV{SECUTILS_NO_TLS})
add_definitions(-DSECUTILS_NO_TLS=1)
endif()
set(SECUTIL_LIB_SRC ${SRC_DIR}/certstatus/certstatus.c
${SRC_DIR}/certstatus/cdp_util.c
${SRC_DIR}/certstatus/certstatus.c
${SRC_DIR}/certstatus/crl_mgmt.c
${SRC_DIR}/certstatus/crls.c
${SRC_DIR}/certstatus/ocsp.c
${SRC_DIR}/config/config.c
${SRC_DIR}/config/config_update.c
${SRC_DIR}/config/opt.c
${SRC_DIR}/connections/conn.c
${SRC_DIR}/connections/http.c
${SRC_DIR}/connections/tls.c
${SRC_DIR}/credentials/credentials.c
${SRC_DIR}/credentials/key.c
${SRC_DIR}/credentials/store.c
${SRC_DIR}/credentials/trusted.c
${SRC_DIR}/credentials/verify.c
${SRC_DIR}/crypto/crypto.c
${SRC_DIR}/storage/files.c
${SRC_DIR}/storage/files_dv.c
${SRC_DIR}/storage/files_icv.c
${SRC_DIR}/storage/uta_api.c
${SRC_DIR}/util/extensions.c
${SRC_DIR}/util/log.c
${SRC_DIR}/util/util.c
)
#${SRC_DIR}/storage/uta_api.c
add_library(secutils SHARED
${SECUTIL_LIB_SRC}
)
target_link_libraries(secutils ${OPENSSL_LIBRARIES} )
set_property(TARGET secutils PROPERTY C_STANDARD 90)
set_target_properties(secutils PROPERTIES
VERSION ${SECUTILS_VERSION}
)
install(TARGETS secutils
LIBRARY
DESTINATION lib
COMPONENT Library
)
install(DIRECTORY include/
DESTINATION include
FILES_MATCHING PATTERN "*.h"
)