Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitcdd0e00

Browse files
committed
enabling cpp-netlib to be compiled into a sincle library
this adds the CMake variable 'CPP-NETLIB_BUILD_SINGLE_LIB', whichdefaults to OFF and will enable build of a single library 'libcppnetlib'to be compiled instead of the different separated libraries.the tests and examples have been adjusted to deal with a single librarythe uri submodule has also been changed
1 parente0b3f97 commitcdd0e00

File tree

14 files changed

+248
-103
lines changed

14 files changed

+248
-103
lines changed

‎CMakeLists.txt

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ cmake_minimum_required(VERSION 2.8)
88
project(CPP-NETLIB)
99

1010
option(CPP-NETLIB_BUILD_SHARED_LIBS"Build cpp-netlib as shared libraries."OFF )
11+
option(CPP-NETLIB_BUILD_SINGLE_LIB"Build cpp-netlib into a single library"OFF )
1112
option(CPP-NETLIB_BUILD_TESTS"Build the unit tests."ON )
1213
option(CPP-NETLIB_BUILD_EXAMPLES"Build the examples using cpp-netlib."ON )
1314
option(CPP-NETLIB_ALWAYS_LOGGING"Allow cpp-netlib to log debug messages even in non-debug mode."OFF )
@@ -83,6 +84,7 @@ endif(Boost_FOUND)
8384

8485
message(STATUS"CPP-NETLIB options selected:")
8586
message(STATUS" CPP-NETLIB_BUILD_SHARED_LIBS: ${CPP-NETLIB_BUILD_SHARED_LIBS}\t(Build cpp-netlib as shared libraries: OFF, ON)")
87+
message(STATUS" CPP-NETLIB_BUILD_SINGLE_LIB: ${CPP-NETLIB_BUILD_SINGLE_LIB}\t(Build cpp-netlib into a single library: OFF, ON)")
8688
message(STATUS" CPP-NETLIB_BUILD_TESTS: ${CPP-NETLIB_BUILD_TESTS}\t(Build the unit tests: ON, OFF)")
8789
message(STATUS" CPP-NETLIB_BUILD_EXAMPLES: ${CPP-NETLIB_BUILD_EXAMPLES}\t(Build the examples using cpp-netlib: ON, OFF)")
8890
message(STATUS" CPP-NETLIB_ALWAYS_LOGGING: ${CPP-NETLIB_ALWAYS_LOGGING}\t(Allow cpp-netlib to log debug messages even in non-debug mode: ON, OFF)")
@@ -123,6 +125,16 @@ if(CPP-NETLIB_BUILD_TESTS)
123125
set(GMOCK_BOTH_LIBRARIES${GMOCK_LIBRARIES}${GMOCK_MAIN_LIBRARIES})
124126
endif()
125127

128+
if(CPP-NETLIB_BUILD_SINGLE_LIB)
129+
include_directories(
130+
${CMAKE_CURRENT_SOURCE_DIR}/concurrency/src
131+
${CMAKE_CURRENT_SOURCE_DIR}/http/src
132+
${CMAKE_CURRENT_SOURCE_DIR}/logging/src
133+
${CMAKE_CURRENT_SOURCE_DIR}/message/src
134+
${CMAKE_CURRENT_SOURCE_DIR}/uri/src
135+
)
136+
endif()
137+
126138
add_subdirectory(uri)
127139
add_subdirectory(message)
128140
add_subdirectory(logging)
@@ -132,3 +144,20 @@ add_subdirectory(http)
132144
if(CPP-NETLIB_BUILD_EXAMPLES)
133145
add_subdirectory(contrib/http_examples)
134146
endif()
147+
148+
if(CPP-NETLIB_BUILD_SINGLE_LIB)
149+
add_library(cppnetlib
150+
${Uri_SRCS}
151+
${CPP-NETLIB_MESSAGE_SRCS}
152+
${CPP-NETLIB_MESSAGE_DIRECTIVES_SRCS}
153+
${CPP-NETLIB_MESSAGE_WRAPPERS_SRCS}
154+
${CPP-NETLIB_LOGGING_SRCS}
155+
${CPP-NETLIB_HTTP_CLIENT_SRCS}
156+
${CPP-NETLIB_HTTP_CLIENT_CONNECTIONS_SRCS}
157+
${CPP-NETLIB_HTTP_MESSAGE_SRCS}
158+
${CPP-NETLIB_HTTP_MESSAGE_WRAPPERS_SRCS}
159+
${CPP-NETLIB_CONSTANTS_SRCS}
160+
${CPP-NETLIB_CONCURRENCY_SRCS}
161+
)
162+
target_link_libraries(cppnetlib${Boost_LIBRARIES})
163+
endif()

‎concurrency/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,6 @@ if(CPP-NETLIB_BUILD_TESTS)
99
enable_testing()
1010
add_subdirectory(test)
1111
endif(CPP-NETLIB_BUILD_TESTS)
12+
13+
# propagate sources to parent directory for one-lib-build
14+
set(CPP-NETLIB_CONCURRENCY_SRCS${CPP-NETLIB_CONCURRENCY_SRCS}PARENT_SCOPE)

‎concurrency/src/CMakeLists.txt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@ elseif (${CMAKE_CXX_COMPILER_ID} MATCHES Clang)
1616
endif()
1717
endif()
1818

19-
set(CPP-NETLIB_CONCURRENCY_SRCSthread_pool.cpp)
20-
add_library(cppnetlib-concurrency${CPP-NETLIB_CONCURRENCY_SRCS})
19+
set(CPP-NETLIB_CONCURRENCY_SRCS${CMAKE_CURRENT_SOURCE_DIR}/thread_pool.cpp)
20+
if(NOTCPP-NETLIB_BUILD_SINGLE_LIB)
21+
add_library(cppnetlib-concurrency${CPP-NETLIB_CONCURRENCY_SRCS})
22+
endif()
2123
foreach (src_file${CPP-NETLIB_CONCURRENCY_SRCS})
2224
if (${CMAKE_CXX_COMPILER_ID}MATCHESGNU)
2325
set_source_files_properties(${src_file}
@@ -27,3 +29,6 @@ elseif (${CMAKE_CXX_COMPILER_ID} MATCHES Clang)
2729
PROPERTIESCOMPILE_FLAGS${CPP-NETLIB_CXXFLAGS})
2830
endif()
2931
endforeach(src_file)
32+
33+
# propagate sources to parent directory for one-lib-build
34+
set(CPP-NETLIB_CONCURRENCY_SRCS${CPP-NETLIB_CONCURRENCY_SRCS}PARENT_SCOPE)

‎concurrency/test/CMakeLists.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,16 @@ include_directories(${CPP-NETLIB_SOURCE_DIR}/concurrency/src
77
${GTEST_INCLUDE_DIRS}
88
)
99

10+
if(CPP-NETLIB_BUILD_SINGLE_LIB)
11+
set(link_cppnetlib_libcppnetlib)
12+
else()
13+
set(link_cppnetlib_libcppnetlib-concurrency)
14+
endif()
1015
set_source_files_properties(thread_pool_test.cpp
1116
PROPERTIESCOMPILE_FLAGS"-Wall")
1217
add_executable(cpp-netlib-thread_pool_testthread_pool_test.cpp)
1318
target_link_libraries(cpp-netlib-thread_pool_test
14-
cppnetlib-concurrency
19+
${link_cppnetlib_lib}
1520
${Boost_LIBRARIES}
1621
${GTEST_BOTH_LIBRARIES}
1722
${CMAKE_THREAD_LIBS_INIT})

‎contrib/http_examples/CMakeLists.txt

Lines changed: 34 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,10 @@ set(BOOST_SERVER_LIBS
4040
${Boost_PROGRAM_OPTIONS_LIBRARY}
4141
)
4242

43-
target_link_libraries(simple_wget
44-
${BOOST_CLIENT_LIBS}
45-
${CMAKE_THREAD_LIBS_INIT}
43+
if(CPP-NETLIB_BUILD_SINGLE_LIB)
44+
set(simple_wget_linklibscppnetlib)
45+
else()
46+
set(simple_wget_linklibs
4647
cppnetlib-uri
4748
cppnetlib-message
4849
cppnetlib-message-directives
@@ -53,10 +54,16 @@ target_link_libraries(simple_wget
5354
cppnetlib-http-client
5455
cppnetlib-http-client-connections
5556
${CPP-NETLIB_LOGGING_LIB})
56-
57-
target_link_libraries(atom_reader
57+
endif()
58+
target_link_libraries(simple_wget
5859
${BOOST_CLIENT_LIBS}
5960
${CMAKE_THREAD_LIBS_INIT}
61+
${simple_wget_linklibs})
62+
63+
if(CPP-NETLIB_BUILD_SINGLE_LIB)
64+
set(atom_reader_linklibscppnetlib)
65+
else()
66+
set(atom_reader_linklibs
6067
cppnetlib-uri
6168
cppnetlib-message
6269
cppnetlib-message-directives
@@ -67,10 +74,16 @@ target_link_libraries(atom_reader
6774
cppnetlib-http-client
6875
cppnetlib-http-client-connections
6976
${CPP-NETLIB_LOGGING_LIB})
70-
71-
target_link_libraries(rss_reader
77+
endif()
78+
target_link_libraries(atom_reader
7279
${BOOST_CLIENT_LIBS}
7380
${CMAKE_THREAD_LIBS_INIT}
81+
${atom_reader_linklibs})
82+
83+
if(CPP-NETLIB_BUILD_SINGLE_LIB)
84+
set(rss_reader_linklibscppnetlib)
85+
else()
86+
set(rss_reader_linklibs
7487
cppnetlib-uri
7588
cppnetlib-message
7689
cppnetlib-message-directives
@@ -80,6 +93,11 @@ target_link_libraries(rss_reader
8093
cppnetlib-http-client
8194
cppnetlib-http-client-connections
8295
${CPP-NETLIB_LOGGING_LIB})
96+
endif()
97+
target_link_libraries(rss_reader
98+
${BOOST_CLIENT_LIBS}
99+
${CMAKE_THREAD_LIBS_INIT}
100+
${rss_reader_linklibs})
83101

84102
#target_link_libraries(twitter_search
85103
# ${BOOST_CLIENT_LIBS}
@@ -102,9 +120,10 @@ target_link_libraries(rss_reader
102120
# cppnetlib-http-server
103121
# ${CPP-NETLIB_LOGGING_LIB})
104122

105-
target_link_libraries(hello_world_client
106-
${BOOST_CLIENT_LIBS}
107-
${CMAKE_THREAD_LIBS_INIT}
123+
if(CPP-NETLIB_BUILD_SINGLE_LIB)
124+
set(hello_world_client_linklibscppnetlib)
125+
else()
126+
set(hello_world_client_linklibs
108127
cppnetlib-uri
109128
cppnetlib-message
110129
cppnetlib-message-directives
@@ -115,6 +134,11 @@ target_link_libraries(hello_world_client
115134
cppnetlib-http-client
116135
cppnetlib-http-client-connections
117136
${CPP-NETLIB_LOGGING_LIB})
137+
endif()
138+
target_link_libraries(hello_world_client
139+
${BOOST_CLIENT_LIBS}
140+
${CMAKE_THREAD_LIBS_INIT}
141+
${hello_world_client_linklibs})
118142

119143
if (OPENSSL_FOUND)
120144
target_link_libraries(simple_wget${OPENSSL_LIBRARIES})

‎http/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,10 @@ if(CPP-NETLIB_BUILD_TESTS)
99
enable_testing()
1010
add_subdirectory(test)
1111
endif(CPP-NETLIB_BUILD_TESTS)
12+
13+
# propagate sources to parent directory for one-lib-build
14+
set(CPP-NETLIB_HTTP_MESSAGE_SRCS${CPP-NETLIB_HTTP_MESSAGE_SRCS}PARENT_SCOPE)
15+
set(CPP-NETLIB_HTTP_MESSAGE_WRAPPERS_SRCS${CPP-NETLIB_HTTP_MESSAGE_WRAPPERS_SRCS}PARENT_SCOPE)
16+
set(CPP-NETLIB_HTTP_CLIENT_CONNECTIONS_SRCS${CPP-NETLIB_HTTP_CLIENT_CONNECTIONS_SRCS}PARENT_SCOPE)
17+
set(CPP-NETLIB_HTTP_CLIENT_SRCS${CPP-NETLIB_HTTP_CLIENT_SRCS}PARENT_SCOPE)
18+
set(CPP-NETLIB_CONSTANTS_SRCS${CPP-NETLIB_CONSTANTS_SRCS}PARENT_SCOPE)

‎http/src/CMakeLists.txt

Lines changed: 68 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,18 @@ elseif (${CMAKE_CXX_COMPILER_ID} MATCHES Clang)
3333
endif()
3434
endif()
3535

36-
set(CPP-NETLIB_HTTP_MESSAGE_SRCShttp/request.cpphttp/response.cpp)
37-
add_library(cppnetlib-http-message${CPP-NETLIB_HTTP_MESSAGE_SRCS})
38-
add_dependencies(cppnetlib-http-message
39-
# ${Boost_LIBRARIES}
40-
cppnetlib-message)
41-
target_link_libraries(cppnetlib-http-message
42-
${Boost_LIBRARIES}
43-
cppnetlib-message)
36+
set(CPP-NETLIB_HTTP_MESSAGE_SRCS
37+
${CMAKE_CURRENT_SOURCE_DIR}/http/request.cpp
38+
${CMAKE_CURRENT_SOURCE_DIR}/http/response.cpp)
39+
if(NOTCPP-NETLIB_BUILD_SINGLE_LIB)
40+
add_library(cppnetlib-http-message${CPP-NETLIB_HTTP_MESSAGE_SRCS})
41+
add_dependencies(cppnetlib-http-message
42+
# ${Boost_LIBRARIES}
43+
cppnetlib-message)
44+
target_link_libraries(cppnetlib-http-message
45+
${Boost_LIBRARIES}
46+
cppnetlib-message)
47+
endif()
4448
foreach (src_file${CPP-NETLIB_HTTP_MESSAGE_SRCS})
4549
if (${CMAKE_CXX_COMPILER_ID}MATCHESGNU)
4650
set_source_files_properties(${src_file}
@@ -51,8 +55,10 @@ elseif (${CMAKE_CXX_COMPILER_ID} MATCHES Clang)
5155
endif()
5256
endforeach(src_file)
5357

54-
set(CPP-NETLIB_HTTP_MESSAGE_WRAPPERS_SRCShttp/message/wrappers.cpp)
55-
add_library(cppnetlib-http-message-wrappers${CPP-NETLIB_HTTP_MESSAGE_WRAPPERS_SRCS})
58+
set(CPP-NETLIB_HTTP_MESSAGE_WRAPPERS_SRCS${CMAKE_CURRENT_SOURCE_DIR}/http/message/wrappers.cpp)
59+
if(NOTCPP-NETLIB_BUILD_SINGLE_LIB)
60+
add_library(cppnetlib-http-message-wrappers${CPP-NETLIB_HTTP_MESSAGE_WRAPPERS_SRCS})
61+
endif()
5662
foreach (src_file${CPP-NETLIB_HTTP_MESSAGE_WRAPPERS_SRCS})
5763
if (${CMAKE_CXX_COMPILER_ID}MATCHESGNU)
5864
set_source_files_properties(${src_file}
@@ -118,17 +124,19 @@ endforeach(src_file)
118124
#endforeach(src_file)
119125

120126
set(CPP-NETLIB_HTTP_CLIENT_CONNECTIONS_SRCS
121-
http/client_connections.cpp
122-
http/simple_connection_manager.cpp
123-
http/simple_connection_factory.cpp
124-
http/connection_delegate_factory.cpp
125-
http/client_resolver_delegate.cpp
126-
http/client_resolver_delegate_factory.cpp
127-
http/client_connection_delegates.cpp
128-
http/client_connection_factory.cpp
129-
http/client_async_resolver.cpp
130-
http/client_connection_normal.cpp)
131-
add_library(cppnetlib-http-client-connections${CPP-NETLIB_HTTP_CLIENT_CONNECTIONS_SRCS})
127+
${CMAKE_CURRENT_SOURCE_DIR}/http/client_connections.cpp
128+
${CMAKE_CURRENT_SOURCE_DIR}/http/simple_connection_manager.cpp
129+
${CMAKE_CURRENT_SOURCE_DIR}/http/simple_connection_factory.cpp
130+
${CMAKE_CURRENT_SOURCE_DIR}/http/connection_delegate_factory.cpp
131+
${CMAKE_CURRENT_SOURCE_DIR}/http/client_resolver_delegate.cpp
132+
${CMAKE_CURRENT_SOURCE_DIR}/http/client_resolver_delegate_factory.cpp
133+
${CMAKE_CURRENT_SOURCE_DIR}/http/client_connection_delegates.cpp
134+
${CMAKE_CURRENT_SOURCE_DIR}/http/client_connection_factory.cpp
135+
${CMAKE_CURRENT_SOURCE_DIR}/http/client_async_resolver.cpp
136+
${CMAKE_CURRENT_SOURCE_DIR}/http/client_connection_normal.cpp)
137+
if(NOTCPP-NETLIB_BUILD_SINGLE_LIB)
138+
add_library(cppnetlib-http-client-connections${CPP-NETLIB_HTTP_CLIENT_CONNECTIONS_SRCS})
139+
endif()
132140
foreach (src_file${CPP-NETLIB_HTTP_CLIENT_CONNECTIONS_SRCS})
133141
if (${CMAKE_CXX_COMPILER_ID}MATCHESGNU)
134142
set_source_files_properties(${src_file}
@@ -140,31 +148,33 @@ endif()
140148
endforeach(src_file)
141149

142150
set(CPP-NETLIB_HTTP_CLIENT_SRCS
143-
http/client.cpp)
144-
add_library(cppnetlib-http-client${CPP-NETLIB_HTTP_CLIENT_SRCS})
145-
add_dependencies(cppnetlib-http-client
146-
${CPP-NETLIB_LOGGING_LIB}
147-
cppnetlib-constants
148-
cppnetlib-uri
149-
cppnetlib-message
150-
cppnetlib-message-wrappers
151-
cppnetlib-message-directives
152-
cppnetlib-http-message
153-
cppnetlib-http-message-wrappers
154-
cppnetlib-http-client-connections
155-
)
156-
target_link_libraries(cppnetlib-http-client
157-
${Boost_LIBRARIES}
158-
${CPP-NETLIB_LOGGING_LIB}
159-
cppnetlib-constants
160-
cppnetlib-uri
161-
cppnetlib-message
162-
cppnetlib-message-wrappers
163-
cppnetlib-message-directives
164-
cppnetlib-http-message
165-
cppnetlib-http-message-wrappers
166-
cppnetlib-http-client-connections
167-
)
151+
${CMAKE_CURRENT_SOURCE_DIR}/http/client.cpp)
152+
if(NOTCPP-NETLIB_BUILD_SINGLE_LIB)
153+
add_library(cppnetlib-http-client${CPP-NETLIB_HTTP_CLIENT_SRCS})
154+
add_dependencies(cppnetlib-http-client
155+
${CPP-NETLIB_LOGGING_LIB}
156+
cppnetlib-constants
157+
cppnetlib-uri
158+
cppnetlib-message
159+
cppnetlib-message-wrappers
160+
cppnetlib-message-directives
161+
cppnetlib-http-message
162+
cppnetlib-http-message-wrappers
163+
cppnetlib-http-client-connections
164+
)
165+
target_link_libraries(cppnetlib-http-client
166+
${Boost_LIBRARIES}
167+
${CPP-NETLIB_LOGGING_LIB}
168+
cppnetlib-constants
169+
cppnetlib-uri
170+
cppnetlib-message
171+
cppnetlib-message-wrappers
172+
cppnetlib-message-directives
173+
cppnetlib-http-message
174+
cppnetlib-http-message-wrappers
175+
cppnetlib-http-client-connections
176+
)
177+
endif()
168178
foreach (src_file${CPP-NETLIB_HTTP_CLIENT_SRCS})
169179
if (${CMAKE_CXX_COMPILER_ID}MATCHESGNU)
170180
set_source_files_properties(${src_file}
@@ -175,8 +185,10 @@ elseif (${CMAKE_CXX_COMPILER_ID} MATCHES Clang)
175185
endif()
176186
endforeach(src_file)
177187

178-
set(CPP-NETLIB_CONSTANTS_SRCSconstants.cpp)
179-
add_library(cppnetlib-constants${CPP-NETLIB_CONSTANTS_SRCS})
188+
set(CPP-NETLIB_CONSTANTS_SRCS${CMAKE_CURRENT_SOURCE_DIR}/constants.cpp)
189+
if(NOTCPP-NETLIB_BUILD_SINGLE_LIB)
190+
add_library(cppnetlib-constants${CPP-NETLIB_CONSTANTS_SRCS})
191+
endif()
180192
foreach (src_file${CPP-NETLIB_CONSTANTS_SRCS})
181193
if (${CMAKE_CXX_COMPILER_ID}MATCHESGNU)
182194
set_source_files_properties(${src_file}
@@ -186,3 +198,11 @@ elseif (${CMAKE_CXX_COMPILER_ID} MATCHES Clang)
186198
PROPERTIESCOMPILE_FLAGS${CPP-NETLIB_CXXFLAGS})
187199
endif()
188200
endforeach(src_file)
201+
202+
203+
# propagate sources to parent directory for one-lib-build
204+
set(CPP-NETLIB_HTTP_MESSAGE_SRCS${CPP-NETLIB_HTTP_MESSAGE_SRCS}PARENT_SCOPE)
205+
set(CPP-NETLIB_HTTP_MESSAGE_WRAPPERS_SRCS${CPP-NETLIB_HTTP_MESSAGE_WRAPPERS_SRCS}PARENT_SCOPE)
206+
set(CPP-NETLIB_HTTP_CLIENT_CONNECTIONS_SRCS${CPP-NETLIB_HTTP_CLIENT_CONNECTIONS_SRCS}PARENT_SCOPE)
207+
set(CPP-NETLIB_HTTP_CLIENT_SRCS${CPP-NETLIB_HTTP_CLIENT_SRCS}PARENT_SCOPE)
208+
set(CPP-NETLIB_CONSTANTS_SRCS${CPP-NETLIB_CONSTANTS_SRCS}PARENT_SCOPE)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp