Пакет CMake MacOS X с BundleUtiliies для приложения Qt
Я новичок в CMake, и у меня возникла проблема с созданием пакета приложений Qt для MacOS X. Давайте рассмотрим простое приложение виджета "helloworld" только в одномmain.cpp
файл.
// main.cpp
#include <QApplication>
#include <QLabel>
int main(int argc, char** argv)
{
QApplication app(argc,argv);
QLabel lbl("Hello");
lbl.show();
return app.exec();
}
CMakeLists.txt
файл тоже прост.
# CMakeLists.txt
cmake_minimum_required( VERSION 3.0 )
project( QtBundle )
set( CMAKE_INCLUDE_CURRENT_DIR ON )
set( CMAKE_AUTOMOC ON )
set( SOURCES main.cpp )
find_package( Qt5Widgets REQUIRED )
add_executable( ${PROJECT_NAME} MACOSX_BUNDLE ${SOURCES} )
qt5_use_modules( ${PROJECT_NAME} Widgets )
я бегуcmake .. -DCMAKE_PREFIX_PATH=/path/to/Qt5.5.1/
и это порождаетMakefile
вbuild
каталог.
Тогда я бегуmake
и имеютQtBundle.app
каталог, как я хотел иQtBundle.app/Contents/MacOS/QtBundle
исполняемый, ок.
Но когда я запускаю его, я получаю:
This application failed to start because it could not find or load the Qt platform plugin "cocoa".
Reinstalling the application may fix this problem.
Abort trap: 6
Насколько я понимаю, ошибка произошла из-за того, что в комплекте приложений нет никаких компонентов Qt (libs и плагинов Framework), поэтому я запускаюmacdeployqt
и он заполняет каталог bundles большим количеством файлов в папках Framework и PlugIns и приложениевозможность запуска и перемещения в другую систему.
Это частично решает проблему, ноЯ хочу заполнить связку с CMake иBundleUtilities и без инструмента macdeployqt.
К сожалению, я не нашел хорошего и простого примера для развертывания Qt5 с BundleUtilities.
Может ли кто-нибудь помочь мнеизменить мой пример helloworld таким образом, чтобы CMake автоматически создавал готовый к развертыванию пакет?
Заранее спасибо.
Главный вопрос: как использовать CMake BundleUtilities, чтобы получить перемещаемое приложение?