diff --git a/CMakeLists.txt b/CMakeLists.txt index cf2a4a395..86793541a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -194,10 +194,8 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/src/viam/cmake ) -if (VIAMCPPSDK_BUILD_TESTS OR VIAMCPPSDK_BUILD_EXAMPLES) - # We maybe could include this unconditionally, but technically only tests or examples need it - include(viamcppsdk_utils) -endif() + +include(viamcppsdk_utils) diff --git a/conanfile.py b/conanfile.py index b388f67db..b4fc51bbf 100644 --- a/conanfile.py +++ b/conanfile.py @@ -112,13 +112,13 @@ def package_info(self): self.cpp_info.components["viamapi"].sharedlinkflags.append(whole_archive) self.cpp_info.components["viamsdk"].requires.extend([ - "viamapi", "boost::headers", "boost::log", "grpc::grpc++_reflection", "protobuf::libprotobuf", "xtensor::xtensor", + "viamapi", "viam_rust_utils", "abseil::absl_strings", ]) diff --git a/src/viam/cmake/viamcppsdk_utils.cmake b/src/viam/cmake/viamcppsdk_utils.cmake index 15ef6d223..82957747d 100644 --- a/src/viam/cmake/viamcppsdk_utils.cmake +++ b/src/viam/cmake/viamcppsdk_utils.cmake @@ -17,3 +17,11 @@ function(viamcppsdk_add_boost_test SOURCE_FILE_NAME) COMMAND ${TEST_EXECUTABLE_NAME} --catch_system_error=yes) endforeach() endfunction() + +function(viamcppsdk_link_viam_api TARGET_LIBRARY) + if (BUILD_SHARED_LIBS) + target_link_libraries(${TARGET_LIBRARY} ${ARGV1} viam-cpp-sdk::viamapi) + else() + target_link_libraries(${TARGET_LIBRARY} ${ARGV1} "$") + endif() +endfunction() diff --git a/src/viam/examples/modules/complex/CMakeLists.txt b/src/viam/examples/modules/complex/CMakeLists.txt index 6ac850332..d8ad9bc5f 100644 --- a/src/viam/examples/modules/complex/CMakeLists.txt +++ b/src/viam/examples/modules/complex/CMakeLists.txt @@ -108,6 +108,8 @@ target_link_libraries(complex_module_sources viam-cpp-sdk::viamsdk ) +viamcppsdk_link_viam_api(complex_module_sources) + add_executable(complex_module) target_sources(complex_module PRIVATE diff --git a/src/viam/sdk/CMakeLists.txt b/src/viam/sdk/CMakeLists.txt index fe4d864ab..f1438fcfe 100644 --- a/src/viam/sdk/CMakeLists.txt +++ b/src/viam/sdk/CMakeLists.txt @@ -15,7 +15,7 @@ add_library(viam-cpp-sdk::viamsdk ALIAS viamsdk) # `BASE_DIRS` below, because otherwise we will pull in the static # versions of the proto files even if we are generating dynamically. target_include_directories(viamsdk - PUBLIC + PRIVATE "$>" ) @@ -233,11 +233,7 @@ target_link_directories(viamsdk "$" ) -if (BUILD_SHARED_LIBS) - target_link_libraries(viamsdk PUBLIC viam-cpp-sdk::viamapi) -else() - target_link_libraries(viamsdk PUBLIC "$") -endif() +viamcppsdk_link_viam_api(viamsdk PRIVATE) target_link_libraries(viamsdk PUBLIC ${VIAMCPPSDK_GRPCXX_LIBRARIES} diff --git a/src/viam/sdk/tests/CMakeLists.txt b/src/viam/sdk/tests/CMakeLists.txt index 8c16e0fdc..422b91f4a 100644 --- a/src/viam/sdk/tests/CMakeLists.txt +++ b/src/viam/sdk/tests/CMakeLists.txt @@ -39,10 +39,17 @@ target_sources(viamsdk_test test_utils.cpp ) +target_include_directories(viamsdk_test + PUBLIC + "$>" +) + target_link_libraries(viamsdk_test PUBLIC viam-cpp-sdk::viamsdk ) +viamcppsdk_link_viam_api(viamsdk_test PUBLIC) + viamcppsdk_add_boost_test(test_arm.cpp) viamcppsdk_add_boost_test(test_base.cpp) viamcppsdk_add_boost_test(test_board.cpp)