diff --git a/spinnaker_camera_driver/CMakeLists.txt b/spinnaker_camera_driver/CMakeLists.txt index 59dbef39..9727e686 100644 --- a/spinnaker_camera_driver/CMakeLists.txt +++ b/spinnaker_camera_driver/CMakeLists.txt @@ -114,6 +114,7 @@ target_link_libraries(camera_driver ${sensor_msgs_TARGETS} ${std_msgs_TARGETS} yaml-cpp + PRIVATE Spinnaker::Spinnaker) target_include_directories(camera_driver diff --git a/spinnaker_camera_driver/cmake/spinnaker_camera_driverConfig.cmake.in b/spinnaker_camera_driver/cmake/spinnaker_camera_driverConfig.cmake.in index 0a743434..ea6e30ed 100644 --- a/spinnaker_camera_driver/cmake/spinnaker_camera_driverConfig.cmake.in +++ b/spinnaker_camera_driver/cmake/spinnaker_camera_driverConfig.cmake.in @@ -1,6 +1,5 @@ include(CMakeFindDependencyMacro) -find_dependency(SPINNAKER) find_dependency(rclcpp) find_dependency(rclcpp_components) find_dependency(camera_info_manager) diff --git a/spinnaker_synchronized_camera_driver/CMakeLists.txt b/spinnaker_synchronized_camera_driver/CMakeLists.txt index 6e03bcd4..f3a30f12 100644 --- a/spinnaker_synchronized_camera_driver/CMakeLists.txt +++ b/spinnaker_synchronized_camera_driver/CMakeLists.txt @@ -33,31 +33,6 @@ if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE RelWithDebInfo) endif() -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") - -# The spinnaker_camera_driver links against the spinnaker libraries, -# and also exports them as a dependency. However, if the spinnaker SDK -# is not installed system-wide, then the spinnaker_camera_driver actually -# installs a private copy of the spinnaker SDK libraries alongside its own -# libraries. The hack below works detects this scenario and works around it. - -find_package(SPINNAKER) -if(NOT SPINNAKER_FOUND) - # assumes that "spinnaker_camera_driver" is installed at the same root - # as "spinnaker_synchronized_camera_driver" - cmake_path(GET CMAKE_INSTALL_FULL_LIBDIR PARENT_PATH SPINNAKER_ROOT_DIR) - cmake_path(GET SPINNAKER_ROOT_DIR PARENT_PATH SPINNAKER_ROOT_DIR) - cmake_path(APPEND SPINNAKER_ROOT_DIR "spinnaker_camera_driver") - message(STATUS "searching for spinnaker here: ${SPINNAKER_ROOT_DIR}") - # SPINNAKER_ROOT_DIR will be actually used when - # find_package(spinnaker_camera_driver) executes a find_package(SPINNAKER). - # This find_package(SPINNAKER) is actually triggered by - # spinnaker_camera_driverConfig.cmake.in - # But the FindSPINNAKER.cmake used for that search is actually the one - # in spinnaker_synchronized_camera_driver/cmake/, - # which has been stripped to not search for the include path. -endif() - find_package(spinnaker_camera_driver REQUIRED) # list of all packages that use ament for export (may work for others too) diff --git a/spinnaker_synchronized_camera_driver/cmake/FindSPINNAKER.cmake b/spinnaker_synchronized_camera_driver/cmake/FindSPINNAKER.cmake deleted file mode 100644 index b4bb82b4..00000000 --- a/spinnaker_synchronized_camera_driver/cmake/FindSPINNAKER.cmake +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright 2024 Bernd Pfrommer -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# -# sets the following variables: -# -# SPINNAKER_LIBRARIES -# SPINNAKER_FOUND -# -# or for the more modern cmake usage, sets the target Spinnaker::Spinnaker -# -# searches first in "SPINNAKER_ROOT_DIR" for location of spinnaker SDK - -include(FindPackageHandleStandardArgs) - -if( EXISTS "$ENV{SPINNAKER_ROOT_DIR}" ) - file( TO_CMAKE_PATH "$ENV{SPINNAKER_ROOT_DIR}" SPINNAKER_ROOT_DIR ) - set( SPINNAKER_ROOT_DIR "${SPINNAKER_ROOT_DIR}" CACHE PATH "Prefix for Spinnaker installation." ) -endif() - -find_library(SPINNAKER_LIBRARIES - NAMES Spinnaker - HINTS - ${SPINNAKER_ROOT_DIR}/lib - /opt/spinnaker/lib - /usr/lib/ - /usr/local/lib - NO_DEFAULT_PATH # else it will find ROS system spinnaker libraries first - PATH_SUFFIXES Release Debug -) - -find_package_handle_standard_args(SPINNAKER - FOUND_VAR SPINNAKER_FOUND - REQUIRED_VARS SPINNAKER_LIBRARIES) - -if(SPINNAKER_FOUND AND NOT TARGET Spinnaker::Spinnaker) - add_library(Spinnaker::Spinnaker UNKNOWN IMPORTED) - set_target_properties(Spinnaker::Spinnaker PROPERTIES - IMPORTED_LOCATION "${SPINNAKER_LIBRARIES}" - IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") -endif()