From d430df770b2236fcd01ef4cbf99487be246697d8 Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Wed, 10 Jun 2020 21:24:47 -0700 Subject: [PATCH] More work --- .travis.yml | 2 +- QGCInstaller.pri | 63 --------------- QGCPostLinkCommon.pri | 142 ++++++++++++++++++++++++++++++++ QGCPostLinkInstaller.pri | 67 +++++++++++++++ QGCSetup.pri | 153 ----------------------------------- qgroundcontrol.pro | 21 +++-- tools/prepare_gstreamer_framework.sh | 2 +- 7 files changed, 221 insertions(+), 229 deletions(-) delete mode 100644 QGCInstaller.pri create mode 100644 QGCPostLinkCommon.pri create mode 100644 QGCPostLinkInstaller.pri delete mode 100644 QGCSetup.pri diff --git a/.travis.yml b/.travis.yml index 11443b6..32cb870 100644 --- a/.travis.yml +++ b/.travis.yml @@ -212,7 +212,7 @@ script: mkdir -p ~/.config/QtProject/ && cp ${TRAVIS_BUILD_DIR}/test/qtlogging.ini ~/.config/QtProject/ && export QT_FATAL_WARNINGS=1 && - ./debug/qgroundcontrol-start.sh --unittest; + ./qgc-app/qgroundcontrol-start.sh --unittest; fi after_success: diff --git a/QGCInstaller.pri b/QGCInstaller.pri deleted file mode 100644 index 80bbd1d..0000000 --- a/QGCInstaller.pri +++ /dev/null @@ -1,63 +0,0 @@ -################################################################################ -# -# (c) 2009-2020 QGROUNDCONTROL PROJECT -# -# QGroundControl is licensed according to the terms in the file -# COPYING.md in the root of the source code directory. -# -################################################################################ - -installer { - DEFINES += QGC_INSTALL_RELEASE - MacBuild { - VideoEnabled { - # Install the gstreamer framework - # This will: - # Copy from the original distibution into DESTDIR/gstwork (if not already there) - # Prune the framework, removing stuff we don't need - # Relocate all dylibs so they can work under @executable_path/... - # Copy the result into the app bundle - # Make sure qgroundcontrol can find them - message("Preparing GStreamer Framework") - QMAKE_POST_LINK += && $$BASEDIR/tools/prepare_gstreamer_framework.sh $${OUT_PWD}/gstwork/ $${DESTDIR}/$${TARGET}.app $${TARGET} - } else { - message("Skipping GStreamer Framework") - } - - # We cd to release directory so we can run macdeployqt without a path to the - # qgroundcontrol.app file. If you specify a path to the .app file the symbolic - # links to plugins will not be created correctly. - QMAKE_POST_LINK += && cd $${DESTDIR} && $$dirname(QMAKE_QMAKE)/macdeployqt $${TARGET}.app -appstore-compliant -verbose=1 -qmldir=$${BASEDIR}/src - - # macdeployqt is missing some relocations once in a while. "Fix" it: - QMAKE_POST_LINK += && python $$BASEDIR/tools/osxrelocator.py $${TARGET}.app/Contents @rpath @executable_path/../Frameworks -r > /dev/null 2>&1 - - # Create package - QMAKE_POST_LINK += && hdiutil create /tmp/tmp.dmg -ov -volname "$${TARGET}-$${MAC_VERSION}" -fs HFS+ -srcfolder "$${DESTDIR}/" - QMAKE_POST_LINK += && mkdir -p $${DESTDIR}/package - QMAKE_POST_LINK += && hdiutil convert /tmp/tmp.dmg -format UDBZ -o $${DESTDIR}/package/$${TARGET}.dmg - QMAKE_POST_LINK += && rm /tmp/tmp.dmg - } - WindowsBuild { - QMAKE_POST_LINK += $$escape_expand(\\n) cd $$BASEDIR_WIN && $$quote("\"C:\\Program Files \(x86\)\\NSIS\\makensis.exe\"" $$(QGC_NSIS_INSTALLER_PARAMETERS) /DINSTALLER_ICON="\"$${QGC_INSTALLER_ICON}\"" /DHEADER_BITMAP="\"$${QGC_INSTALLER_HEADER_BITMAP}\"" /DAPPNAME="\"$${QGC_APP_NAME}\"" /DEXENAME="\"$${TARGET}\"" /DORGNAME="\"$${QGC_ORG_NAME}\"" /DDESTDIR=$${DESTDIR} /NOCD "\"/XOutFile $${DESTDIR_WIN}\\$${TARGET}-installer.exe\"" "$$BASEDIR_WIN\\deploy\\qgroundcontrol_installer.nsi") - OTHER_FILES += deploy/qgroundcontrol_installer.nsi - } - LinuxBuild { - #-- TODO: This uses hardcoded paths. It should use $${DESTDIR} - QMAKE_POST_LINK += && mkdir -p release/package - QMAKE_POST_LINK += && tar -cj --exclude='package' -f release/package/QGroundControl.tar.bz2 release --transform 's/release/qgroundcontrol/' - } - AndroidBuild { - QMAKE_POST_LINK += && mkdir -p $${DESTDIR}/package - QMAKE_POST_LINK += && make install INSTALL_ROOT=$${DESTDIR}/android-build/ - QMAKE_POST_LINK += && androiddeployqt --input android-libQGroundControl.so-deployment-settings.json --output $${DESTDIR}/android-build --deployment bundled --gradle --sign $${BASEDIR}/android/android_release.keystore dagar --storepass $$(ANDROID_STOREPASS) - contains(QT_ARCH, arm) { - QGC_APK_BITNESS = "32" - } else:contains(QT_ARCH, arm64) { - QGC_APK_BITNESS = "64" - } else { - QGC_APK_BITNESS = "" - } - QMAKE_POST_LINK += && cp $${DESTDIR}/android-build/build/outputs/apk/android-build-release-signed.apk $${DESTDIR}/package/QGroundControl$${QGC_APK_BITNESS}.apk - } -} diff --git a/QGCPostLinkCommon.pri b/QGCPostLinkCommon.pri new file mode 100644 index 0000000..a545aa8 --- /dev/null +++ b/QGCPostLinkCommon.pri @@ -0,0 +1,142 @@ +################################################################################ +# +# (c) 2009-2020 QGROUNDCONTROL PROJECT +# +# QGroundControl is licensed according to the terms in the file +# COPYING.md in the root of the source code directory. +# +################################################################################ + +# These are the Post Link steps which are common to all builds + +# +# Perform platform specific setup +# + +MacBuild { + macx-xcode { + # XCode Project builds create the .app in BUILT_PRODUCTS_DIR. Copy it to the normal location for QtCreator builds. + QMAKE_POST_LINK += cp -r $BUILT_PRODUCTS_DIR/$${TARGET}.app . + } + + # Copy non-standard frameworks into app package + QMAKE_POST_LINK += rsync -a --delete $$BASEDIR/libs/Frameworks $${TARGET}.app/Contents/ + # SDL2 Framework + QMAKE_POST_LINK += && install_name_tool -change "@rpath/SDL2.framework/Versions/A/SDL2" "@executable_path/../Frameworks/SDL2.framework/Versions/A/SDL2" $${TARGET}.app/Contents/MacOS/$${TARGET} + # AirMap + contains (DEFINES, QGC_AIRMAP_ENABLED) { + QMAKE_POST_LINK += && rsync -a $$BASEDIR/libs/airmapd/macOS/$$AIRMAP_QT_PATH/* $${TARGET}.app/Contents/Frameworks/ + QMAKE_POST_LINK += && install_name_tool -change "@rpath/libairmap-qt.0.0.1.dylib" "@executable_path/../Frameworks/libairmap-qt.0.0.1.dylib" $${TARGET}.app/Contents/MacOS/$${TARGET} + } +} + +WindowsBuild { + BASEDIR_WIN = $$replace(BASEDIR, "/", "\\") + DESTDIR_WIN = $$replace(DESTDIR, "/", "\\") + QT_BIN_DIR = $$dirname(QMAKE_QMAKE) + + # Copy dependencies + DebugBuild: DLL_QT_DEBUGCHAR = "d" + ReleaseBuild: DLL_QT_DEBUGCHAR = "" + COPY_FILE_LIST = \ + $$BASEDIR\\libs\\sdl2\\msvc\\lib\\x64\\SDL2.dll \ + $$BASEDIR\\deploy\\libcrypto-1_1-x64.dll \ + $$BASEDIR_WIN\\deploy\\libssl-1_1-x64.dll + + for(COPY_FILE, COPY_FILE_LIST) { + QMAKE_POST_LINK += $$escape_expand(\\n) $$QMAKE_COPY \"$$COPY_FILE\" \"$$DESTDIR_WIN\" + } + + ReleaseBuild { + # Copy Visual Studio DLLs + # Note that this is only done for release because the debugging versions of these DLLs cannot be redistributed. + QMAKE_POST_LINK += $$escape_expand(\\n) $$QMAKE_COPY \"$$BASEDIR\\deploy\\msvcp140.dll\" \"$$DESTDIR_WIN\" + QMAKE_POST_LINK += $$escape_expand(\\n) $$QMAKE_COPY \"$$BASEDIR\\deploy\\vcruntime140.dll\" \"$$DESTDIR_WIN\" + } + + DEPLOY_TARGET = $$shell_quote($$shell_path($$DESTDIR_WIN\\$${TARGET}.exe)) + QMAKE_POST_LINK += $$escape_expand(\\n) $$QT_BIN_DIR\\windeployqt --qmldir=$${BASEDIR_WIN}\\src $${DEPLOY_TARGET} +} + +LinuxBuild { + QMAKE_POST_LINK += && mkdir -p $$DESTDIR/Qt/libs && mkdir -p $$DESTDIR/Qt/plugins + + # QT_INSTALL_LIBS + QT_LIB_LIST += \ + libQt5Charts.so.5 \ + libQt5Core.so.5 \ + libQt5DBus.so.5 \ + libQt5Gui.so.5 \ + libQt5Location.so.5 \ + libQt5Multimedia.so.5 \ + libQt5MultimediaQuick.so.5 \ + libQt5Network.so.5 \ + libQt5OpenGL.so.5 \ + libQt5Positioning.so.5 \ + libQt5PositioningQuick.so.5 \ + libQt5PrintSupport.so.5 \ + libQt5Qml.so.5 \ + libQt5Quick.so.5 \ + libQt5QuickControls2.so.5 \ + libQt5QuickTemplates2.so.5 \ + libQt5QuickWidgets.so.5 \ + libQt5SerialPort.so.5 \ + libQt5Sql.so.5 \ + libQt5Svg.so.5 \ + libQt5Test.so.5 \ + libQt5Widgets.so.5 \ + libQt5X11Extras.so.5 \ + libQt5XcbQpa.so.5 \ + libQt5Xml.so.5 \ + libicui18n.so* \ + libQt5TextToSpeech.so.5 + + !contains(DEFINES, __rasp_pi2__) { + # Some Qt distributions link with *.so.56 + QT_LIB_LIST += \ + libicudata.so.56 \ + libicui18n.so.56 \ + libicuuc.so.56 + } + + for(QT_LIB, QT_LIB_LIST) { + QMAKE_POST_LINK += && $$QMAKE_COPY --dereference $$[QT_INSTALL_LIBS]/$$QT_LIB $$DESTDIR/Qt/libs/ + } + + # QT_INSTALL_PLUGINS + QT_PLUGIN_LIST = \ + bearer \ + geoservices \ + iconengines \ + imageformats \ + platforminputcontexts \ + platforms \ + position \ + sqldrivers \ + texttospeech + + !contains(DEFINES, __rasp_pi2__) { + QT_PLUGIN_LIST += xcbglintegrations + } + + for(QT_PLUGIN, QT_PLUGIN_LIST) { + QMAKE_POST_LINK += && $$QMAKE_COPY --dereference --recursive $$[QT_INSTALL_PLUGINS]/$$QT_PLUGIN $$DESTDIR/Qt/plugins/ + } + + # QT_INSTALL_QML + QMAKE_POST_LINK += && $$QMAKE_COPY --dereference --recursive $$[QT_INSTALL_QML] $$DESTDIR/Qt/ + + # Airmap + contains (DEFINES, QGC_AIRMAP_ENABLED) { + QMAKE_POST_LINK += && $$QMAKE_COPY $$PWD/libs/airmapd/linux/Qt.5.11.0/libairmap-qt.so.0.0.1 $$DESTDIR/Qt/libs/ + } + + # QGroundControl start script + contains (CONFIG, QGC_DISABLE_CUSTOM_BUILD) | !exists($$PWD/custom/custom.pri) { + QMAKE_POST_LINK += && $$QMAKE_COPY $$BASEDIR/deploy/qgroundcontrol-start.sh $$DESTDIR + QMAKE_POST_LINK += && $$QMAKE_COPY $$BASEDIR/deploy/qgroundcontrol.desktop $$DESTDIR + QMAKE_POST_LINK += && $$QMAKE_COPY $$BASEDIR/resources/icons/qgroundcontrol.png $$DESTDIR + } else { + include($$PWD/custom/custom_deploy.pri) + } +} diff --git a/QGCPostLinkInstaller.pri b/QGCPostLinkInstaller.pri new file mode 100644 index 0000000..b2a2750 --- /dev/null +++ b/QGCPostLinkInstaller.pri @@ -0,0 +1,67 @@ +################################################################################ +# +# (c) 2009-2020 QGROUNDCONTROL PROJECT +# +# QGroundControl is licensed according to the terms in the file +# COPYING.md in the root of the source code directory. +# +################################################################################ + +# These are the Post Link steps which are specific to installer builds + +installer { + DEFINES += QGC_INSTALL_RELEASE + + MacBuild { + QMAKE_POST_LINK += && mkdir -p staging + QMAKE_POST_LINK += && cp -r $${TARGET}.app staging # fixme rsync instead + + VideoEnabled { + # Install the gstreamer framework + # This will: + # Copy from the original distibution into DESTDIR/gstwork (if not already there) + # Prune the framework, removing stuff we don't need + # Relocate all dylibs so they can work under @executable_path/... + # Copy the result into the app bundle + # Make sure qgroundcontrol can find them + QMAKE_POST_LINK += && $$BASEDIR/tools/prepare_gstreamer_framework.sh $${OUT_PWD}/gstwork/ staging/$${TARGET}.app $${TARGET} + } + + + QMAKE_POST_LINK += && echo macdeployqt + QMAKE_POST_LINK += && $$dirname(QMAKE_QMAKE)/macdeployqt staging/$${TARGET}.app -appstore-compliant -verbose=1 -qmldir=$${BASEDIR}/src + + # macdeployqt is missing some relocations once in a while. "Fix" it: + QMAKE_POST_LINK += && echo osxrelocator + QMAKE_POST_LINK += && python $$BASEDIR/tools/osxrelocator.py staging/$${TARGET}.app/Contents @rpath @executable_path/../Frameworks -r > /dev/null 2>&1 + + # Create package + QMAKE_POST_LINK += && echo hdiutil + QMAKE_POST_LINK += && mkdir -p package + QMAKE_POST_LINK += && hdiutil create /tmp/tmp.dmg -ov -volname "$${TARGET}-$${MAC_VERSION}" -fs HFS+ -srcfolder "staging" + QMAKE_POST_LINK += && hdiutil convert /tmp/tmp.dmg -format UDBZ -o package/$${TARGET}.dmg + QMAKE_POST_LINK += && rm /tmp/tmp.dmg + } + WindowsBuild { + QMAKE_POST_LINK += $$escape_expand(\\n) cd $$BASEDIR_WIN && $$quote("\"C:\\Program Files \(x86\)\\NSIS\\makensis.exe\"" $$(QGC_NSIS_INSTALLER_PARAMETERS) /DINSTALLER_ICON="\"$${QGC_INSTALLER_ICON}\"" /DHEADER_BITMAP="\"$${QGC_INSTALLER_HEADER_BITMAP}\"" /DAPPNAME="\"$${QGC_APP_NAME}\"" /DEXENAME="\"$${TARGET}\"" /DORGNAME="\"$${QGC_ORG_NAME}\"" /DDESTDIR=$${DESTDIR} /NOCD "\"/XOutFile $${DESTDIR_WIN}\\$${TARGET}-installer.exe\"" "$$BASEDIR_WIN\\deploy\\qgroundcontrol_installer.nsi") + OTHER_FILES += deploy/qgroundcontrol_installer.nsi + } + LinuxBuild { + #-- TODO: This uses hardcoded paths. It should use $${DESTDIR} + QMAKE_POST_LINK += && mkdir -p release/package + QMAKE_POST_LINK += && tar -cj --exclude='package' -f release/package/QGroundControl.tar.bz2 release --transform 's/release/qgroundcontrol/' + } + AndroidBuild { + QMAKE_POST_LINK += && mkdir -p package + QMAKE_POST_LINK += && make install INSTALL_ROOT=android-build/ + QMAKE_POST_LINK += && androiddeployqt --input android-libQGroundControl.so-deployment-settings.json --output android-build --deployment bundled --gradle --sign $${BASEDIR}/android/android_release.keystore dagar --storepass $$(ANDROID_STOREPASS) + contains(QT_ARCH, arm) { + QGC_APK_BITNESS = "32" + } else:contains(QT_ARCH, arm64) { + QGC_APK_BITNESS = "64" + } else { + QGC_APK_BITNESS = "" + } + QMAKE_POST_LINK += && cp android-build/build/outputs/apk/android-build-release-signed.apk package/QGroundControl$${QGC_APK_BITNESS}.apk + } +} diff --git a/QGCSetup.pri b/QGCSetup.pri deleted file mode 100644 index fb92429..0000000 --- a/QGCSetup.pri +++ /dev/null @@ -1,153 +0,0 @@ -################################################################################ -# -# (c) 2009-2020 QGROUNDCONTROL PROJECT -# -# QGroundControl is licensed according to the terms in the file -# COPYING.md in the root of the source code directory. -# -################################################################################ - -QMAKE_POST_LINK += echo "QGC Post Link" - -# -# Perform platform specific setup -# - -MacBuild { - # The Post Link phase happens before a qmake built XCode Project does the "Project Copy" phase. - # This means the QGroundControl.app is not yet in the DESTDIR. It is still in XCode BUILT_PRODUCTS_DIR location. - # I could figure out a way to make it work without duplicating the code. This is because XCode puts these command - # into a shell script and Qt Creator put them into a makefile. - macx-xcode { - # Copy non-standard frameworks into app package - QMAKE_POST_LINK += && rsync -a --delete $$BASEDIR/libs/Frameworks $BUILT_PRODUCTS_DIR/$${TARGET}.app/Contents/ - # SDL2 Framework - QMAKE_POST_LINK += && install_name_tool -change "@rpath/SDL2.framework/Versions/A/SDL2" "@executable_path/../Frameworks/SDL2.framework/Versions/A/SDL2" $BUILT_PRODUCTS_DIR/$${TARGET}.app/Contents/MacOS/$${TARGET} - # AirMap - contains (DEFINES, QGC_AIRMAP_ENABLED) { - QMAKE_POST_LINK += && rsync -a $$BASEDIR/libs/airmapd/macOS/$$AIRMAP_QT_PATH/* $BUILT_PRODUCTS_DIR/$${TARGET}.app/Contents/Frameworks/ - QMAKE_POST_LINK += && install_name_tool -change "@rpath/libairmap-qt.0.0.1.dylib" "@executable_path/../Frameworks/libairmap-qt.0.0.1.dylib" $BUILT_PRODUCTS_DIR/$${TARGET}.app/Contents/MacOS/$${TARGET} - } - } else { - # Copy non-standard frameworks into app package - QMAKE_POST_LINK += && rsync -a --delete $$BASEDIR/libs/Frameworks $$DESTDIR/$${TARGET}.app/Contents/ - # SDL2 Framework - QMAKE_POST_LINK += && install_name_tool -change "@rpath/SDL2.framework/Versions/A/SDL2" "@executable_path/../Frameworks/SDL2.framework/Versions/A/SDL2" $$DESTDIR/$${TARGET}.app/Contents/MacOS/$${TARGET} - # AirMap - contains (DEFINES, QGC_AIRMAP_ENABLED) { - QMAKE_POST_LINK += && rsync -a $$BASEDIR/libs/airmapd/macOS/$$AIRMAP_QT_PATH/* $$DESTDIR/$${TARGET}.app/Contents/Frameworks/ - QMAKE_POST_LINK += && install_name_tool -change "@rpath/libairmap-qt.0.0.1.dylib" "@executable_path/../Frameworks/libairmap-qt.0.0.1.dylib" $$DESTDIR/$${TARGET}.app/Contents/MacOS/$${TARGET} - } - } -} - -WindowsBuild { - BASEDIR_WIN = $$replace(BASEDIR, "/", "\\") - DESTDIR_WIN = $$replace(DESTDIR, "/", "\\") - QT_BIN_DIR = $$dirname(QMAKE_QMAKE) - - # Copy dependencies - DebugBuild: DLL_QT_DEBUGCHAR = "d" - ReleaseBuild: DLL_QT_DEBUGCHAR = "" - COPY_FILE_LIST = \ - $$BASEDIR\\libs\\sdl2\\msvc\\lib\\x64\\SDL2.dll \ - $$BASEDIR\\deploy\\libcrypto-1_1-x64.dll \ - $$BASEDIR_WIN\\deploy\\libssl-1_1-x64.dll - - for(COPY_FILE, COPY_FILE_LIST) { - QMAKE_POST_LINK += $$escape_expand(\\n) $$QMAKE_COPY \"$$COPY_FILE\" \"$$DESTDIR_WIN\" - } - - ReleaseBuild { - # Copy Visual Studio DLLs - # Note that this is only done for release because the debugging versions of these DLLs cannot be redistributed. - QMAKE_POST_LINK += $$escape_expand(\\n) $$QMAKE_COPY \"$$BASEDIR\\deploy\\msvcp140.dll\" \"$$DESTDIR_WIN\" - QMAKE_POST_LINK += $$escape_expand(\\n) $$QMAKE_COPY \"$$BASEDIR\\deploy\\vcruntime140.dll\" \"$$DESTDIR_WIN\" - } - - DEPLOY_TARGET = $$shell_quote($$shell_path($$DESTDIR_WIN\\$${TARGET}.exe)) - QMAKE_POST_LINK += $$escape_expand(\\n) $$QT_BIN_DIR\\windeployqt --qmldir=$${BASEDIR_WIN}\\src $${DEPLOY_TARGET} -} - -LinuxBuild { - QMAKE_POST_LINK += && mkdir -p $$DESTDIR/Qt/libs && mkdir -p $$DESTDIR/Qt/plugins - - # QT_INSTALL_LIBS - QT_LIB_LIST += \ - libQt5Charts.so.5 \ - libQt5Core.so.5 \ - libQt5DBus.so.5 \ - libQt5Gui.so.5 \ - libQt5Location.so.5 \ - libQt5Multimedia.so.5 \ - libQt5MultimediaQuick.so.5 \ - libQt5Network.so.5 \ - libQt5OpenGL.so.5 \ - libQt5Positioning.so.5 \ - libQt5PositioningQuick.so.5 \ - libQt5PrintSupport.so.5 \ - libQt5Qml.so.5 \ - libQt5Quick.so.5 \ - libQt5QuickControls2.so.5 \ - libQt5QuickTemplates2.so.5 \ - libQt5QuickWidgets.so.5 \ - libQt5SerialPort.so.5 \ - libQt5Sql.so.5 \ - libQt5Svg.so.5 \ - libQt5Test.so.5 \ - libQt5Widgets.so.5 \ - libQt5X11Extras.so.5 \ - libQt5XcbQpa.so.5 \ - libQt5Xml.so.5 \ - libicui18n.so* \ - libQt5TextToSpeech.so.5 - - !contains(DEFINES, __rasp_pi2__) { - # Some Qt distributions link with *.so.56 - QT_LIB_LIST += \ - libicudata.so.56 \ - libicui18n.so.56 \ - libicuuc.so.56 - } - - for(QT_LIB, QT_LIB_LIST) { - QMAKE_POST_LINK += && $$QMAKE_COPY --dereference $$[QT_INSTALL_LIBS]/$$QT_LIB $$DESTDIR/Qt/libs/ - } - - # QT_INSTALL_PLUGINS - QT_PLUGIN_LIST = \ - bearer \ - geoservices \ - iconengines \ - imageformats \ - platforminputcontexts \ - platforms \ - position \ - sqldrivers \ - texttospeech - - !contains(DEFINES, __rasp_pi2__) { - QT_PLUGIN_LIST += xcbglintegrations - } - - for(QT_PLUGIN, QT_PLUGIN_LIST) { - QMAKE_POST_LINK += && $$QMAKE_COPY --dereference --recursive $$[QT_INSTALL_PLUGINS]/$$QT_PLUGIN $$DESTDIR/Qt/plugins/ - } - - # QT_INSTALL_QML - QMAKE_POST_LINK += && $$QMAKE_COPY --dereference --recursive $$[QT_INSTALL_QML] $$DESTDIR/Qt/ - - # Airmap - contains (DEFINES, QGC_AIRMAP_ENABLED) { - QMAKE_POST_LINK += && $$QMAKE_COPY $$PWD/libs/airmapd/linux/Qt.5.11.0/libairmap-qt.so.0.0.1 $$DESTDIR/Qt/libs/ - } - - # QGroundControl start script - contains (CONFIG, QGC_DISABLE_CUSTOM_BUILD) | !exists($$PWD/custom/custom.pri) { - QMAKE_POST_LINK += && $$QMAKE_COPY $$BASEDIR/deploy/qgroundcontrol-start.sh $$DESTDIR - QMAKE_POST_LINK += && $$QMAKE_COPY $$BASEDIR/deploy/qgroundcontrol.desktop $$DESTDIR - QMAKE_POST_LINK += && $$QMAKE_COPY $$BASEDIR/resources/icons/qgroundcontrol.png $$DESTDIR - } else { - include($$PWD/custom/custom_deploy.pri) - } -} diff --git a/qgroundcontrol.pro b/qgroundcontrol.pro index c87c0e2..60293a1 100644 --- a/qgroundcontrol.pro +++ b/qgroundcontrol.pro @@ -1,11 +1,11 @@ -# ------------------------------------------------- -# QGroundControl - Micro Air Vehicle Groundstation -# Please see our website at -# Maintainer: -# Lorenz Meier -# (c) 2009-2019 QGroundControl Developers -# License terms set in COPYING.md -# ------------------------------------------------- +################################################################################ +# +# (c) 2009-2020 QGROUNDCONTROL PROJECT +# +# QGroundControl is licensed according to the terms in the file +# COPYING.md in the root of the source code directory. +# +################################################################################ QMAKE_PROJECT_DEPTH = 0 # undocumented qmake flag to force absolute paths in make files @@ -28,7 +28,6 @@ include(QGCCommon.pri) TARGET = QGroundControl TEMPLATE = app QGCROOT = $$PWD -DESTDIR = qgc-app QML_IMPORT_PATH += $$PWD/src/QmlControls @@ -1385,7 +1384,7 @@ CONFIG+=lrelease embed_translations contains (CONFIG, QGC_DISABLE_BUILD_SETUP) { message("Disable standard build setup") } else { - include(QGCSetup.pri) + include(QGCPostLinkCommon.pri) } # @@ -1395,7 +1394,7 @@ contains (CONFIG, QGC_DISABLE_BUILD_SETUP) { contains (CONFIG, QGC_DISABLE_INSTALLER_SETUP) { message("Disable standard installer setup") } else { - include(QGCInstaller.pri) + include(QGCPostLinkInstaller.pri) } DISTFILES += \ diff --git a/tools/prepare_gstreamer_framework.sh b/tools/prepare_gstreamer_framework.sh index f59f4c9..6589e46 100755 --- a/tools/prepare_gstreamer_framework.sh +++ b/tools/prepare_gstreamer_framework.sh @@ -75,7 +75,7 @@ echo "GST Installer: Copying $GST_SOURCE to $BUNDLE_TARGET/Contents/Frameworks/" rsync -a --delete $GST_SOURCE $BUNDLE_TARGET/Contents/Frameworks/ || die "Error copying framework into app bundle" #-- The plugin scanner needs to find the GStreamer libraries GSTINBUNDLE=$BUNDLE_TARGET/Contents/Frameworks/GStreamer.framework/Versions/$GST_VER -pushd $GSTINBUNDLE/libexec && ln -sf ../../../../../Frameworks . && popd || die "Error creating Frameworks symlink in $GST_TARGET/libexec" +pushd $GSTINBUNDLE/libexec && ln -sf ../../../../Frameworks . && popd || die "Error creating Frameworks symlink in $GST_TARGET/libexec" #-- Fix main binary install_name_tool -change /Library/Frameworks/GStreamer.framework/Versions/1.0/lib/GStreamer @executable_path/../Frameworks/GStreamer.framework/Versions/1.0/lib/GStreamer "$QGC_BINARY" > /dev/null || die "Error relocating $QGC_BINARY" pushd $GSTINBUNDLE && install_name_tool -id @executable_path/../Frameworks/GStreamer.framework/Versions/1.0/lib/GStreamer GStreamer && popd || die "Error relocating GStreamer"