Pacote CMake MacOS X com BundleUtiliies para aplicação Qt
Sou iniciante no CMake e tenho um problema com a criação de um pacote de aplicativos Qt para o MacOS X. Vamos considerar um aplicativo simples "helloworld" de widget em apenas ummain.cpp
Arquivo.
// main.cpp
#include <QApplication>
#include <QLabel>
int main(int argc, char** argv)
{
QApplication app(argc,argv);
QLabel lbl("Hello");
lbl.show();
return app.exec();
}
oCMakeLists.txt
arquivo também é simples.
# 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 )
eu corrocmake .. -DCMAKE_PREFIX_PATH=/path/to/Qt5.5.1/
e geraMakefile
nobuild
diretório.
Então eu corromake
e temQtBundle.app
diretório como eu queria eQtBundle.app/Contents/MacOS/QtBundle
executável, OK.
Mas quando inicio, recebo:
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
Pelo que entendi, esse erro ocorreu porque o pacote de aplicativos não possui itens Qt (bibliotecas e plug-ins do Framework), então eu corromacdeployqt
e preenche o diretório de pacotes configuráveis com muitos arquivos nas pastas Framework e PlugIns e o aplicativo écapaz de executar e realocar para outro sistema.
Resolve parcialmente o problema, masQuero preencher o pacote com o CMake eUtilitários e sem a ferramenta macdeployqt.
Infelizmente, não encontrei nenhum exemplo bom e simples para a implantação do Qt5 com o BundleUtilities.
Alguém poderia me ajudar amodificar meu exemplo de 'helloworld' de forma que o CMake crie automaticamente um pacote pronto para implantar?
Desde já, obrigado.
Pergunta principal: como usar o CMake BundleUtilities para obter um aplicativo realocável?