Fazendo com que o QMake gere um .app adequado
Pergunta
Eu tenho um grande projeto C++ existente envolvendo:
- 4 aplicações
- Mais de 50 bibliotecas
- Mais de 20 bibliotecas de terceiros
O projeto usa QMake (parte do Qt da Trolltech) para construir a versão de produção no Linux, mas tenho tentado construí-la no MacOS.
Posso construir no MacOS usando QMake perfeitamente, mas estou tendo problemas para produzir o .app final.É necessário coletar todas as estruturas e bibliotecas dinâmicas de terceiros, todas as bibliotecas dinâmicas do projeto e garantir que o aplicativo as encontre.
Eu li on-line sobre o uso de install_name_tool, mas queria saber se existe um processo para automatizá-lo.
(Talvez a resposta seja usar o XCode, veja a pergunta relacionada, mas haveria problemas com a construção de uic e moc)
Obrigado
Solução
Outras dicas
Temos o mesmo problema no Last.fm, olhei no DeployQt e não adianta muito se você tiver bibliotecas de terceiros.No final escrevi um script perl que gera um Makefile, que você pode usar para gerar um .app e/ou .dmg.
Eu carreguei aqui: http://www.metilblue.com/detritus/QMake.dmg/
Para usá-lo, adicione isto ao arquivo profissional do seu aplicativo:
macx*:!macx-xcode:release {
system( QT=\'$$QT\' QMAKE_LIBDIR_QT=\'$$QMAKE_LIBDIR_QT\' $$ROOT_DIR/common/dist/mac/Makefile.dmg.pl $$DESTDIR $$VERSION $$LIBS > Makefile.dmg )
QMAKE_EXTRA_INCLUDES += Makefile.dmg
}
Tenho certeza de que ainda não é portátil, mas seria bom que outra pessoa usasse e verificasse se é assim.
Este é basicamente o primeiro lançamento oficial deste código, então envie-me relatórios de bugs e também melhorias.Obrigado.
Evitei esse problema completamente construindo meu aplicativo Qt estaticamente no OS X.Isso pode não ser prático para você.