Как заставить QMake сгенерировать правильное .app
Вопрос
У меня есть большой завершающийся проект на C ++, включающий:
- 4 приложения
- более 50 библиотек
- более 20 сторонних библиотек
Проект использует QMake (часть Qt от Trolltech) для создания производственной версии на Linux, но я немного поиграл с ее созданием на macOS.
Я могу встроиться в macOS с помощью QMake просто отлично, но у меня возникли проблемы с созданием final .app.Для этого необходимо собрать все сторонние фреймворки и динамические библиотеки, все динамические библиотеки проекта и убедиться, что приложение их находит.
Я читал в Интернете об использовании install_name_tool, но мне было интересно, существует ли процесс для его автоматизации.
(Возможно, ответ заключается в использовании XCode, см. Связанный вопрос, но у него будут проблемы с построением uic и moc)
Спасибо
Решение
Другие советы
У нас такая же проблема в Last.fm, я посмотрел DeployQt, и от него мало толку, если у вас есть сторонние библиотеки.В конце концов я написал perl-скрипт, который генерирует Makefile, который вы можете использовать для создания .app и / или .dmg.
Я загрузил его сюда: http://www.methylblue.com/detritus/QMake.dmg/
Чтобы использовать его, добавьте это в pro-файл вашего приложения:
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
}
Я уверен, что это еще не все переносимо, но было бы неплохо, если бы кто-то другой воспользовался и посмотрел, так ли это.
По сути, это первый официальный релиз этого кода, поэтому, пожалуйста, присылайте мне отчеты об ошибках, а также улучшения.Спасибо.
Я полностью обошел стороной эту проблему, создав свое Qt-приложение статически на OS X.Хотя для вас это может быть непрактично.