https://github.com/OctoMap/octomap/pull/433.patch switch qt4/qt5 to qt5/qt6 qt6 just works as is diff --git a/CMakeLists.txt b/CMakeLists.txt index f1eb31f3..6a4db7eb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) # enables -fPIC in applicable compilers option(BUILD_OCTOVIS_SUBPROJECT "Build targets from subproject octovis" ON) option(BUILD_DYNAMICETD3D_SUBPROJECT "Build targets from subproject dynamicEDT3D" ON) -option(OCTOVIS_QT5 "Link Octovis against Qt5?" ON) +option(OCTOVIS_QT6 "Link Octovis against Qt6?" ON) set(CMAKE_CXX_STANDARD 11) diff --git a/octovis/CMakeLists.txt b/octovis/CMakeLists.txt index 84fa3675..e6dd604c 100644 --- a/octovis/CMakeLists.txt +++ b/octovis/CMakeLists.txt @@ -65,17 +65,14 @@ set(INSTALL_TARGETS_DEFAULT_ARGS # libQGLViewer, if dependencies available SET( BUILD_VIEWER 0) -option(OCTOVIS_QT5 "Link Octovis against Qt5?" ON) +option(OCTOVIS_QT6 "Link Octovis against Qt6?" ON) # Look for required libraries: set(OpenGL_GL_PREFERENCE LEGACY) FIND_PACKAGE(OpenGL) -if(NOT OCTOVIS_QT5) - FIND_PACKAGE(Qt4) -endif(NOT OCTOVIS_QT5) -IF (OpenGL-NOTFOUND OR Qt4-NOTFOUND) - MESSAGE ( "OpenGL and QT4 are required for octovis but could not be found.") +IF (OpenGL-NOTFOUND) + MESSAGE ( "OpenGL is required for octovis but could not be found.") ELSE() FIND_PACKAGE(QGLViewer) IF(QGLViewer_FOUND) diff --git a/octovis/CMakeLists_src.txt b/octovis/CMakeLists_src.txt index 35bc1f20..6eaa31ad 100644 --- a/octovis/CMakeLists_src.txt +++ b/octovis/CMakeLists_src.txt @@ -1,5 +1,8 @@ -if(OCTOVIS_QT5) +if(OCTOVIS_QT6) + find_package(Qt6 REQUIRED COMPONENTS Core Gui OpenGLWidgets Widgets Xml) + set(QT_LIBRARIES Qt6::Core Qt6::Gui Qt6::OpenGLWidgets Qt6::Widgets Qt6::Xml "${OPENGL_gl_LIBRARY}" "${OPENGL_glu_LIBRARY}") +else(OCTOVIS_QT6) find_package(Qt5Core REQUIRED) find_package(Qt5Gui REQUIRED) find_package(Qt5OpenGL REQUIRED) @@ -13,14 +16,7 @@ if(OCTOVIS_QT5) "${Qt5Widgets_INCLUDE_DIRS}" "${Qt5Xml_INCLUDE_DIRS}" ) -else(OCTOVIS_QT5) - # Qt4-support (more info: http://qtnode.net/wiki?title=Qt_with_cmake) - find_package(Qt4 REQUIRED) - set(QT_USE_QTOPENGL TRUE) - set(QT_USE_QTXML TRUE) - # include the files enabled above - include(${QT_USE_FILE}) -endif(OCTOVIS_QT5) +endif(OCTOVIS_QT6) # Mac OS X seems to require special linker flags: IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") @@ -51,11 +47,11 @@ set(viewer_SRCS ) # Resource files (icons, ...) -if(OCTOVIS_QT5) +if(OCTOVIS_QT6) + QT6_ADD_RESOURCES(viewer_RES src/icons.qrc) +else(OCTOVIS_QT6) QT5_ADD_RESOURCES(viewer_RES src/icons.qrc) -else(OCTOVIS_QT5) - QT4_ADD_RESOURCES(viewer_RES src/icons.qrc) -endif(OCTOVIS_QT5) +endif(OCTOVIS_QT6) #found QGLViewer lib dir link_directories(${QGLViewer_LIBRARY_DIR}) @@ -74,11 +70,11 @@ SET(viewer_MOC_HDRS ) # generate list of MOC srcs: -if(OCTOVIS_QT5) +if(OCTOVIS_QT6) + QT6_WRAP_CPP(viewer_MOC_SRCS ${viewer_MOC_HDRS}) +else(OCTOVIS_QT6) QT5_WRAP_CPP(viewer_MOC_SRCS ${viewer_MOC_HDRS}) -else(OCTOVIS_QT5) - QT4_WRAP_CPP(viewer_MOC_SRCS ${viewer_MOC_HDRS}) -endif(OCTOVIS_QT5) +endif(OCTOVIS_QT6) # let cmake generate ui*.h files from .ui files (Qt Designer): SET(viewer_UIS @@ -87,11 +83,11 @@ SET(viewer_UIS ${PROJECT_SOURCE_DIR}/include/octovis/ViewerSettingsPanel.ui ${PROJECT_SOURCE_DIR}/include/octovis/ViewerSettingsPanelCamera.ui ) -if(OCTOVIS_QT5) +if(OCTOVIS_QT6) + QT6_WRAP_UI(viewer_UIS_H ${viewer_UIS}) +else(OCTOVIS_QT6) QT5_WRAP_UI(viewer_UIS_H ${viewer_UIS}) -else(OCTOVIS_QT5) - QT4_WRAP_UI(viewer_UIS_H ${viewer_UIS}) -endif(OCTOVIS_QT5) +endif(OCTOVIS_QT6) # Don't forget to include output directory, otherwise # the UI file won't be wrapped! @@ -101,6 +97,7 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_BINARY_DIR}) # Library target add_library(octovis-static STATIC ${viewerlib_SRCS}) target_link_libraries(octovis-static + ${QT_LIBRARIES} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} ${OCTOMAP_LIBRARIES} @@ -110,6 +107,7 @@ set_target_properties(octovis-static PROPERTIES OUTPUT_NAME octovis) add_library(octovis-shared SHARED ${viewerlib_SRCS}) target_link_libraries(octovis-shared + ${QT_LIBRARIES} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} ${OCTOMAP_LIBRARIES} @@ -135,7 +133,6 @@ add_executable(octovis ${viewer_SRCS} ${viewer_UIS_H} ${viewer_MOC_SRCS} ${viewe target_link_libraries(octovis # ${QGLViewer_LIBRARIES} - ${QT_LIBRARIES} ${OCTOMAP_LIBRARIES} octovis-shared )