[ROS][Qt] 在Qt中使用ROS混合编程

突发奇想,想写个ROS工具箱。自然而然地选择Qt作为UI框架,下面分享一下咱用的CMakeLists.txt

cmake_minimum_required(VERSION 3.15)

project(rostoolkit VERSION 0.1)

set(CMAKE_AUTOMOC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(Qt6 6.2 COMPONENTS Core Quick REQUIRED)

find_package(catkin REQUIRED COMPONENTS
  roscpp
)

catkin_package()

include_directories(
# include
  ${catkin_INCLUDE_DIRS}
)

add_compile_definitions("BOOST_BIND_GLOBAL_PLACEHOLDERS")

qt_add_executable(approstoolkit
    main.cpp
)

qt_add_qml_module(approstoolkit
    URI rostoolkit
    VERSION 1.0
    QML_FILES main.qml 
)

set_target_properties(approstoolkit PROPERTIES
    MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
    MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
    MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
    MACOSX_BUNDLE TRUE
    WIN32_EXECUTABLE TRUE
)

target_compile_definitions(approstoolkit
    PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
target_link_libraries(approstoolkit
    PRIVATE Qt6::Quick ${catkin_LIBRARIES})

3 个赞