@@ -19,19 +19,72 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/bin)
19
19
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR} /bin)
20
20
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR} /bin)
21
21
22
+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL ${PROJECT_BINARY_DIR} /bin)
23
+ set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL ${PROJECT_BINARY_DIR} /bin)
24
+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${PROJECT_BINARY_DIR} /bin)
25
+
26
+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO ${PROJECT_BINARY_DIR} /bin)
27
+ set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO ${PROJECT_BINARY_DIR} /bin)
28
+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${PROJECT_BINARY_DIR} /bin)
29
+
22
30
# Build with c++14 support.
23
31
set (CMAKE_CXX_STANDARD 14)
24
32
33
+ # Disable default libraries in visual studio
34
+ if (MSVC )
35
+ # Default to statically-linked runtime.
36
+ if ("${MSVC_RUNTIME} " STREQUAL "" )
37
+ set (MSVC_RUNTIME "static" )
38
+ endif ()
39
+
40
+ # Set compiler options.
41
+ set (variables
42
+ CMAKE_C_FLAGS_DEBUG
43
+ CMAKE_C_FLAGS_MINSIZEREL
44
+ CMAKE_C_FLAGS_RELEASE
45
+ CMAKE_C_FLAGS_RELWITHDEBINFO
46
+ CMAKE_CXX_FLAGS_DEBUG
47
+ CMAKE_CXX_FLAGS_MINSIZEREL
48
+ CMAKE_CXX_FLAGS_RELEASE
49
+ CMAKE_CXX_FLAGS_RELWITHDEBINFO
50
+ )
51
+ if (${MSVC_RUNTIME} STREQUAL "static" )
52
+ message (STATUS
53
+ "MSVC -> forcing use of statically-linked runtime."
54
+ )
55
+ foreach (variable ${variables} )
56
+ if (${variable} MATCHES "/MD" )
57
+ string (REGEX REPLACE "/MD" "/MT" ${variable} "${${variable} }" )
58
+ endif ()
59
+ endforeach ()
60
+ else ()
61
+ message (STATUS
62
+ "MSVC -> forcing use of dynamically-linked runtime."
63
+ )
64
+ foreach (variable ${variables} )
65
+ if (${variable} MATCHES "/MT" )
66
+ string (REGEX REPLACE "/MT" "/MD" ${variable} "${${variable} }" )
67
+ endif ()
68
+ endforeach ()
69
+ endif ()
70
+ endif ()
71
+
25
72
# Allow creating filters for projects in visual studio.
26
73
set_property (GLOBAL PROPERTY USE_FOLDERS ON )
27
74
75
+ # -- Settings for building civetweb
28
76
# Don't build civetweb tests.
29
- set (BUILD_TESTING OFF CACHE BOOL "" FORCE)
77
+ set (CIVETWEB_BUILD_TESTING OFF CACHE BOOL "" FORCE)
30
78
set (CIVETWEB_ENABLE_WEBSOCKETS ON CACHE BOOL "" FORCE)
79
+ set (CIVETWEB_ENABLE_SERVER_EXECUTABLE OFF CACHE BOOL "" FORCE)
80
+ set (CIVETWEB_ENABLE_IPV6 ON CACHE BOOL "" FORCE)
31
81
32
82
# Don't build civetweb with sanitizers
33
83
set (CIVETWEB_ENABLE_ASAN OFF CACHE BOOL "" FORCE)
34
84
85
+ # Settings for ipv6 parse library
86
+ set (IPV6_PARSE_LIBRARY_ONLY ON CACHE BOOL "" FORCE)
87
+
35
88
# Don't build protobuf tests.
36
89
set (protobuf_BUILD_TESTS OFF CACHE BOOL "" FORCE)
37
90
set (protobuf_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
@@ -42,27 +95,29 @@ set(SDL_SHARED OFF CACHE BOOL "" FORCE)
42
95
# Run civetwebs cmake.
43
96
add_subdirectory ("contrib/civetweb" )
44
97
45
- # TODO: This generates a cmake warning but we don't
46
- # want to include it in the project.
47
- #set_target_properties(c-executable PROPERTIES FOLDER contrib)
48
- set_target_properties (c-executable PROPERTIES EXCLUDE_FROM_ALL 1 EXCLUDE_FROM_DEFAULT_BUILD 1)
49
- set_target_properties (c-library c-executable PROPERTIES FOLDER contrib)
98
+ # Enable IPv6 in civetweb
99
+ target_compile_options (civetweb-c-library PUBLIC -DUSE_IPV6=1)
50
100
51
101
# Run protobufs cmake.
52
102
add_subdirectory ("contrib/protobuf/cmake" )
53
103
104
+ # Run ipv6-parse cmake.
105
+ add_subdirectory ("contrib/ipv6-parse" )
106
+
107
+ set_target_properties (civetweb-c-library PROPERTIES FOLDER contrib)
54
108
set_target_properties (libprotobuf PROPERTIES FOLDER contrib)
55
109
set_target_properties (libprotobuf-lite PROPERTIES FOLDER contrib)
56
110
set_target_properties (libprotoc PROPERTIES FOLDER contrib)
57
111
set_target_properties (protoc PROPERTIES FOLDER contrib)
112
+ set_target_properties (ipv6-parse PROPERTIES FOLDER contrib)
58
113
59
- if (WIN32 )
114
+ if (MSVC )
60
115
set_target_properties (libprotobuf libprotobuf-lite libprotoc protoc PROPERTIES COMPILE_FLAGS "/W0" )
61
116
set_source_files_properties (${libprotobuf_files} PROPERTIES COMPILE_FLAGS "/W0" )
62
117
set_source_files_properties (${protobuf_SHARED_OR_STATIC} PROPERTIES COMPILE_FLAGS "/W0" )
63
118
set_source_files_properties (${libprotobuf_lite_files} PROPERTIES COMPILE_FLAGS "/W0" )
64
119
add_definitions (-D_SCL_SECURE_NO_WARNINGS)
65
- endif (WIN32 )
120
+ endif (MSVC )
66
121
67
122
# Exclude SDL and related projects to work around linker issue.
68
123
if (NOT APPLE )
0 commit comments