Skip to content

Commit 40ae6cc

Browse files
committed
[CMake] fix Boost use
Using both ADD_PROJECT_DEPEDENCY & FIND_PACKAGE for Boost breaks uses of ${Boost_LIBRARIES}: only the last call to one ore the other is taken into account. I suggest to use ${Boost_LIBRARIES} for exported ones, and eg. ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} for the private ones.
1 parent 870c6a6 commit 40ae6cc

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ CHECK_MINIMAL_CXX_STANDARD(11 ENFORCE)
3131
INCLUDE(cmake/pthread.cmake) # needs to be included after the CXX definition
3232

3333
# Project dependencies
34-
ADD_PROJECT_DEPENDENCY(Eigen3 REQUIRED PKG_CONFIG_REQUIRES eigen3)
35-
ADD_PROJECT_DEPENDENCY(Boost REQUIRED COMPONENTS serialization system thread)
3634
FIND_PACKAGE(Boost REQUIRED COMPONENTS unit_test_framework)
35+
ADD_PROJECT_DEPENDENCY(Boost REQUIRED COMPONENTS serialization system thread)
36+
ADD_PROJECT_DEPENDENCY(Eigen3 REQUIRED PKG_CONFIG_REQUIRES eigen3)
3737
SEARCH_FOR_PTHREAD()
3838

3939
# Add configuration headers for plug-ins.
@@ -129,10 +129,10 @@ ADD_LIBRARY(${PROJECT_NAME} SHARED
129129
TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} SYSTEM PUBLIC ${EIGEN3_INCLUDE_DIR}
130130
${Boost_INCLUDE_DIRS})
131131
TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PUBLIC $<INSTALL_INTERFACE:include>)
132-
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${Boost_LIBRARIES})
132+
TARGET_LINK_LIBRARIES(${PROJECT_NAME} PUBLIC ${Boost_LIBRARIES})
133133
134134
IF(UNIX)
135-
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${CMAKE_DL_LIBS} pthread)
135+
TARGET_LINK_LIBRARIES(${PROJECT_NAME} PUBLIC ${CMAKE_DL_LIBS} pthread)
136136
ENDIF(UNIX)
137137
138138
IF(SUFFIX_SO_VERSION)

tests/CMakeLists.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ ADD_DEFINITIONS(-DTESTS_DYNLIBSUFFIX="${CMAKE_SHARED_LIBRARY_SUFFIX}")
88

99
MACRO(DYNAMIC_GRAPH_TEST NAME)
1010
ADD_UNIT_TEST(${NAME} ${NAME}.cpp)
11-
TARGET_LINK_LIBRARIES(${NAME} ${PROJECT_NAME} ${Boost_LIBRARIES})
11+
TARGET_LINK_LIBRARIES(${NAME} PRIVATE ${PROJECT_NAME} ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY})
1212
ENDMACRO(DYNAMIC_GRAPH_TEST)
1313

1414
# Signal cast test.
1515
SET(signalcast_libs signal-cast-registerer-libA signal-cast-registerer-libB)
1616

1717
FOREACH(lib ${signalcast_libs})
1818
ADD_LIBRARY(${lib} SHARED ${lib})
19-
TARGET_LINK_LIBRARIES(${lib} ${PROJECT_NAME})
19+
TARGET_LINK_LIBRARIES(${lib} PRIVATE ${PROJECT_NAME})
2020
ENDFOREACH()
2121

2222
DYNAMIC_GRAPH_TEST(signal-cast-registerer)
@@ -34,13 +34,13 @@ DYNAMIC_GRAPH_TEST(signal-ptr)
3434
DYNAMIC_GRAPH_TEST(real-time-logger)
3535
DYNAMIC_GRAPH_TEST(debug-trace)
3636
DYNAMIC_GRAPH_TEST(debug-tracer)
37-
TARGET_LINK_LIBRARIES(debug-tracer tracer)
37+
TARGET_LINK_LIBRARIES(debug-tracer PRIVATE tracer)
3838
DYNAMIC_GRAPH_TEST(debug-real-time-tracer)
39-
TARGET_LINK_LIBRARIES(debug-real-time-tracer tracer-real-time tracer)
39+
TARGET_LINK_LIBRARIES(debug-real-time-tracer PRIVATE tracer-real-time tracer)
4040
DYNAMIC_GRAPH_TEST(debug-logger)
4141
DYNAMIC_GRAPH_TEST(debug-logger-winit)
4242
DYNAMIC_GRAPH_TEST(signal-all)
4343
DYNAMIC_GRAPH_TEST(command-test)
4444
DYNAMIC_GRAPH_TEST(test-mt)
45-
TARGET_LINK_LIBRARIES(test-mt tracer)
45+
TARGET_LINK_LIBRARIES(test-mt PRIVATE tracer)
4646
DYNAMIC_GRAPH_TEST(exceptions)

0 commit comments

Comments
 (0)