/
civetweb-3rdparty-config.cmake
67 lines (58 loc) · 1.67 KB
/
civetweb-3rdparty-config.cmake
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
get_filename_component(_IMPORT_PREFIX "${PROJECT_SOURCE_DIR}/3rdparty/civetweb/" ABSOLUTE)
macro(set_and_check _var _file)
set(${_var} "${_file}")
if(NOT EXISTS "${_file}")
message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !")
endif()
endmacro()
set_and_check(CIVETWEB_INCLUDE_DIR ${_IMPORT_PREFIX}/include)
set(CIVETWEB_INCLUDE_DIRS "${CIVETWEB_INCLUDE_DIR}")
add_library(civetweb OBJECT
${_IMPORT_PREFIX}/include/CivetServer.h
${_IMPORT_PREFIX}/include/civetweb.h
${_IMPORT_PREFIX}/src/CivetServer.cpp
${_IMPORT_PREFIX}/src/civetweb.c
${_IMPORT_PREFIX}/src/handle_form.inl
${_IMPORT_PREFIX}/src/md5.inl
)
target_compile_definitions(civetweb
PRIVATE
CIVETWEB_API=
USE_IPV6
NDEBUG
NO_CGI
NO_CACHING
NO_FILES
)
target_compile_options(civetweb
PRIVATE
$<$<CXX_COMPILER_ID:AppleClang>:-w>
$<$<CXX_COMPILER_ID:GNU>:-w>
)
target_include_directories(civetweb
PRIVATE
${CIVETWEB_INCLUDE_DIRS}
)
if(THIRDPARTY_CIVETWEB_WITH_SSL)
include(CMakeFindDependencyMacro)
find_dependency(OpenSSL)
if(OPENSSL_VERSION VERSION_GREATER_EQUAL 1.1)
target_compile_definitions(civetweb PRIVATE OPENSSL_API_1_1)
endif()
target_compile_definitions(civetweb PRIVATE NO_SSL_DL)
target_link_libraries(civetweb PUBLIC OpenSSL::SSL)
else()
target_compile_definitions(civetweb PRIVATE NO_SSL)
endif()
if(BUILD_SHARED_LIBS)
set_target_properties(civetweb PROPERTIES
POSITION_INDEPENDENT_CODE ON
C_VISIBILITY_PRESET hidden
CXX_VISIBILITY_PRESET hidden
VISIBILITY_INLINES_HIDDEN ON
)
endif()
set_target_properties(civetweb PROPERTIES
C_INCLUDE_WHAT_YOU_USE ""
CXX_INCLUDE_WHAT_YOU_USE ""
)