ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Solution:
The solution in my case was that the command CONAN_BASIC_SETUP(NO_OUTPUT_DIRS) had to be called before the find_package() calls, looks like that in transition to ROS1 it is needed to do it before anything.

The final ros_trafficlightdetection CMakeLists.txt:

cmake_minimum_required(VERSION 3.14)
include(${CMAKE_SOURCE_DIR}/../../conanbuildinfo.cmake)

set (PROJECT ${CONAN_PACKAGE_NAME})

project(${PROJECT})

cmake_policy(SET CMP0002 NEW)
cmake_policy(SET CMP0003 NEW)
cmake_policy(SET CMP0011 NEW)
cmake_policy(SET CMP0022 NEW)
cmake_policy(SET CMP0037 NEW)

message(${CONAN_PACKAGE_NAME} VERSION ${CONAN_PACKAGE_VERSION})
message(STATUS "Building Product: ${PROJECT_NAME} v${PROJECT_VERSION}")

# Default to C++14
if(NOT CMAKE_CXX_STANDARD)
  set(CMAKE_CXX_STANDARD 14)
endif()

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
  add_compile_options(-Wall -Wextra -Wpedantic)
endif()

CONAN_BASIC_SETUP(NO_OUTPUT_DIRS)

## Die ROS Pakete, von denen das Paket abhängt
find_package(ament_cmake REQUIRED)
find_package(OpenCV REQUIRED)
find_package(std_msgs)
find_package(rclcpp REQUIRED)
find_package(rclpy REQUIRED)
find_package(sensor_msgs REQUIRED)
find_package(cv_bridge REQUIRED)
find_package(image_transport REQUIRED)
find_package(messages REQUIRED)


include_directories(
  include
  SYSTEM
  ${CONAN_INCLUDE_DIRS}
  ${ament_cmake_INCLUDE_DIRS}
 }


## Ausführbare Datei Deklarieren
add_executable(${PROJECT}_node ${CMAKE_SOURCE_DIR}/src/ros_trafficlightdetection_node.cpp)

## Die Bibliotheken werden mit der Ausführbaren Datei verlinkt
ament_target_dependencies(${PROJECT}_node 
  rclcpp 
  std_msgs 
  sensor_msgs 
  cv_bridge 
  image_transport 
  messages
)

ament_export_dependencies(message_runtime)
ament_export_include_directories(include)

target_link_libraries(${PROJECT}_node ${CONAN_LIBS})
target_link_libraries(${PROJECT}_node ${OpenCV_LIBRARIES})

install(TARGETS
  ${PROJECT}_node
  DESTINATION lib/${PROJECT}
)

ament_package()