Merge branch 'master' into master
This commit is contained in:
@@ -43,12 +43,43 @@ the application uses.
|
||||
|
||||
#### 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.
|
||||
See [desktop file specification](https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html).
|
||||
Using the desktop file `linuxdeployqt` can determine the parameters of the build.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
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 += EXCLUDELIST=\""$$system($$_PRO_FILE_PWD_/../excludelist.sh)"\"
|
||||
@@ -423,11 +423,11 @@ int main(int argc, char **argv)
|
||||
LogDebug() << "Argument found:" << argument;
|
||||
int index = argument.indexOf("=");
|
||||
excludeLibs = QString(argument.mid(index + 1)).split(",");
|
||||
} else if (argument.startsWith("-")) {
|
||||
LogError() << "Error: arguments must not start with --, only -" << "\n";
|
||||
} else if (argument.startsWith("--")) {
|
||||
LogError() << "Error: arguments must not start with --, only -:" << argument << "\n";
|
||||
return 1;
|
||||
} else {
|
||||
LogError() << "Unknown argument" << argument << "\n";
|
||||
LogError() << "Unknown argument:" << argument << "\n";
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -474,8 +474,13 @@ LibraryInfo parseLddLibraryLine(const QString &line, const QString &appDirPath,
|
||||
*/
|
||||
|
||||
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 << "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;
|
||||
if (! trimmed.contains("libicu")) {
|
||||
if (containsHowOften(excludelist, QFileInfo(trimmed).completeBaseName())) {
|
||||
|
||||
Reference in New Issue
Block a user