QGCPostLinkInstaller.pri 3.6 KB
Newer Older
Gus Grubba's avatar
Gus Grubba committed
1 2 3 4 5 6 7 8
################################################################################
#
# (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
#
# QGroundControl is licensed according to the terms in the file
# COPYING.md in the root of the source code directory.
#
################################################################################
9

Don Gagne's avatar
Don Gagne committed
10 11
# These are the Post Link steps which are specific to installer builds

12
installer {
13
    DEFINES += QGC_INSTALL_RELEASE
Don Gagne's avatar
Don Gagne committed
14

15
    MacBuild {
Don Gagne's avatar
Don Gagne committed
16
        QMAKE_POST_LINK += && mkdir -p staging
Don Gagne's avatar
Don Gagne committed
17
        QMAKE_POST_LINK += && rsync -a --delete $${TARGET}.app staging
Don Gagne's avatar
Don Gagne committed
18

19 20 21
        VideoEnabled {
            # Install the gstreamer framework
            # This will:
dogmaphobic's avatar
dogmaphobic committed
22
            # Copy from the original distibution into DESTDIR/gstwork (if not already there)
23 24 25 26
            # 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
Don Gagne's avatar
Don Gagne committed
27
            QMAKE_POST_LINK += && $$BASEDIR/tools/prepare_gstreamer_framework.sh $${OUT_PWD}/gstwork/ staging/$${TARGET}.app $${TARGET}
28
        }
DonLakeFlyer's avatar
DonLakeFlyer committed
29

Don Gagne's avatar
Don Gagne committed
30 31 32

        QMAKE_POST_LINK += && echo macdeployqt
        QMAKE_POST_LINK += && $$dirname(QMAKE_QMAKE)/macdeployqt staging/$${TARGET}.app -appstore-compliant -verbose=1 -qmldir=$${BASEDIR}/src
DonLakeFlyer's avatar
DonLakeFlyer committed
33 34

        # macdeployqt is missing some relocations once in a while. "Fix" it:
Don Gagne's avatar
Don Gagne committed
35 36
        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
DonLakeFlyer's avatar
DonLakeFlyer committed
37

38
        # Create package
Don Gagne's avatar
Don Gagne committed
39 40 41 42
        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
43
        QMAKE_POST_LINK += && rm /tmp/tmp.dmg
44 45
    }
    WindowsBuild {
Gus Grubba's avatar
Gus Grubba committed
46
        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")
47
        OTHER_FILES += deploy/qgroundcontrol_installer.nsi
48
    }
49
    LinuxBuild {
dogmaphobic's avatar
dogmaphobic committed
50
        #-- TODO: This uses hardcoded paths. It should use $${DESTDIR}
51
        QMAKE_POST_LINK += && mkdir -p release/package
52
        QMAKE_POST_LINK += && tar -cj --exclude='package' -f release/package/QGroundControl.tar.bz2 release --transform 's/release/qgroundcontrol/'
53
    }
54
    AndroidBuild {
Don Gagne's avatar
Don Gagne committed
55 56 57
        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)
58 59 60 61 62 63 64
        contains(QT_ARCH, arm) {
            QGC_APK_BITNESS = "32"
        } else:contains(QT_ARCH, arm64) {
            QGC_APK_BITNESS = "64"
        } else {
            QGC_APK_BITNESS = ""
        }
Don Gagne's avatar
Don Gagne committed
65
        QMAKE_POST_LINK += && cp android-build/build/outputs/apk/android-build-release-signed.apk package/QGroundControl$${QGC_APK_BITNESS}.apk
66
    }
67
}