Skip to content

Commit d78f0ed

Browse files
committed
Boost include directories are now tied to targets directly
Boost is required for cppnetlib & related projects. Thus, it should transitively provided include directories to its own source as well as the include directories to its dependencies (Boost in this case). That way if there are other CMake targets that depend on cppnetlib but not Boost directly, it will still be able to compile cppnetlib headers that include boost headers. The include directories are tied to respective targets via the new target_include_directories() CMake command. This requires a newer version of CMake (v3.0 minimum).
1 parent 84119e5 commit d78f0ed

File tree

11 files changed

+21
-3
lines changed

11 files changed

+21
-3
lines changed

.travis.yml

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ env:
1414
before_install:
1515
- sudo add-apt-repository ppa:apokluda/boost1.53 --yes
1616
- sudo add-apt-repository ppa:ubuntu-toolchain-r/test --yes # libstdc++-4.8
17+
- sudo add-apt-repository ppa:george-edison55/cmake-3.x --yes
1718
- if [ "${CXX}" == "clang++" ]; then sudo add-apt-repository --yes ppa:h-rayflood/llvm; fi # clang++-3.2
1819
- sudo apt-get update
1920

@@ -23,6 +24,7 @@ install:
2324
- sudo apt-get install libboost-system1.53-dev
2425
- sudo apt-get install libboost-regex1.53-dev
2526
- sudo apt-get install libboost-filesystem1.53-dev
27+
- sudo apt-get install cmake
2628

2729
before_script:
2830
# update compilers

CMakeLists.txt

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# (See accompanying file LICENSE_1_0.txt or copy at
66
# http://www.boost.org/LICENSE_1_0.txt)
77

8-
cmake_minimum_required(VERSION 2.8)
8+
cmake_minimum_required(VERSION 3.0)
99
project(CPP-NETLIB)
1010

1111
option( CPP-NETLIB_BUILD_SHARED_LIBS "Build cpp-netlib as shared libraries." OFF )
@@ -84,7 +84,6 @@ endif(MSVC)
8484
if (WIN32)
8585
add_definitions(-D_WIN32_WINNT=0x0501)
8686
endif(WIN32)
87-
include_directories(${Boost_INCLUDE_DIRS})
8887

8988
message(STATUS "CPP-NETLIB options selected:")
9089
message(STATUS " CPP-NETLIB_BUILD_SHARED_LIBS: ${CPP-NETLIB_BUILD_SHARED_LIBS}\t(Build cpp-netlib as shared libraries: OFF, ON)")
@@ -157,7 +156,7 @@ if (DOXYGEN_FOUND)
157156
endif(DOXYGEN_FOUND)
158157

159158
if(CPP-NETLIB_BUILD_SINGLE_LIB)
160-
include_directories(
159+
set( all_include_dirs
161160
${CMAKE_CURRENT_SOURCE_DIR}/config/src
162161
${CMAKE_CURRENT_SOURCE_DIR}/concurrency/src
163162
${CMAKE_CURRENT_SOURCE_DIR}/http/src
@@ -194,4 +193,5 @@ if(CPP-NETLIB_BUILD_SINGLE_LIB)
194193
${CPP-NETLIB_CONCURRENCY_SRCS}
195194
)
196195
target_link_libraries(cppnetlib ${Boost_LIBRARIES})
196+
target_include_directories(cppnetlib PUBLIC ${all_include_dirs} ${Boost_INCLUDE_DIRS})
197197
endif()

concurrency/src/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ set(CPP-NETLIB_CONCURRENCY_SRCS
1010

1111
if(NOT CPP-NETLIB_BUILD_SINGLE_LIB)
1212
add_library(network-concurrency ${CPP-NETLIB_CONCURRENCY_SRCS})
13+
target_include_directories(network-concurrency PUBLIC ${Boost_INCLUDE_DIRS})
1314
endif()
1415

1516
# prepend current directory to make paths absolute

concurrency/test/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ if (CPP-NETLIB_BUILD_TESTS)
1414
${Boost_LIBRARIES}
1515
${GTEST_BOTH_LIBRARIES}
1616
${CMAKE_THREAD_LIBS_INIT})
17+
target_include_directories(cpp-netlib-thread_pool_test PUBLIC ${Boost_INCLUDE_DIRS})
1718
set_target_properties(cpp-netlib-thread_pool_test PROPERTIES
1819
RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/tests)
1920
add_test(cpp-netlib-thread_pool_test

contrib/http_examples/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,6 @@ foreach(example ${EXAMPLES})
3333
${ICU_LIBRARIES} ${ICU_I18N_LIBRARIES}
3434
${CMAKE_THREAD_LIBS_INIT}
3535
)
36+
target_include_directories(${example} PUBLIC ${Boost_INCLUDE_DIRS})
3637
set_target_properties(${example} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/example)
3738
endforeach(example)

http/src/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -28,20 +28,23 @@ if(NOT CPP-NETLIB_BUILD_SINGLE_LIB)
2828
target_link_libraries(network-http-message
2929
${Boost_LIBRARIES}
3030
network-message)
31+
target_include_directories(network-http-message PUBLIC ${Boost_INCLUDE_DIRS})
3132
endif()
3233

3334
set(CPP-NETLIB_HTTP_MESSAGE_WRAPPERS_SRCS
3435
http/message/wrappers.cpp)
3536

3637
if(NOT CPP-NETLIB_BUILD_SINGLE_LIB)
3738
add_library(network-http-message-wrappers ${CPP-NETLIB_HTTP_MESSAGE_WRAPPERS_SRCS})
39+
target_include_directories(network-http-message-wrappers PUBLIC ${Boost_INCLUDE_DIRS})
3840
endif()
3941

4042
set(CPP-NETLIB_CONSTANTS_SRCS
4143
constants.cpp)
4244

4345
if(NOT CPP-NETLIB_BUILD_SINGLE_LIB)
4446
add_library(network-constants ${CPP-NETLIB_CONSTANTS_SRCS})
47+
target_include_directories(network-constants PUBLIC ${Boost_INCLUDE_DIRS})
4548
endif()
4649

4750
# Server implementation files.
@@ -52,6 +55,7 @@ set(CPP-NETLIB_HTTP_SERVER_SRCS
5255

5356
if (NOT CPP-NETLIB_BUILD_SINGLE_LIB)
5457
add_library(network-http-server ${CPP-NETLIB_HTTP_SERVER_SRCS})
58+
target_include_directories(network-http-server PUBLIC ${Boost_INCLUDE_DIRS})
5559
endif()
5660

5761
# HTTP client
@@ -64,6 +68,7 @@ target_link_libraries(network-http-v2-client
6468
${Boost_LIBRARIES}
6569
network-uri
6670
)
71+
target_include_directories(network-http-v2-client PUBLIC ${Boost_INCLUDE_DIRS})
6772
if (OPENSSL_FOUND)
6873
target_link_libraries(network-http-v2-client ${OPENSSL_LIBRARIES})
6974
endif()

http/test/CMakeLists.txt

+2
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ if (CPP-NETLIB_BUILD_TESTS)
5858
${ICU_LIBRARIES} ${ICU_I18N_LIBRARIES}
5959
${CMAKE_THREAD_LIBS_INIT}
6060
${CPPNETLIB_LIBRARIES} )
61+
target_include_directories(cpp-netlib-http-${test} PUBLIC ${Boost_INCLUDE_DIRS})
6162
set_target_properties(cpp-netlib-http-${test}
6263
PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/tests)
6364
add_test(cpp-netlib-http-${test}
@@ -91,6 +92,7 @@ if (CPP-NETLIB_BUILD_TESTS)
9192
${GTEST_BOTH_LIBRARIES}
9293
${CMAKE_THREAD_LIBS_INIT}
9394
${CPPNETLIB_SERVER_LIBRARIES} )
95+
target_include_directories(cpp-netlib-http-${test} PUBLIC ${Boost_INCLUDE_DIRS})
9496
set_target_properties(cpp-netlib-http-${test} PROPERTIES
9597
RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/tests)
9698
add_test(cpp-netlib-http-${test}

http/test/v2/client/features/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ foreach(test ${CPP-NETLIB_CLIENT_TESTS})
2727
${ICU_LIBRARIES} ${ICU_I18N_LIBRARIES}
2828
${CMAKE_THREAD_LIBS_INIT}
2929
)
30+
target_include_directories(cpp-netlib-http-v2-${test} PUBLIC ${Boost_INCLUDE_DIRS})
3031
set_target_properties(cpp-netlib-http-v2-${test}
3132
PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/tests)
3233
add_test(cpp-netlib-http-v2-${test}

http/test/v2/client/units/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ foreach(test ${CPP-NETLIB_CLIENT_TESTS})
2929
${ICU_LIBRARIES} ${ICU_I18N_LIBRARIES}
3030
${CMAKE_THREAD_LIBS_INIT}
3131
)
32+
target_include_directories(cpp-netlib-http-v2-${test} PUBLIC ${Boost_INCLUDE_DIRS})
3233
set_target_properties(cpp-netlib-http-v2-${test}
3334
PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/tests)
3435
add_test(cpp-netlib-http-v2-${test}

logging/test/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ if (CPP-NETLIB_BUILD_TESTS)
2828
add_executable(cpp-netlib-${test} ${test}.cpp)
2929
target_link_libraries(cpp-netlib-${test}
3030
${Boost_LIBRARIES} ${GTEST_BOTH_LIBRARIES} ${link_cppnetlib_lib})
31+
target_include_directories(cpp-netlib-${test} PUBLIC ${Boost_INCLUDE_DIRS})
3132
set_target_properties(cpp-netlib-${test}
3233
PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/tests)
3334
add_test(cpp-netlib-${test}

message/src/CMakeLists.txt

+3
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,20 @@ set(CPP-NETLIB_MESSAGE_SRCS
1111
message.cpp)
1212

1313
add_library(network-message ${CPP-NETLIB_MESSAGE_SRCS})
14+
target_include_directories(network-message PUBLIC ${Boost_INCLUDE_DIRS})
1415
target_link_libraries(network-message network-uri)
1516

1617
set(CPP-NETLIB_MESSAGE_DIRECTIVES_SRCS
1718
directives.cpp)
1819

1920
add_library(network-message-directives ${CPP-NETLIB_MESSAGE_DIRECTIVES_SRCS})
21+
target_include_directories(network-message-directives PUBLIC ${Boost_INCLUDE_DIRS})
2022

2123
set(CPP-NETLIB_MESSAGE_WRAPPERS_SRCS
2224
wrappers.cpp)
2325

2426
add_library(network-message-wrappers ${CPP-NETLIB_MESSAGE_WRAPPERS_SRCS})
27+
target_include_directories(network-message-wrappers PUBLIC ${Boost_INCLUDE_DIRS})
2528

2629
# prepend current directory to make paths absolute
2730
prependToElements( "${CMAKE_CURRENT_SOURCE_DIR}/"

0 commit comments

Comments
 (0)