ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
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()