Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. CMake coudn't find a package configuration file provided by "QT"

CMake coudn't find a package configuration file provided by "QT"

Scheduled Pinned Locked Moved Unsolved General and Desktop
7 Posts 3 Posters 1.6k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    Teg Miles
    wrote on 23 May 2024, 16:43 last edited by
    #1

    I transfered my project from OS Manjaro to Windows 11.
    On Manjaro everything works fine but on Windows appears an error connected with CMake:

    Could not find a package configuration file provided by "QT" with any of
    the following names:

    Qt6Config.cmake
    qt6-config.cmake
    Qt5Config.cmake
    qt5-config.cmake

    Add the installation prefix of "QT" to CMAKE_PREFIX_PATH or set "QT_DIR" to
    a directory containing one of the above files. If "QT" provides a separate
    development package or SDK, be sure it has been installed.

    How to fix it properly without binding it to specific path on my PC?
    Why is this CMake configuration doesn't work at Windows?

    The CMake file:

    cmake_minimum_required(VERSION 3.5)
    
    project(Movar_cpp VERSION 0.1 LANGUAGES CXX)
    
    set(CMAKE_AUTOUIC ON)
    set(CMAKE_AUTOMOC ON)
    set(CMAKE_AUTORCC ON)
    
    set(CMAKE_CXX_STANDARD 17)
    set(CMAKE_CXX_STANDARD_REQUIRED ON)
    
    find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
    
    find_package(Qt${QT_VERSION_MAJOR}
        REQUIRED COMPONENTS Widgets LinguistTools WebEngineWidgets TextToSpeech)
    
    set(TS_FILES
        i18n/Movar_cpp_uk_UA.ts
        i18n/Movar_cpp_en_US.ts
        i18n/Movar_cpp_ja_JP.ts
    )
    
    set(PROJECT_SOURCES
            main.cpp
            mainwindow.cpp
            mainwindow.h
            mainwindow.ui
            ${TS_FILES}
    )
    
    if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
        qt_add_executable(Movar_cpp
            MANUAL_FINALIZATION
            ${PROJECT_SOURCES}
        )
    # Define target properties for Android with Qt 6 as:
    #    set_property(TARGET Movar_cpp APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR
    #                 ${CMAKE_CURRENT_SOURCE_DIR}/android)
    # For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation
    
        #qt_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
        qt_add_translations(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
    
    else()
        if(ANDROID)
            add_library(Movar_cpp SHARED
                ${PROJECT_SOURCES}
            )
    # Define properties for Android with Qt 5 after find_package() calls as:
    #    set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
        else()
            add_executable(Movar_cpp
                ${PROJECT_SOURCES}
                dictionarysettings.h dictionarysettings.cpp dictionarysettings.ui
                fileloader.h fileloader.cpp
                app_resources.qrc
                adaptedcompleter.h adaptedcompleter.cpp
                adaptedstringlistmodel.h adaptedstringlistmodel.cpp
            )
        endif()
    
        qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
    endif()
    
    add_custom_target(translations DEPENDS ${QM_FILES})
    add_dependencies(${CMAKE_PROJECT_NAME} translations)
    
    target_link_libraries(Movar_cpp PRIVATE
        Qt${QT_VERSION_MAJOR}::Widgets
        Qt${QT_VERSION_MAJOR}::WebEngineWidgets
        Qt${QT_VERSION_MAJOR}::TextToSpeech
        )
    
    # Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
    # If you are developing for iOS or macOS you should consider setting an
    # explicit, fixed bundle identifier manually though.
    if(${QT_VERSION} VERSION_LESS 6.1.0)
      set(BUNDLE_ID_OPTION MACOSX_BUNDLE_GUI_IDENTIFIER com.example.Movar_cpp)
    endif()
    set_target_properties(Movar_cpp PROPERTIES
        ${BUNDLE_ID_OPTION}
        MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
        MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
        MACOSX_BUNDLE TRUE
        WIN32_EXECUTABLE TRUE
    )
    
    include(GNUInstallDirs)
    install(TARGETS Movar_cpp
        BUNDLE DESTINATION .
        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
    )
    
    if(QT_VERSION_MAJOR EQUAL 6)
        qt_finalize_executable(Movar_cpp)
    endif()
    
    
    
    P 1 Reply Last reply 23 May 2024, 17:23
    0
    • T Teg Miles
      23 May 2024, 16:43

      I transfered my project from OS Manjaro to Windows 11.
      On Manjaro everything works fine but on Windows appears an error connected with CMake:

      Could not find a package configuration file provided by "QT" with any of
      the following names:

      Qt6Config.cmake
      qt6-config.cmake
      Qt5Config.cmake
      qt5-config.cmake

      Add the installation prefix of "QT" to CMAKE_PREFIX_PATH or set "QT_DIR" to
      a directory containing one of the above files. If "QT" provides a separate
      development package or SDK, be sure it has been installed.

      How to fix it properly without binding it to specific path on my PC?
      Why is this CMake configuration doesn't work at Windows?

      The CMake file:

      cmake_minimum_required(VERSION 3.5)
      
      project(Movar_cpp VERSION 0.1 LANGUAGES CXX)
      
      set(CMAKE_AUTOUIC ON)
      set(CMAKE_AUTOMOC ON)
      set(CMAKE_AUTORCC ON)
      
      set(CMAKE_CXX_STANDARD 17)
      set(CMAKE_CXX_STANDARD_REQUIRED ON)
      
      find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
      
      find_package(Qt${QT_VERSION_MAJOR}
          REQUIRED COMPONENTS Widgets LinguistTools WebEngineWidgets TextToSpeech)
      
      set(TS_FILES
          i18n/Movar_cpp_uk_UA.ts
          i18n/Movar_cpp_en_US.ts
          i18n/Movar_cpp_ja_JP.ts
      )
      
      set(PROJECT_SOURCES
              main.cpp
              mainwindow.cpp
              mainwindow.h
              mainwindow.ui
              ${TS_FILES}
      )
      
      if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
          qt_add_executable(Movar_cpp
              MANUAL_FINALIZATION
              ${PROJECT_SOURCES}
          )
      # Define target properties for Android with Qt 6 as:
      #    set_property(TARGET Movar_cpp APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR
      #                 ${CMAKE_CURRENT_SOURCE_DIR}/android)
      # For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation
      
          #qt_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
          qt_add_translations(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
      
      else()
          if(ANDROID)
              add_library(Movar_cpp SHARED
                  ${PROJECT_SOURCES}
              )
      # Define properties for Android with Qt 5 after find_package() calls as:
      #    set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
          else()
              add_executable(Movar_cpp
                  ${PROJECT_SOURCES}
                  dictionarysettings.h dictionarysettings.cpp dictionarysettings.ui
                  fileloader.h fileloader.cpp
                  app_resources.qrc
                  adaptedcompleter.h adaptedcompleter.cpp
                  adaptedstringlistmodel.h adaptedstringlistmodel.cpp
              )
          endif()
      
          qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
      endif()
      
      add_custom_target(translations DEPENDS ${QM_FILES})
      add_dependencies(${CMAKE_PROJECT_NAME} translations)
      
      target_link_libraries(Movar_cpp PRIVATE
          Qt${QT_VERSION_MAJOR}::Widgets
          Qt${QT_VERSION_MAJOR}::WebEngineWidgets
          Qt${QT_VERSION_MAJOR}::TextToSpeech
          )
      
      # Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
      # If you are developing for iOS or macOS you should consider setting an
      # explicit, fixed bundle identifier manually though.
      if(${QT_VERSION} VERSION_LESS 6.1.0)
        set(BUNDLE_ID_OPTION MACOSX_BUNDLE_GUI_IDENTIFIER com.example.Movar_cpp)
      endif()
      set_target_properties(Movar_cpp PROPERTIES
          ${BUNDLE_ID_OPTION}
          MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
          MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
          MACOSX_BUNDLE TRUE
          WIN32_EXECUTABLE TRUE
      )
      
      include(GNUInstallDirs)
      install(TARGETS Movar_cpp
          BUNDLE DESTINATION .
          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
      )
      
      if(QT_VERSION_MAJOR EQUAL 6)
          qt_finalize_executable(Movar_cpp)
      endif()
      
      
      
      P Offline
      P Offline
      Pl45m4
      wrote on 23 May 2024, 17:23 last edited by Pl45m4
      #2

      @Teg-Miles said in CMake coudn't find a package configuration file provided by "QT":

      find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)

      I think it should work if you remove this line (on Windows).
      The capital T is probably what's causing this error.
      Since this line works?!

      find_package(Qt${QT_VERSION_MAJOR}
      REQUIRED COMPONENTS Widgets LinguistTools WebEngineWidgets TextToSpeech)


      If debugging is the process of removing software bugs, then programming must be the process of putting them in.

      ~E. W. Dijkstra

      T 1 Reply Last reply 23 May 2024, 20:29
      0
      • P Pl45m4
        23 May 2024, 17:23

        @Teg-Miles said in CMake coudn't find a package configuration file provided by "QT":

        find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)

        I think it should work if you remove this line (on Windows).
        The capital T is probably what's causing this error.
        Since this line works?!

        find_package(Qt${QT_VERSION_MAJOR}
        REQUIRED COMPONENTS Widgets LinguistTools WebEngineWidgets TextToSpeech)

        T Offline
        T Offline
        Teg Miles
        wrote on 23 May 2024, 20:29 last edited by
        #3

        @Pl45m4 It works only partially causing another errors to appears and forcing to rewrite rest of the CMake.

        1 Reply Last reply
        0
        • T Offline
          T Offline
          Teg Miles
          wrote on 26 May 2024, 10:37 last edited by
          #4

          I rewrote the CMakeLists:

          cmake_minimum_required(VERSION 3.5)
          
          project(Movar_cpp VERSION 1.0.2 LANGUAGES CXX)
          
          set(CMAKE_CXX_STANDARD 17)
          set(CMAKE_CXX_STANDARD_REQUIRED ON)
          
          find_package(Qt6 REQUIRED COMPONENTS Widgets
              LinguistTools WebEngineWidgets TextToSpeech)
          qt_standard_project_setup()
          
          qt_add_resources(images
              PREFIX "/icons"
              FILES movar.png
          )
          
          qt_add_translations(Movar_cpp
              TS_FILES
              i18n/Movar_cpp_uk_UA.ts
              i18n/Movar_cpp_en_US.ts
              i18n/Movar_cpp_ja_JP.ts
              )
          
          qt_add_executable(Movar_cpp
              mainwindow.ui
              mainwindow.h
              mainwindow.cpp
              main.cpp
              dictionarysettings.h
              dictionarysettings.cpp
              dictionarysettings.ui
              fileloader.h
              fileloader.cpp
              app_resources.qrc
              adaptedcompleter.h
              adaptedcompleter.cpp
              adaptedstringlistmodel.h
              adaptedstringlistmodel.cpp
          )
          
          target_link_libraries(Movar_cpp PRIVATE
              Qt6::Widgets
              Qt6::WebEngineWidgets
              Qt6::TextToSpeech)
          
          set_target_properties(Movar_cpp PROPERTIES
              WIN32_EXECUTABLE ON
          )
          
          
          install(TARGETS Movar_cpp
              BUNDLE  DESTINATION .
              RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
          )
          
          qt_generate_deploy_app_script(
              TARGET Movar_cpp
              OUTPUT_SCRIPT deploy_script
              NO_UNSUPPORTED_PLATFORM_ERROR
          )
          install(SCRIPT ${deploy_script})
          
          

          I found out that the problem is in qt_add_translation. It doesn't see location of my translation files. And it tries to create it's own folder. I don't know what to do with that.

          Also it doesn't download logo icon to left upper corner of the main window.

           QApplication::setWindowIcon(QIcon(":images/icons/movar.png"));
          
          1 Reply Last reply
          0
          • C Offline
            C Offline
            Christian Ehrlicher
            Lifetime Qt Champion
            wrote on 26 May 2024, 10:53 last edited by
            #5

            This looks like the new windows 11 style added in Qt6.7. If you don't like it use the old windowsvista style.

            Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
            Visit the Qt Academy at https://academy.qt.io/catalog

            P 1 Reply Last reply 26 May 2024, 13:53
            0
            • C Christian Ehrlicher
              26 May 2024, 10:53

              This looks like the new windows 11 style added in Qt6.7. If you don't like it use the old windowsvista style.

              P Offline
              P Offline
              Pl45m4
              wrote on 26 May 2024, 13:53 last edited by
              #6

              @Christian-Ehrlicher said in CMake coudn't find a package configuration file provided by "QT":

              This looks like the new windows 11 style added in Qt6.7. If you don't like it use the old windowsvista style.

              I think you've mistaken the topic :D
              Your reply probably belongs here


              If debugging is the process of removing software bugs, then programming must be the process of putting them in.

              ~E. W. Dijkstra

              C 1 Reply Last reply 26 May 2024, 15:15
              0
              • P Pl45m4
                26 May 2024, 13:53

                @Christian-Ehrlicher said in CMake coudn't find a package configuration file provided by "QT":

                This looks like the new windows 11 style added in Qt6.7. If you don't like it use the old windowsvista style.

                I think you've mistaken the topic :D
                Your reply probably belongs here

                C Offline
                C Offline
                Christian Ehrlicher
                Lifetime Qt Champion
                wrote on 26 May 2024, 15:15 last edited by
                #7

                @Pl45m4 somehow yes.... 🙂

                Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                Visit the Qt Academy at https://academy.qt.io/catalog

                1 Reply Last reply
                0

                6/7

                26 May 2024, 13:53

                • Login

                • Login or register to search.
                6 out of 7
                • First post
                  6/7
                  Last post
                0
                • Categories
                • Recent
                • Tags
                • Popular
                • Users
                • Groups
                • Search
                • Get Qt Extensions
                • Unsolved