How to migrate from Qt5 to Qt6 ?
-
My program works with Qt5 and KF5
I change it to Qt6
my CMakeLists.txtcmake_minimum_required(VERSION 3.5) project(EdiQ VERSION 0.1 LANGUAGES CXX) if(CMAKE_COMPILER_IS_GNUCXX) SET(GCC_COVERAGE_COMPILE_FLAGS "-Werror=return-type") add_definitions(${GCC_COVERAGE_COMPILE_FLAGS}) endif() set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) # SingleApplication base class set(QAPPLICATION_CLASS QApplication) add_subdirectory(SingleApplication) find_package(QT NAMES Qt6) find_package(Qt6 REQUIRED COMPONENTS Widgets) set(KF_LIB_SYNTAX KF6SyntaxHighlighting) set(BOTAN_DIR "/usr/include/botan-2") IF(NOT EXISTS ${BOTAN_DIR}) message(FATAL_ERROR "Not found ${BOTAN_DIR}") ELSE() message(STATUS "Found ${BOTAN_DIR}") ENDIF() set(PROJECT_SOURCES main.cpp mainwindow.cpp mainwindow.h CodeEditor.cpp CodeEditor.h IEditorFactory.h IEditor.h EditorFactory.cpp EditorFactory.h UntitledCounter.cpp UntitledCounter.h EdiException.h CodeEditorSidebar.cpp CodeEditorSidebar.h PlainTextEdit.h SearchBar.cpp SearchBar.h Popup.cpp Popup.h raise.cpp raise.h XRaise.cpp XRaise.h een.cpp een.h PlainTextEdit.cpp) qt_add_executable(${PROJECT_NAME} MANUAL_FINALIZATION res/icons.qrc ${PROJECT_SOURCES} ) target_include_directories(${PROJECT_NAME} PRIVATE ${BOTAN_DIR}) target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Widgets SingleApplication::SingleApplication ${KF_LIB_SYNTAX} X11 botan-2 ) set_target_properties(${PROJECT_NAME} 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 ) install(TARGETS ${PROJECT_NAME} BUNDLE DESTINATION . LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) qt_finalize_executable(${PROJECT_NAME})
my SingleApplication/CMakeLists.txt
cmake_minimum_required(VERSION 3.12.0) project(SingleApplication LANGUAGES CXX DESCRIPTION "Replacement for QtSingleApplication") set(CMAKE_AUTOMOC ON) add_library(${PROJECT_NAME} STATIC singleapplication.cpp singleapplication_p.cpp ) add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) if(NOT QT_DEFAULT_MAJOR_VERSION) set(QT_DEFAULT_MAJOR_VERSION 5 CACHE STRING "Qt version to use (5 or 6), defaults to 5") endif() # Find dependencies set(QT_COMPONENTS Core Network) set(QT_LIBRARIES Qt6::Core Qt6::Network) if(QAPPLICATION_CLASS STREQUAL QApplication) list(APPEND QT_COMPONENTS Widgets) list(APPEND QT_LIBRARIES Qt6::Widgets) elseif(QAPPLICATION_CLASS STREQUAL QGuiApplication) list(APPEND QT_COMPONENTS Gui) list(APPEND QT_LIBRARIES Qt6::Gui) else() set(QAPPLICATION_CLASS QCoreApplication) endif() find_package(Qt6 COMPONENTS ${QT_COMPONENTS} REQUIRED) option(SINGLEAPPLICATION_DOCUMENTATION "Generate Doxygen documentation" OFF) if(SINGLEAPPLICATION_DOCUMENTATION) find_package(Doxygen) endif() target_link_libraries(${PROJECT_NAME} PUBLIC ${QT_LIBRARIES}) if(WIN32) target_link_libraries(${PROJECT_NAME} PRIVATE advapi32) endif() target_compile_definitions(${PROJECT_NAME} PUBLIC QAPPLICATION_CLASS=${QAPPLICATION_CLASS}) target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_compile_definitions(${PROJECT_NAME} PRIVATE QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII QT_NO_URL_CAST_FROM_STRING QT_NO_CAST_FROM_BYTEARRAY QT_USE_QSTRINGBUILDER QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_KEYWORDS QT_NO_FOREACH ) if(DOXYGEN_FOUND) # Doxygen theme include(FetchContent) FetchContent_Declare(DoxygenAwesome GIT_REPOSITORY https://github.com/jothepro/doxygen-awesome-css GIT_TAG 4cd62308d825fe0396d2f66ffbab45d0e247724c # 2.0.3 ) FetchContent_MakeAvailable(DoxygenAwesome) FetchContent_GetProperties(DoxygenAwesome SOURCE_DIR DoxygenAwesome_SOURCE_DIR) set(DOXYGEN_USE_MDFILE_AS_MAINPAGE README.md) set(DOXYGEN_GENERATE_TREEVIEW YES) set(DOXYGEN_HTML_HEADER ${DoxygenAwesome_SOURCE_DIR}/doxygen-custom/header.html) set(DOXYGEN_HTML_EXTRA_STYLESHEET ${DoxygenAwesome_SOURCE_DIR}/doxygen-awesome.css) set(DOXYGEN_HTML_EXTRA_FILES ${DoxygenAwesome_SOURCE_DIR}/doxygen-awesome-fragment-copy-button.js ${DoxygenAwesome_SOURCE_DIR}/doxygen-awesome-paragraph-link.js ${DoxygenAwesome_SOURCE_DIR}/doxygen-awesome-darkmode-toggle.js ) doxygen_add_docs(${PROJECT_NAME}Documentation singleapplication.h CHANGELOG.md Windows.md README.md ) endif()
I have installed
sudo apt install qt6-base-dev
libqt6opengl6-dev is already installed:
$ aptitude search qt | grep opengl | grep 6 p libqt5opengl5:i386 - Qt 5 OpenGL module v libqt5opengl5-desktop-dev:i386 - p libqt5opengl5-dev:i386 - Qt 5 OpenGL library development files i A libqt6opengl6 - Qt 6 OpenGL module i A libqt6opengl6-dev - Qt 6 OpenGL library development files i A libqt6openglwidgets6 - Qt 6 OpenGL widgets module p python3-pyqt5.qtopengl:i386 - Python 3 bindings for Qt5's OpenGL module
and libqt6gui6:
$ aptitude search qt | grep gui | grep 6 p cmake-qt-gui:i386 - Qt based user interface for CMake (cmake-gui) p libqt5gui5:i386 - Qt 5 GUI module i A libqt6gui6 - Qt 6 GUI module p linguist-qt6 - Qt 6 Linguist
but are errors:
CMake Warning at /home/andrzej/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.8660.186/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeFindDependencyMacro.cmake:76 (find_package): Found package configuration file: /usr/lib/x86_64-linux-gnu/cmake/Qt6Gui/Qt6GuiConfig.cmake but it set Qt6Gui_FOUND to FALSE so package "Qt6Gui" is considered to be NOT FOUND. Reason given by package: Qt6Gui could not be found because dependency WrapOpenGL could not be found. Call Stack (most recent call first): /usr/lib/x86_64-linux-gnu/cmake/Qt6/QtPublicDependencyHelpers.cmake:14 (find_dependency) /usr/lib/x86_64-linux-gnu/cmake/Qt6Widgets/Qt6WidgetsDependencies.cmake:96 (_qt_internal_find_dependencies) /usr/lib/x86_64-linux-gnu/cmake/Qt6Widgets/Qt6WidgetsConfig.cmake:50 (include) /usr/lib/x86_64-linux-gnu/cmake/Qt6/Qt6Config.cmake:219 (find_package) SingleApplication/CMakeLists.txt:31 (find_package) CMake Warning at /usr/lib/x86_64-linux-gnu/cmake/Qt6/Qt6Config.cmake:219 (find_package): Found package configuration file: /usr/lib/x86_64-linux-gnu/cmake/Qt6Widgets/Qt6WidgetsConfig.cmake but it set Qt6Widgets_FOUND to FALSE so package "Qt6Widgets" is considered to be NOT FOUND. Reason given by package: Qt6Widgets could not be found because dependency Qt6Gui could not be found. Call Stack (most recent call first): SingleApplication/CMakeLists.txt:31 (find_package) CMake Error at SingleApplication/CMakeLists.txt:31 (find_package): Found package configuration file: /usr/lib/x86_64-linux-gnu/cmake/Qt6/Qt6Config.cmake but it set Qt6_FOUND to FALSE so package "Qt6" is considered to be NOT FOUND. Reason given by package: Failed to find Qt component "Widgets". Expected Config file at "/usr/lib/x86_64-linux-gnu/cmake/Qt6Widgets/Qt6WidgetsConfig.cmake" exists
Previously I only has been using Qt5, but I want move to Qt6.
KF5 also works with Qt6 since not packaged KF6?Partial Solution:
sudo apt install libglvnd-dev
helps to satisfy cmake, also KF5 syntax highlighter do, but is runtime error - must be KF6 syntax highlighter (?)
-
My program works with Qt5 and KF5
I change it to Qt6
my CMakeLists.txtcmake_minimum_required(VERSION 3.5) project(EdiQ VERSION 0.1 LANGUAGES CXX) if(CMAKE_COMPILER_IS_GNUCXX) SET(GCC_COVERAGE_COMPILE_FLAGS "-Werror=return-type") add_definitions(${GCC_COVERAGE_COMPILE_FLAGS}) endif() set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) # SingleApplication base class set(QAPPLICATION_CLASS QApplication) add_subdirectory(SingleApplication) find_package(QT NAMES Qt6) find_package(Qt6 REQUIRED COMPONENTS Widgets) set(KF_LIB_SYNTAX KF6SyntaxHighlighting) set(BOTAN_DIR "/usr/include/botan-2") IF(NOT EXISTS ${BOTAN_DIR}) message(FATAL_ERROR "Not found ${BOTAN_DIR}") ELSE() message(STATUS "Found ${BOTAN_DIR}") ENDIF() set(PROJECT_SOURCES main.cpp mainwindow.cpp mainwindow.h CodeEditor.cpp CodeEditor.h IEditorFactory.h IEditor.h EditorFactory.cpp EditorFactory.h UntitledCounter.cpp UntitledCounter.h EdiException.h CodeEditorSidebar.cpp CodeEditorSidebar.h PlainTextEdit.h SearchBar.cpp SearchBar.h Popup.cpp Popup.h raise.cpp raise.h XRaise.cpp XRaise.h een.cpp een.h PlainTextEdit.cpp) qt_add_executable(${PROJECT_NAME} MANUAL_FINALIZATION res/icons.qrc ${PROJECT_SOURCES} ) target_include_directories(${PROJECT_NAME} PRIVATE ${BOTAN_DIR}) target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Widgets SingleApplication::SingleApplication ${KF_LIB_SYNTAX} X11 botan-2 ) set_target_properties(${PROJECT_NAME} 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 ) install(TARGETS ${PROJECT_NAME} BUNDLE DESTINATION . LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) qt_finalize_executable(${PROJECT_NAME})
my SingleApplication/CMakeLists.txt
cmake_minimum_required(VERSION 3.12.0) project(SingleApplication LANGUAGES CXX DESCRIPTION "Replacement for QtSingleApplication") set(CMAKE_AUTOMOC ON) add_library(${PROJECT_NAME} STATIC singleapplication.cpp singleapplication_p.cpp ) add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) if(NOT QT_DEFAULT_MAJOR_VERSION) set(QT_DEFAULT_MAJOR_VERSION 5 CACHE STRING "Qt version to use (5 or 6), defaults to 5") endif() # Find dependencies set(QT_COMPONENTS Core Network) set(QT_LIBRARIES Qt6::Core Qt6::Network) if(QAPPLICATION_CLASS STREQUAL QApplication) list(APPEND QT_COMPONENTS Widgets) list(APPEND QT_LIBRARIES Qt6::Widgets) elseif(QAPPLICATION_CLASS STREQUAL QGuiApplication) list(APPEND QT_COMPONENTS Gui) list(APPEND QT_LIBRARIES Qt6::Gui) else() set(QAPPLICATION_CLASS QCoreApplication) endif() find_package(Qt6 COMPONENTS ${QT_COMPONENTS} REQUIRED) option(SINGLEAPPLICATION_DOCUMENTATION "Generate Doxygen documentation" OFF) if(SINGLEAPPLICATION_DOCUMENTATION) find_package(Doxygen) endif() target_link_libraries(${PROJECT_NAME} PUBLIC ${QT_LIBRARIES}) if(WIN32) target_link_libraries(${PROJECT_NAME} PRIVATE advapi32) endif() target_compile_definitions(${PROJECT_NAME} PUBLIC QAPPLICATION_CLASS=${QAPPLICATION_CLASS}) target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_compile_definitions(${PROJECT_NAME} PRIVATE QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII QT_NO_URL_CAST_FROM_STRING QT_NO_CAST_FROM_BYTEARRAY QT_USE_QSTRINGBUILDER QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_KEYWORDS QT_NO_FOREACH ) if(DOXYGEN_FOUND) # Doxygen theme include(FetchContent) FetchContent_Declare(DoxygenAwesome GIT_REPOSITORY https://github.com/jothepro/doxygen-awesome-css GIT_TAG 4cd62308d825fe0396d2f66ffbab45d0e247724c # 2.0.3 ) FetchContent_MakeAvailable(DoxygenAwesome) FetchContent_GetProperties(DoxygenAwesome SOURCE_DIR DoxygenAwesome_SOURCE_DIR) set(DOXYGEN_USE_MDFILE_AS_MAINPAGE README.md) set(DOXYGEN_GENERATE_TREEVIEW YES) set(DOXYGEN_HTML_HEADER ${DoxygenAwesome_SOURCE_DIR}/doxygen-custom/header.html) set(DOXYGEN_HTML_EXTRA_STYLESHEET ${DoxygenAwesome_SOURCE_DIR}/doxygen-awesome.css) set(DOXYGEN_HTML_EXTRA_FILES ${DoxygenAwesome_SOURCE_DIR}/doxygen-awesome-fragment-copy-button.js ${DoxygenAwesome_SOURCE_DIR}/doxygen-awesome-paragraph-link.js ${DoxygenAwesome_SOURCE_DIR}/doxygen-awesome-darkmode-toggle.js ) doxygen_add_docs(${PROJECT_NAME}Documentation singleapplication.h CHANGELOG.md Windows.md README.md ) endif()
I have installed
sudo apt install qt6-base-dev
libqt6opengl6-dev is already installed:
$ aptitude search qt | grep opengl | grep 6 p libqt5opengl5:i386 - Qt 5 OpenGL module v libqt5opengl5-desktop-dev:i386 - p libqt5opengl5-dev:i386 - Qt 5 OpenGL library development files i A libqt6opengl6 - Qt 6 OpenGL module i A libqt6opengl6-dev - Qt 6 OpenGL library development files i A libqt6openglwidgets6 - Qt 6 OpenGL widgets module p python3-pyqt5.qtopengl:i386 - Python 3 bindings for Qt5's OpenGL module
and libqt6gui6:
$ aptitude search qt | grep gui | grep 6 p cmake-qt-gui:i386 - Qt based user interface for CMake (cmake-gui) p libqt5gui5:i386 - Qt 5 GUI module i A libqt6gui6 - Qt 6 GUI module p linguist-qt6 - Qt 6 Linguist
but are errors:
CMake Warning at /home/andrzej/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.8660.186/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeFindDependencyMacro.cmake:76 (find_package): Found package configuration file: /usr/lib/x86_64-linux-gnu/cmake/Qt6Gui/Qt6GuiConfig.cmake but it set Qt6Gui_FOUND to FALSE so package "Qt6Gui" is considered to be NOT FOUND. Reason given by package: Qt6Gui could not be found because dependency WrapOpenGL could not be found. Call Stack (most recent call first): /usr/lib/x86_64-linux-gnu/cmake/Qt6/QtPublicDependencyHelpers.cmake:14 (find_dependency) /usr/lib/x86_64-linux-gnu/cmake/Qt6Widgets/Qt6WidgetsDependencies.cmake:96 (_qt_internal_find_dependencies) /usr/lib/x86_64-linux-gnu/cmake/Qt6Widgets/Qt6WidgetsConfig.cmake:50 (include) /usr/lib/x86_64-linux-gnu/cmake/Qt6/Qt6Config.cmake:219 (find_package) SingleApplication/CMakeLists.txt:31 (find_package) CMake Warning at /usr/lib/x86_64-linux-gnu/cmake/Qt6/Qt6Config.cmake:219 (find_package): Found package configuration file: /usr/lib/x86_64-linux-gnu/cmake/Qt6Widgets/Qt6WidgetsConfig.cmake but it set Qt6Widgets_FOUND to FALSE so package "Qt6Widgets" is considered to be NOT FOUND. Reason given by package: Qt6Widgets could not be found because dependency Qt6Gui could not be found. Call Stack (most recent call first): SingleApplication/CMakeLists.txt:31 (find_package) CMake Error at SingleApplication/CMakeLists.txt:31 (find_package): Found package configuration file: /usr/lib/x86_64-linux-gnu/cmake/Qt6/Qt6Config.cmake but it set Qt6_FOUND to FALSE so package "Qt6" is considered to be NOT FOUND. Reason given by package: Failed to find Qt component "Widgets". Expected Config file at "/usr/lib/x86_64-linux-gnu/cmake/Qt6Widgets/Qt6WidgetsConfig.cmake" exists
Previously I only has been using Qt5, but I want move to Qt6.
KF5 also works with Qt6 since not packaged KF6?Partial Solution:
sudo apt install libglvnd-dev
helps to satisfy cmake, also KF5 syntax highlighter do, but is runtime error - must be KF6 syntax highlighter (?)
@AndrzejB said in How to migrate from Qt5 to Qt6 ?:
KF5 syntax highlighter do, but is runtime error - must be KF6 syntax highlighter (?)
You can not mix Qt5 and Qt6. Do yes you have to wait for KF6
-
My program works with Qt5 and KF5
I change it to Qt6
my CMakeLists.txtcmake_minimum_required(VERSION 3.5) project(EdiQ VERSION 0.1 LANGUAGES CXX) if(CMAKE_COMPILER_IS_GNUCXX) SET(GCC_COVERAGE_COMPILE_FLAGS "-Werror=return-type") add_definitions(${GCC_COVERAGE_COMPILE_FLAGS}) endif() set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) # SingleApplication base class set(QAPPLICATION_CLASS QApplication) add_subdirectory(SingleApplication) find_package(QT NAMES Qt6) find_package(Qt6 REQUIRED COMPONENTS Widgets) set(KF_LIB_SYNTAX KF6SyntaxHighlighting) set(BOTAN_DIR "/usr/include/botan-2") IF(NOT EXISTS ${BOTAN_DIR}) message(FATAL_ERROR "Not found ${BOTAN_DIR}") ELSE() message(STATUS "Found ${BOTAN_DIR}") ENDIF() set(PROJECT_SOURCES main.cpp mainwindow.cpp mainwindow.h CodeEditor.cpp CodeEditor.h IEditorFactory.h IEditor.h EditorFactory.cpp EditorFactory.h UntitledCounter.cpp UntitledCounter.h EdiException.h CodeEditorSidebar.cpp CodeEditorSidebar.h PlainTextEdit.h SearchBar.cpp SearchBar.h Popup.cpp Popup.h raise.cpp raise.h XRaise.cpp XRaise.h een.cpp een.h PlainTextEdit.cpp) qt_add_executable(${PROJECT_NAME} MANUAL_FINALIZATION res/icons.qrc ${PROJECT_SOURCES} ) target_include_directories(${PROJECT_NAME} PRIVATE ${BOTAN_DIR}) target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Widgets SingleApplication::SingleApplication ${KF_LIB_SYNTAX} X11 botan-2 ) set_target_properties(${PROJECT_NAME} 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 ) install(TARGETS ${PROJECT_NAME} BUNDLE DESTINATION . LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) qt_finalize_executable(${PROJECT_NAME})
my SingleApplication/CMakeLists.txt
cmake_minimum_required(VERSION 3.12.0) project(SingleApplication LANGUAGES CXX DESCRIPTION "Replacement for QtSingleApplication") set(CMAKE_AUTOMOC ON) add_library(${PROJECT_NAME} STATIC singleapplication.cpp singleapplication_p.cpp ) add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) if(NOT QT_DEFAULT_MAJOR_VERSION) set(QT_DEFAULT_MAJOR_VERSION 5 CACHE STRING "Qt version to use (5 or 6), defaults to 5") endif() # Find dependencies set(QT_COMPONENTS Core Network) set(QT_LIBRARIES Qt6::Core Qt6::Network) if(QAPPLICATION_CLASS STREQUAL QApplication) list(APPEND QT_COMPONENTS Widgets) list(APPEND QT_LIBRARIES Qt6::Widgets) elseif(QAPPLICATION_CLASS STREQUAL QGuiApplication) list(APPEND QT_COMPONENTS Gui) list(APPEND QT_LIBRARIES Qt6::Gui) else() set(QAPPLICATION_CLASS QCoreApplication) endif() find_package(Qt6 COMPONENTS ${QT_COMPONENTS} REQUIRED) option(SINGLEAPPLICATION_DOCUMENTATION "Generate Doxygen documentation" OFF) if(SINGLEAPPLICATION_DOCUMENTATION) find_package(Doxygen) endif() target_link_libraries(${PROJECT_NAME} PUBLIC ${QT_LIBRARIES}) if(WIN32) target_link_libraries(${PROJECT_NAME} PRIVATE advapi32) endif() target_compile_definitions(${PROJECT_NAME} PUBLIC QAPPLICATION_CLASS=${QAPPLICATION_CLASS}) target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_compile_definitions(${PROJECT_NAME} PRIVATE QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII QT_NO_URL_CAST_FROM_STRING QT_NO_CAST_FROM_BYTEARRAY QT_USE_QSTRINGBUILDER QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_KEYWORDS QT_NO_FOREACH ) if(DOXYGEN_FOUND) # Doxygen theme include(FetchContent) FetchContent_Declare(DoxygenAwesome GIT_REPOSITORY https://github.com/jothepro/doxygen-awesome-css GIT_TAG 4cd62308d825fe0396d2f66ffbab45d0e247724c # 2.0.3 ) FetchContent_MakeAvailable(DoxygenAwesome) FetchContent_GetProperties(DoxygenAwesome SOURCE_DIR DoxygenAwesome_SOURCE_DIR) set(DOXYGEN_USE_MDFILE_AS_MAINPAGE README.md) set(DOXYGEN_GENERATE_TREEVIEW YES) set(DOXYGEN_HTML_HEADER ${DoxygenAwesome_SOURCE_DIR}/doxygen-custom/header.html) set(DOXYGEN_HTML_EXTRA_STYLESHEET ${DoxygenAwesome_SOURCE_DIR}/doxygen-awesome.css) set(DOXYGEN_HTML_EXTRA_FILES ${DoxygenAwesome_SOURCE_DIR}/doxygen-awesome-fragment-copy-button.js ${DoxygenAwesome_SOURCE_DIR}/doxygen-awesome-paragraph-link.js ${DoxygenAwesome_SOURCE_DIR}/doxygen-awesome-darkmode-toggle.js ) doxygen_add_docs(${PROJECT_NAME}Documentation singleapplication.h CHANGELOG.md Windows.md README.md ) endif()
I have installed
sudo apt install qt6-base-dev
libqt6opengl6-dev is already installed:
$ aptitude search qt | grep opengl | grep 6 p libqt5opengl5:i386 - Qt 5 OpenGL module v libqt5opengl5-desktop-dev:i386 - p libqt5opengl5-dev:i386 - Qt 5 OpenGL library development files i A libqt6opengl6 - Qt 6 OpenGL module i A libqt6opengl6-dev - Qt 6 OpenGL library development files i A libqt6openglwidgets6 - Qt 6 OpenGL widgets module p python3-pyqt5.qtopengl:i386 - Python 3 bindings for Qt5's OpenGL module
and libqt6gui6:
$ aptitude search qt | grep gui | grep 6 p cmake-qt-gui:i386 - Qt based user interface for CMake (cmake-gui) p libqt5gui5:i386 - Qt 5 GUI module i A libqt6gui6 - Qt 6 GUI module p linguist-qt6 - Qt 6 Linguist
but are errors:
CMake Warning at /home/andrzej/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.8660.186/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeFindDependencyMacro.cmake:76 (find_package): Found package configuration file: /usr/lib/x86_64-linux-gnu/cmake/Qt6Gui/Qt6GuiConfig.cmake but it set Qt6Gui_FOUND to FALSE so package "Qt6Gui" is considered to be NOT FOUND. Reason given by package: Qt6Gui could not be found because dependency WrapOpenGL could not be found. Call Stack (most recent call first): /usr/lib/x86_64-linux-gnu/cmake/Qt6/QtPublicDependencyHelpers.cmake:14 (find_dependency) /usr/lib/x86_64-linux-gnu/cmake/Qt6Widgets/Qt6WidgetsDependencies.cmake:96 (_qt_internal_find_dependencies) /usr/lib/x86_64-linux-gnu/cmake/Qt6Widgets/Qt6WidgetsConfig.cmake:50 (include) /usr/lib/x86_64-linux-gnu/cmake/Qt6/Qt6Config.cmake:219 (find_package) SingleApplication/CMakeLists.txt:31 (find_package) CMake Warning at /usr/lib/x86_64-linux-gnu/cmake/Qt6/Qt6Config.cmake:219 (find_package): Found package configuration file: /usr/lib/x86_64-linux-gnu/cmake/Qt6Widgets/Qt6WidgetsConfig.cmake but it set Qt6Widgets_FOUND to FALSE so package "Qt6Widgets" is considered to be NOT FOUND. Reason given by package: Qt6Widgets could not be found because dependency Qt6Gui could not be found. Call Stack (most recent call first): SingleApplication/CMakeLists.txt:31 (find_package) CMake Error at SingleApplication/CMakeLists.txt:31 (find_package): Found package configuration file: /usr/lib/x86_64-linux-gnu/cmake/Qt6/Qt6Config.cmake but it set Qt6_FOUND to FALSE so package "Qt6" is considered to be NOT FOUND. Reason given by package: Failed to find Qt component "Widgets". Expected Config file at "/usr/lib/x86_64-linux-gnu/cmake/Qt6Widgets/Qt6WidgetsConfig.cmake" exists
Previously I only has been using Qt5, but I want move to Qt6.
KF5 also works with Qt6 since not packaged KF6?Partial Solution:
sudo apt install libglvnd-dev
helps to satisfy cmake, also KF5 syntax highlighter do, but is runtime error - must be KF6 syntax highlighter (?)