Skip to content

Commit 0064820

Browse files
authored
RSDK-9707: Make API a private dependency of SDK (#355)
1 parent 951b7e4 commit 0064820

File tree

6 files changed

+22
-11
lines changed

6 files changed

+22
-11
lines changed

CMakeLists.txt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,10 +194,8 @@ set(CMAKE_MODULE_PATH
194194
${CMAKE_MODULE_PATH}
195195
${PROJECT_SOURCE_DIR}/src/viam/cmake
196196
)
197-
if (VIAMCPPSDK_BUILD_TESTS OR VIAMCPPSDK_BUILD_EXAMPLES)
198-
# We maybe could include this unconditionally, but technically only tests or examples need it
199-
include(viamcppsdk_utils)
200-
endif()
197+
198+
include(viamcppsdk_utils)
201199

202200

203201

conanfile.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,13 @@ def package_info(self):
112112
self.cpp_info.components["viamapi"].sharedlinkflags.append(whole_archive)
113113

114114
self.cpp_info.components["viamsdk"].requires.extend([
115-
"viamapi",
116115
"boost::headers",
117116
"boost::log",
118117
"grpc::grpc++_reflection",
119118
"protobuf::libprotobuf",
120119
"xtensor::xtensor",
121120

121+
"viamapi",
122122
"viam_rust_utils",
123123
"abseil::absl_strings",
124124
])

src/viam/cmake/viamcppsdk_utils.cmake

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,11 @@ function(viamcppsdk_add_boost_test SOURCE_FILE_NAME)
1717
COMMAND ${TEST_EXECUTABLE_NAME} --catch_system_error=yes)
1818
endforeach()
1919
endfunction()
20+
21+
function(viamcppsdk_link_viam_api TARGET_LIBRARY)
22+
if (BUILD_SHARED_LIBS)
23+
target_link_libraries(${TARGET_LIBRARY} ${ARGV1} viam-cpp-sdk::viamapi)
24+
else()
25+
target_link_libraries(${TARGET_LIBRARY} ${ARGV1} "$<LINK_LIBRARY:WHOLE_ARCHIVE,viam-cpp-sdk::viamapi>")
26+
endif()
27+
endfunction()

src/viam/examples/modules/complex/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ target_link_libraries(complex_module_sources
108108
viam-cpp-sdk::viamsdk
109109
)
110110

111+
viamcppsdk_link_viam_api(complex_module_sources)
112+
111113
add_executable(complex_module)
112114
target_sources(complex_module
113115
PRIVATE

src/viam/sdk/CMakeLists.txt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ add_library(viam-cpp-sdk::viamsdk ALIAS viamsdk)
1515
# `BASE_DIRS` below, because otherwise we will pull in the static
1616
# versions of the proto files even if we are generating dynamically.
1717
target_include_directories(viamsdk
18-
PUBLIC
18+
PRIVATE
1919
"$<BUILD_INTERFACE:$<TARGET_PROPERTY:viam-cpp-sdk::viamapi,INTERFACE_INCLUDE_DIRECTORIES>>"
2020
)
2121

@@ -233,11 +233,7 @@ target_link_directories(viamsdk
233233
"$<INSTALL_INTERFACE:${VIAMCPPSDK_PROTOBUF_LIBRARY_DIRS}>"
234234
)
235235

236-
if (BUILD_SHARED_LIBS)
237-
target_link_libraries(viamsdk PUBLIC viam-cpp-sdk::viamapi)
238-
else()
239-
target_link_libraries(viamsdk PUBLIC "$<LINK_LIBRARY:WHOLE_ARCHIVE,viam-cpp-sdk::viamapi>")
240-
endif()
236+
viamcppsdk_link_viam_api(viamsdk PRIVATE)
241237

242238
target_link_libraries(viamsdk
243239
PUBLIC ${VIAMCPPSDK_GRPCXX_LIBRARIES}

src/viam/sdk/tests/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,17 @@ target_sources(viamsdk_test
3939
test_utils.cpp
4040
)
4141

42+
target_include_directories(viamsdk_test
43+
PUBLIC
44+
"$<BUILD_INTERFACE:$<TARGET_PROPERTY:viam-cpp-sdk::viamapi,INTERFACE_INCLUDE_DIRECTORIES>>"
45+
)
46+
4247
target_link_libraries(viamsdk_test
4348
PUBLIC viam-cpp-sdk::viamsdk
4449
)
4550

51+
viamcppsdk_link_viam_api(viamsdk_test PUBLIC)
52+
4653
viamcppsdk_add_boost_test(test_arm.cpp)
4754
viamcppsdk_add_boost_test(test_base.cpp)
4855
viamcppsdk_add_boost_test(test_board.cpp)

0 commit comments

Comments
 (0)