############################################################################## # CMake ############################################################################## cmake_minimum_required(VERSION 3.10) project(test_project VERSION 0.1) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) ############################################################################## # Catkin ############################################################################## find_package(catkin REQUIRED COMPONENTS qt_build # qt_build provides the qt cmake glue roscpp sensor_msgs cv_bridge rosbag camera_image_msgs ) include_directories( include ${catkin_INCLUDE_DIRS} ) catkin_package( CATKIN_DEPENDS qt_build roscpp sensor_msgs cv_bridge rosbag camera_image_msgs ) ############################################################################## # Qt Environment ############################################################################## set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) # set(CMAKE_PREFIX_PATH "/home/dengjh/Qt/5.15.2/gcc_64") set(ModuleList Core Gui Widgets Network Concurrent ) foreach(QtModule ${ModuleList}) # set(Qt5${QtModule}_DIR ${CMAKE_PREFIX_PATH}/lib/cmake/Qt5${QtModule}) set(Qt5${QtModule}_DIR /home/dengjh/Qt/5.15.2/gcc_64/lib/cmake/Qt5${QtModule}) set(QT_LIBRARIES ${QT_LIBRARIES} Qt5::${QtModule}) endforeach() find_package(Qt5 REQUIRED ${ModuleList}) file(GLOB QT_FORMS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ui/*.ui) file(GLOB QT_RESOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} resources/*.qrc) file(GLOB_RECURSE QT_MOC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} FOLLOW_SYMLINKS ui/*.h include/*.hpp *.h) QT5_ADD_RESOURCES(QT_RESOURCES_CPP ${QT_RESOURCES}) QT5_WRAP_UI(QT_FORMS_HPP ${QT_FORMS}) QT5_WRAP_CPP(QT_MOC_HPP ${QT_MOC}) ############################################################################## # Sources ############################################################################## file(GLOB_RECURSE QT_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} FOLLOW_SYMLINKS ui/*.cpp src/*.cpp *.cc *.cxx ) ############################################################################## # Binaries ############################################################################## add_executable(${PROJECT_NAME} ${QT_SOURCES} ${QT_RESOURCES_CPP} ${QT_FORMS_HPP} ${QT_MOC_HPP}) add_dependencies(${PROJECT_NAME} ${catkin_EXPORTED_TARGETS} ) target_link_libraries(${PROJECT_NAME} ${QT_LIBRARIES} ${catkin_LIBRARIES}) install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}) ############################################################################# # DEBUG or RELEASE ############################################################################# # 如果要生成debug版本 # SET(CMAKE_BUILD_TYPE "Debug") # 如果要生成release版本 # SET(CMAKE_BUILD_TYPE "Release") # 添加的支持debug和release支持 # SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb") # SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
Qt CMake官方教程:https://doc.qt.io/qt-5/cmake-get-started.html