CMake coudn't find a package configuration file provided by "QT"
-
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.cmakeAdd 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()
-
@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) -
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"));
-
This looks like the new windows 11 style added in Qt6.7. If you don't like it use the old windowsvista style.
-
@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 -
@Pl45m4 somehow yes.... 🙂