Merge branch 'master' into master
This commit is contained in:
@@ -43,12 +43,43 @@ the application uses.
|
|||||||
|
|
||||||
#### Simplest example
|
#### Simplest example
|
||||||
|
|
||||||
Given that a desktop file should be provided with an AppImage, `linuxdeployqt` can use that to determine the parameters of the build.
|
You'll need to provide the basic structure of an `AppDir` which should look something like this:
|
||||||
|
```
|
||||||
|
└── usr
|
||||||
|
├── bin
|
||||||
|
│ └── your_app
|
||||||
|
├── lib
|
||||||
|
└── share
|
||||||
|
├── applications
|
||||||
|
│ └── your_app.desktop
|
||||||
|
└── icons
|
||||||
|
└── <theme>
|
||||||
|
└── <resolution>
|
||||||
|
└── your_app.png
|
||||||
|
```
|
||||||
|
Replace `<theme>` and `<resolution>` with (for example) `hicolor` and `256x256` respectively; see [icon theme spec](https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html) for more details.
|
||||||
|
|
||||||
`linuxdeployqt path/to/appdir/usr/share/application_name.desktop`
|
|
||||||
|
|
||||||
Where the _desktop_ file specifies the executable to be run (with `EXEC=`), the name of the applications and an icon.
|
Using the desktop file `linuxdeployqt` can determine the parameters of the build.
|
||||||
See [desktop file specification](https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html).
|
|
||||||
|
Where your desktop file would look something like:
|
||||||
|
```
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
Name=Amazing Qt App
|
||||||
|
Comment=The best Qt Application Ever.
|
||||||
|
Exec=your_app
|
||||||
|
Icon=your_app
|
||||||
|
Categories=Office;
|
||||||
|
```
|
||||||
|
|
||||||
|
* Notice that both `Exec` and `Icon` only have file names.
|
||||||
|
* Also Notice that the `Icon` entry does not include an extension.
|
||||||
|
|
||||||
|
Read more about desktop files in the [freedesktop specification here](https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html).
|
||||||
|
|
||||||
|
Now you can say: `linuxdeployqt-continuous-x86_64.AppImage path/to/AppDir/usr/share/applications/your_app.desktop`
|
||||||
|
|
||||||
For a more detailed example, see "Using linuxdeployqt with Travis CI" below.
|
For a more detailed example, see "Using linuxdeployqt with Travis CI" below.
|
||||||
|
|
||||||
|
|||||||
Executable
+9
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Download excludelist
|
||||||
|
blacklisted=($(wget --quiet https://raw.githubusercontent.com/probonopd/AppImages/master/excludelist -O - | sort | uniq | grep -v "^#.*" | grep "[^-\s]"))
|
||||||
|
# Create array
|
||||||
|
for item in ${blacklisted[@]:0:${#blacklisted[@]}-1}; do
|
||||||
|
echo -ne '\\"'$item'\\" << '
|
||||||
|
done
|
||||||
|
echo -ne '\\"'${blacklisted[-1]}'\\"'
|
||||||
@@ -35,3 +35,4 @@ isEmpty(_BUILD_NUMBER) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
DEFINES += LINUXDEPLOYQT_VERSION="'\"$(shell git describe --tags $(shell git rev-list --tags --skip=1 --max-count=1) --abbrev=0)\"'"
|
DEFINES += LINUXDEPLOYQT_VERSION="'\"$(shell git describe --tags $(shell git rev-list --tags --skip=1 --max-count=1) --abbrev=0)\"'"
|
||||||
|
DEFINES += EXCLUDELIST=\""$$system($$_PRO_FILE_PWD_/../excludelist.sh)"\"
|
||||||
@@ -423,11 +423,11 @@ int main(int argc, char **argv)
|
|||||||
LogDebug() << "Argument found:" << argument;
|
LogDebug() << "Argument found:" << argument;
|
||||||
int index = argument.indexOf("=");
|
int index = argument.indexOf("=");
|
||||||
excludeLibs = QString(argument.mid(index + 1)).split(",");
|
excludeLibs = QString(argument.mid(index + 1)).split(",");
|
||||||
} else if (argument.startsWith("-")) {
|
} else if (argument.startsWith("--")) {
|
||||||
LogError() << "Error: arguments must not start with --, only -" << "\n";
|
LogError() << "Error: arguments must not start with --, only -:" << argument << "\n";
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
LogError() << "Unknown argument" << argument << "\n";
|
LogError() << "Unknown argument:" << argument << "\n";
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -474,8 +474,13 @@ LibraryInfo parseLddLibraryLine(const QString &line, const QString &appDirPath,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
QStringList excludelist;
|
QStringList excludelist;
|
||||||
|
#ifndef EXCLUDELIST
|
||||||
|
excludelist << "ld-linux.so.2" << "ld-linux-x86-64.so.2" << "libanl.so.1" << "libasound.so.2" << "libBrokenLocale.so.1" << "libcidn.so.1" << "libcom_err.so.2" << "libcrypt.so.1" << "libc.so.6" << "libdl.so.2" << "libdrm.so.2" << "libexpat.so.1" << "libfontconfig.so.1" << "libfreetype.so.6" << "libgcc_s.so.1" << "libgdk_pixbuf-2.0.so.0" << "libgio-2.0.so.0" << "libglib-2.0.so.0" << "libGL.so.1" << "libgobject-2.0.so.0" << "libgpg-error.so.0" << "libharfbuzz.so.0" << "libICE.so.6" << "libjack.so.0" << "libkeyutils.so.1" << "libm.so.6" << "libmvec.so.1" << "libnsl.so.1" << "libnss_compat.so.2" << "libnss_db.so.2" << "libnss_dns.so.2" << "libnss_files.so.2" << "libnss_hesiod.so.2" << "libnss_nisplus.so.2" << "libnss_nis.so.2" << "libp11-kit.so.0" << "libpango-1.0.so.0" << "libpangocairo-1.0.so.0" << "libpangoft2-1.0.so.0" << "libpthread.so.0" << "libresolv.so.2" << "librt.so.1" << "libSM.so.6" << "libstdc++.so.6" << "libthread_db.so.1" << "libusb-1.0.so.0" << "libutil.so.1" << "libuuid.so.1" << "libX11.so.6" << "libxcb.so.1" << "libz.so.1";
|
||||||
|
#else
|
||||||
|
excludelist << EXCLUDELIST;
|
||||||
|
#endif
|
||||||
excludelist += excludeLibs;
|
excludelist += excludeLibs;
|
||||||
excludelist << "libasound.so.2" << "libcom_err.so.2" << "libcrypt.so.1" << "libc.so.6" << "libdl.so.2" << "libdrm.so.2" << "libexpat.so.1" << "libfontconfig.so.1" << "libgcc_s.so.1" << "libgdk_pixbuf-2.0.so.0" << "libgio-2.0.so.0" << "libglib-2.0.so.0" << "libGL.so.1" << "libgobject-2.0.so.0" << "libgpg-error.so.0" << "libICE.so.6" << "libkeyutils.so.1" << "libm.so.6" << "libnsl.so.1" << "libnss3.so" << "libnssutil3.so" << "libp11-kit.so.0" << "libpangoft2-1.0.so.0" << "libpangocairo-1.0.so.0" << "libpango-1.0.so.0" << "libpthread.so.0" << "libresolv.so.2" << "librt.so.1" << "libSM.so.6" << "libstdc++.so.6" << "libusb-1.0.so.0" << "libuuid.so.1" << "libX11.so.6" << "libxcb.so.1" << "libz.so.1";
|
|
||||||
LogDebug() << "excludelist:" << excludelist;
|
LogDebug() << "excludelist:" << excludelist;
|
||||||
if (! trimmed.contains("libicu")) {
|
if (! trimmed.contains("libicu")) {
|
||||||
if (containsHowOften(excludelist, QFileInfo(trimmed).completeBaseName())) {
|
if (containsHowOften(excludelist, QFileInfo(trimmed).completeBaseName())) {
|
||||||
|
|||||||
Reference in New Issue
Block a user