Skip to content

Commit 7ad94c4

Browse files
committed
event-libs cmake fix
1 parent fefcee0 commit 7ad94c4

7 files changed

Lines changed: 132 additions & 29 deletions

File tree

CMakeLists.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -408,6 +408,16 @@ macro(add_subdir_include_directories arg1)
408408
include_directories(${_CMAKE_INC_LIST})
409409
endmacro()
410410

411+
macro(add_subdir_include_directories_local arg1)
412+
add_subdirectory(${arg1})
413+
list(APPEND CMAKE_INC_LIST_TEMP ${_CMAKE_INC_LIST})
414+
endmacro()
415+
416+
macro(add_subdir_include_directories_local_end)
417+
set(_CMAKE_INC_LIST ${CMAKE_INC_LIST_TEMP} PARENT_SCOPE)
418+
endmacro()
419+
420+
411421
macro(exports_to_parent_scope)
412422
set(SOURCES ${SOURCES} PARENT_SCOPE)
413423
if (LIB_LIST)
@@ -531,6 +541,7 @@ endif()
531541
if (WIN32)
532542
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/win32port/version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/win32port/version.rc @ONLY)
533543
set(RESOURCES ${CMAKE_CURRENT_BINARY_DIR}/win32port/version.rc)
544+
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/win32port/win32helpers")
534545
endif()
535546

536547
include_directories(include)

lib/CMakeLists.txt

Lines changed: 75 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@ macro(add_subdir_include_dirs arg1)
2929
list(APPEND LWS_LIB_BUILD_INC_PATHS ${_CMAKE_INC_LIST})
3030
endmacro()
3131

32+
33+
3234
set(LWS_LIB_INCLUDES "")
35+
set(LWS_LIB_BUILD_INC_PATHS_TEMP "")
3336

3437
#
3538
# Plat specific build items
@@ -135,34 +138,94 @@ configure_file(
135138
"${PROJECT_SOURCE_DIR}/cmake/lws_config_private.h.in"
136139
"${PROJECT_BINARY_DIR}/lws_config_private.h")
137140

138-
add_subdir_include_dirs(core)
139-
add_subdir_include_dirs(misc)
140-
add_subdir_include_dirs(system)
141+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/core)
142+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/misc)
143+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/system)
144+
add_subdirectory(core)
145+
add_subdirectory(misc)
146+
add_subdirectory(system)
141147

142148
if (LWS_WITH_DRIVERS)
143-
add_subdir_include_dirs(drivers)
149+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/drivers)
150+
add_subdirectory(drivers)
144151
endif()
145152

146153
if (LWS_WITH_NETWORK)
147-
add_subdir_include_dirs(core-net)
148-
add_subdir_include_dirs(roles)
154+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/core-net)
155+
add_subdirectory(core-net)
156+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/roles)
157+
add_subdirectory(roles)
149158
endif()
150159

151160
if (LWS_WITH_JOSE)
152-
add_subdir_include_dirs(jose)
161+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/jose ${CMAKE_CURRENT_SOURCE_DIR}/jose/jwe)
162+
add_subdirectory(jose)
153163
endif()
154164

155165
if (LWS_WITH_COSE)
156-
add_subdir_include_dirs(cose)
166+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/cose)
167+
add_subdirectory(cose)
168+
endif()
169+
170+
if (LWS_ROLE_MQTT)
171+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/roles/mqtt)
172+
endif()
173+
174+
if (LWS_ROLE_DBUS AND NOT LWS_PLAT_FREERTOS)
175+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/roles/dbus)
176+
endif()
177+
178+
if (LWS_ROLE_H1 OR LWS_ROLE_H2)
179+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/roles/http)
180+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/roles/http/compression)
181+
endif()
182+
183+
if (LWS_ROLE_H1)
184+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/roles/h1)
185+
endif()
186+
187+
if (LWS_ROLE_H2)
188+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/roles/h2)
189+
endif()
190+
191+
if (LWS_ROLE_WS)
192+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/roles/ws)
157193
endif()
158194

195+
if (LWS_ROLE_RAW)
196+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/roles/raw-skt)
197+
endif()
198+
199+
if (LWS_ROLE_RAW_FILE)
200+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/roles/raw-file)
201+
endif()
202+
203+
if (LWS_WITH_CGI)
204+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/roles/cgi)
205+
endif()
206+
207+
if (LWS_ROLE_RAW_PROXY)
208+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/roles/raw-proxy)
209+
endif()
210+
211+
if (NOT LWS_WITHOUT_SERVER OR LWS_WITH_SECURE_STREAMS_PROCESS_API)
212+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/roles/listen)
213+
endif()
214+
215+
159216
include_directories(secure-streams)
217+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP "${CMAKE_CURRENT_SOURCE_DIR}/../core")
218+
219+
160220
add_subdir_include_dirs(event-libs)
161221

162222
if (LWS_WITH_SECURE_STREAMS)
163-
add_subdir_include_dirs(secure-streams)
223+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/secure-streams)
224+
add_subdirectory(secure-streams)
164225
endif()
165-
add_subdir_include_dirs(secure-streams/serialized/client)
226+
227+
list(APPEND LWS_LIB_BUILD_INC_PATHS_TEMP ${CMAKE_CURRENT_SOURCE_DIR}/secure-streams/serialized/client)
228+
add_subdirectory(secure-streams/serialized/client)
166229

167230
if (LWS_WITH_STATIC)
168231
if (LWS_STATIC_PIC)
@@ -177,7 +240,7 @@ if (LWS_WITH_STATIC)
177240
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>
178241
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/../include>
179242
)
180-
target_include_directories(websockets PRIVATE ${LWS_LIB_BUILD_INC_PATHS})
243+
target_include_directories(websockets PRIVATE ${LWS_LIB_BUILD_INC_PATHS} ${LWS_LIB_BUILD_INC_PATHS_TEMP} ${CMAKE_CURRENT_SOURCE_DIR}/../core)
181244
target_compile_definitions(websockets PRIVATE LWS_BUILDING_STATIC)
182245
target_include_directories(websockets PUBLIC ${LWS_PUBLIC_INCLUDES})
183246
set(LWS_PUBLIC_INCLUDES ${LWS_PUBLIC_INCLUDES} PARENT_SCOPE)
@@ -205,7 +268,7 @@ if (LWS_WITH_SHARED)
205268
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>
206269
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/../include>
207270
)
208-
target_include_directories(websockets_shared PRIVATE ${LWS_LIB_BUILD_INC_PATHS})
271+
target_include_directories(websockets_shared PRIVATE ${LWS_LIB_BUILD_INC_PATHS} ${LWS_LIB_BUILD_INC_PATHS_TEMP} ${CMAKE_CURRENT_SOURCE_DIR}/../core)
209272
target_compile_definitions(websockets_shared PRIVATE LWS_BUILDING_SHARED)
210273
target_include_directories(websockets_shared PUBLIC ${LWS_PUBLIC_INCLUDES})
211274
set(LWS_PUBLIC_INCLUDES ${LWS_PUBLIC_INCLUDES} PARENT_SCOPE)

lib/event-libs/CMakeLists.txt

Lines changed: 43 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,41 @@ macro(create_evlib_plugin PLUGIN_NAME MAIN_SRC PLUGIN_HDR EVLIB)
4242

4343
target_link_libraries(websockets-${PLUGIN_NAME} websockets_shared ${EVLIB})
4444
add_dependencies(websockets-${PLUGIN_NAME} websockets_shared)
45-
target_compile_definitions(websockets-${PLUGIN_NAME} PRIVATE LWS_BUILDING_SHARED)
45+
target_compile_definitions(websockets-${PLUGIN_NAME} PRIVATE ${LWS_BUILDING_SHARED})
4646

4747
target_include_directories(websockets-${PLUGIN_NAME} PRIVATE
48-
${PLUGIN_INCLUDE} ${LWS_LIB_BUILD_INC_PATHS})
48+
${PLUGIN_INCLUDE} ${LWS_LIB_BUILD_INC_PATHS}
49+
"${CMAKE_CURRENT_SOURCE_DIR}/../../core"
50+
"${CMAKE_CURRENT_SOURCE_DIR}/../../roles"
51+
"${CMAKE_CURRENT_SOURCE_DIR}/../../roles/http"
52+
"${CMAKE_CURRENT_SOURCE_DIR}/../../roles/h1"
53+
"${CMAKE_CURRENT_SOURCE_DIR}/../../roles/h2"
54+
"${CMAKE_CURRENT_SOURCE_DIR}/../../roles/http/compression"
55+
"${CMAKE_CURRENT_SOURCE_DIR}/../../roles/ws"
56+
"${CMAKE_CURRENT_SOURCE_DIR}/../../roles/cgi"
57+
"${CMAKE_CURRENT_SOURCE_DIR}/../../roles/listen"
58+
"${CMAKE_CURRENT_SOURCE_DIR}/../../roles/dbus"
59+
"${CMAKE_CURRENT_SOURCE_DIR}/../../roles/mqtt"
60+
"${CMAKE_CURRENT_SOURCE_DIR}/../../roles/raw-skt"
61+
"${CMAKE_CURRENT_SOURCE_DIR}/../../roles/raw-file"
62+
"${CMAKE_CURRENT_SOURCE_DIR}/../../roles/raw-proxy"
63+
"${CMAKE_CURRENT_SOURCE_DIR}/../../core-net"
64+
"${CMAKE_CURRENT_SOURCE_DIR}/../../tls"
65+
"${CMAKE_CURRENT_SOURCE_DIR}/../../system/smd"
66+
"${CMAKE_CURRENT_SOURCE_DIR}/../../system/metrics")
67+
68+
69+
70+
if (UNIX)
71+
target_include_directories(websockets-${PLUGIN_NAME} PRIVATE
72+
"${CMAKE_CURRENT_SOURCE_DIR}/../../plat/unix")
73+
endif()
74+
if (WINDOWS)
75+
target_include_directories(websockets-${PLUGIN_NAME} PRIVATE
76+
"${CMAKE_CURRENT_SOURCE_DIR}/../../plat/windows")
77+
endif()
78+
79+
4980

5081
# Set test app specific defines.
5182
# set_property(TARGET ${PLUGIN_NAME}
@@ -69,37 +100,40 @@ endmacro()
69100
#
70101

71102
if (LWS_WITH_POLL)
72-
add_subdir_include_directories(poll)
103+
add_subdir_include_directories_local(poll)
73104
endif()
74105

75106
if (LWS_WITH_NETWORK AND (LWS_WITH_LIBUV OR LWS_WITH_LIBUV_INTERNAL))
76-
add_subdir_include_directories(libuv)
107+
list(APPEND _CMAKE_INC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/../core")
108+
add_subdir_include_directories_local(libuv)
77109
set(LWS_HAVE_UV_VERSION_H ${LWS_HAVE_UV_VERSION_H} PARENT_SCOPE)
78110
set(LWS_HAVE_NEW_UV_VERSION_H ${LWS_HAVE_NEW_UV_VERSION_H} PARENT_SCOPE)
79111
endif()
80112

81113
if (LWS_WITH_NETWORK AND LWS_WITH_LIBEVENT)
82-
add_subdir_include_directories(libevent)
114+
add_subdir_include_directories_local(libevent)
83115
endif()
84116

85117
if (LWS_WITH_NETWORK AND LWS_WITH_GLIB)
86-
add_subdir_include_directories(glib)
118+
add_subdir_include_directories_local(glib)
87119
endif()
88120

89121
if (LWS_WITH_NETWORK AND LWS_WITH_LIBEV)
90-
add_subdir_include_directories(libev)
122+
add_subdir_include_directories_local(libev)
91123
set(LWS_HAVE_EVBACKEND_LINUXAIO ${LWS_HAVE_EVBACKEND_LINUXAIO} PARENT_SCOPE)
92124
set(LWS_HAVE_EVBACKEND_IOURING ${LWS_HAVE_EVBACKEND_IOURING} PARENT_SCOPE)
93125
endif()
94126

95127
if (LWS_WITH_NETWORK AND LWS_WITH_SDEVENT)
96-
add_subdir_include_directories(sdevent)
128+
add_subdir_include_directories_local(sdevent)
97129
endif()
98130

99131
if (LWS_WITH_NETWORK AND LWS_WITH_ULOOP)
100-
add_subdir_include_directories(uloop)
132+
add_subdir_include_directories_local(uloop)
101133
endif()
102134

135+
add_subdir_include_directories_local_end()
136+
103137
#
104138
# Keep explicit parent scope exports at end
105139
#

lib/roles/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,6 @@ endif()
8888
# Keep explicit parent scope exports at end
8989
#
9090

91-
exports_to_parent_scope()
91+
export_to_parent_intermediate()
9292
set(LWS_DEPS_LIB_PATHS ${LWS_DEPS_LIB_PATHS} PARENT_SCOPE)
9393

lib/roles/dbus/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ int main(void) {
5353

5454
message("dbus include dir 1: ${LWS_DBUS_INCLUDE1}")
5555
if (LWS_DBUS_INCLUDE1)
56-
include_directories("${LWS_DBUS_INCLUDE1}")
56+
set(LWS_LIB_BUILD_INC_PATHS ${LWS_LIB_BUILD_INC_PATHS} "${LWS_DBUS_INCLUDE1}")
57+
#list(APPEND _CMAKE_INC_LIST ${LWS_DBUS_INCLUDE1})
5758
endif()
5859
list(APPEND LIB_LIST ${LWS_DBUS_LIB})
5960

lwsws/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ if (LWS_WITH_LWSWS)
5151
target_link_libraries(lwsws websockets ${LIB_LIST_AT_END})
5252
add_dependencies(lwsws websockets)
5353
endif()
54-
target_include_directories(lwsws PRIVATE "${LWS_LIB_INCLUDES}" ${LWS_LIB_BUILD_INC_PATHS})
5554
# Set test app specific defines.
5655
set_property(TARGET lwsws
5756
PROPERTY COMPILE_DEFINITIONS

test-apps/CMakeLists.txt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,6 @@ if ((LWS_ROLE_H1 OR LWS_ROLE_H2))
9393
endif()
9494
endif()
9595

96-
if (LWS_LIB_INCLUDES)
97-
target_include_directories(${TEST_NAME} PRIVATE "${LWS_LIB_INCLUDES}" ${LWS_LIB_BUILD_INC_PATHS})
98-
else()
99-
target_include_directories(${TEST_NAME} PRIVATE ${LWS_LIB_BUILD_INC_PATHS})
100-
endif()
10196
target_compile_options(${TEST_NAME} PRIVATE ${LWS_PTHR_FLAGS})
10297

10398
if (LWS_WITH_HTTP_STREAM_COMPRESSION)

0 commit comments

Comments
 (0)