Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qgroundcontrol
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
d430df77
Commit
d430df77
authored
Jun 10, 2020
by
Don Gagne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
parent
9a30a29d
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
45 additions
and
53 deletions
+45
-53
.travis.yml
.travis.yml
+1
-1
QGCPostLinkCommon.pri
QGCPostLinkCommon.pri
+13
-24
QGCPostLinkInstaller.pri
QGCPostLinkInstaller.pri
+20
-16
qgroundcontrol.pro
qgroundcontrol.pro
+10
-11
prepare_gstreamer_framework.sh
tools/prepare_gstreamer_framework.sh
+1
-1
No files found.
.travis.yml
View file @
d430df77
...
...
@@ -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
:
...
...
QGC
Setup
.pri
→
QGC
PostLinkCommon
.pri
View file @
d430df77
...
...
@@ -7,37 +7,26 @@
#
################################################################################
QMAKE_POST_LINK += echo "QGC Post Link"
# These are the Post Link steps which are common to all builds
#
# 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}
}
# 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}
}
}
...
...
QGCInstaller.pri
→
QGC
PostLink
Installer.pri
View file @
d430df77
...
...
@@ -7,9 +7,15 @@
#
################################################################################
# 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:
...
...
@@ -18,24 +24,22 @@ installer {
# 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")
QMAKE_POST_LINK += && $$BASEDIR/tools/prepare_gstreamer_framework.sh $${OUT_PWD}/gstwork/ staging/$${TARGET}.app $${TARGET}
}
# 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
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 += && python $$BASEDIR/tools/osxrelocator.py $${TARGET}.app/Contents @rpath @executable_path/../Frameworks -r > /dev/null 2>&1
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 += && 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 += && 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 {
...
...
@@ -48,9 +52,9 @@ installer {
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)
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) {
...
...
@@ -58,6 +62,6 @@ installer {
} 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
QMAKE_POST_LINK += && cp
android-build/build/outputs/apk/android-build-release-signed.apk
package/QGroundControl$${QGC_APK_BITNESS}.apk
}
}
qgroundcontrol.pro
View file @
d430df77
#
-------------------------------------------------
#
QGroundControl
-
Micro
Air
Vehicle
Groundstation
#
Please
see
our
website
at
<
http
://
qgroundcontrol
.
org
>
#
Maintainer
:
#
Lorenz
Meier
<
lm
@
inf
.
ethz
.
ch
>
#
(
c
)
2009
-
2019
QGroundControl
Developers
#
License
terms
set
in
COPYING
.
md
#
-------------------------------------------------
#
###############################################################################
#
#
(
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
.
#
#
###############################################################################
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
(
QGC
Setup
.
pri
)
include
(
QGC
PostLinkCommon
.
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
(
QGC
PostLink
Installer
.
pri
)
}
DISTFILES
+=
\
...
...
tools/prepare_gstreamer_framework.sh
View file @
d430df77
...
...
@@ -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"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment