Merge pull request #253 from saidinesh5/master
Added support for -excludeLibs command line option
This commit is contained in:
@@ -82,6 +82,8 @@ int main(int argc, char **argv)
|
||||
qInfo() << " -no-copy-copyright-files : Skip deployment of copyright files.";
|
||||
qInfo() << " -extra-plugins=<list> : List of extra plugins which should be deployed,";
|
||||
qInfo() << " separated by comma.";
|
||||
qInfo() << " -exclude-libs=<list> : List of libraries which should be excluded,";
|
||||
qInfo() << " separated by comma.";
|
||||
qInfo() << " -version : Print version statement and exit.";
|
||||
qInfo() << "";
|
||||
qInfo() << "linuxdeployqt takes an application as input and makes it";
|
||||
@@ -207,6 +209,7 @@ int main(int argc, char **argv)
|
||||
QStringList qmlDirs;
|
||||
QString qmakeExecutable;
|
||||
extern QStringList extraQtPlugins;
|
||||
extern QStringList excludeLibs;
|
||||
extern bool copyCopyrightFiles;
|
||||
|
||||
/* FHS-like mode is for an application that has been installed to a $PREFIX which is otherwise empty, e.g., /path/to/usr.
|
||||
@@ -416,6 +419,10 @@ int main(int argc, char **argv)
|
||||
LogDebug() << "Argument found:" << argument;
|
||||
int index = argument.indexOf("=");
|
||||
extraQtPlugins = QString(argument.mid(index + 1)).split(",");
|
||||
} else if (argument.startsWith("-exclude-libs=")) {
|
||||
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 -:" << argument << "\n";
|
||||
return 1;
|
||||
@@ -432,6 +439,11 @@ int main(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
if (!excludeLibs.isEmpty())
|
||||
{
|
||||
qWarning() << "WARNING: Excluding the following libraries might break the AppImage. Please double-check the list:" << excludeLibs;
|
||||
}
|
||||
|
||||
DeploymentInfo deploymentInfo = deployQtLibraries(appDirPath, additionalExecutables,
|
||||
qmakeExecutable);
|
||||
|
||||
|
||||
@@ -58,6 +58,7 @@ int qtDetected = 0;
|
||||
bool qtDetectionComplete = 0; // As long as Qt is not detected yet, ldd may encounter "not found" messages, continue anyway
|
||||
bool deployLibrary = false;
|
||||
QStringList extraQtPlugins;
|
||||
QStringList excludeLibs;
|
||||
bool copyCopyrightFiles = true;
|
||||
|
||||
using std::cout;
|
||||
@@ -478,6 +479,7 @@ LibraryInfo parseLddLibraryLine(const QString &line, const QString &appDirPath,
|
||||
#else
|
||||
excludelist << EXCLUDELIST;
|
||||
#endif
|
||||
excludelist += excludeLibs;
|
||||
|
||||
LogDebug() << "excludelist:" << excludelist;
|
||||
if (! trimmed.contains("libicu")) {
|
||||
@@ -671,6 +673,8 @@ QList<LibraryInfo> getQtLibrariesForPaths(const QStringList &paths, const QStrin
|
||||
QSet<QString> existing;
|
||||
|
||||
foreach (const QString &path, paths) {
|
||||
if (!excludeLibs.contains(QFileInfo(path).baseName()))
|
||||
{
|
||||
foreach (const LibraryInfo &info, getQtLibraries(path, appDirPath, rpaths)) {
|
||||
if (!existing.contains(info.libraryPath)) { // avoid duplicates
|
||||
existing.insert(info.libraryPath);
|
||||
@@ -678,6 +682,7 @@ QList<LibraryInfo> getQtLibrariesForPaths(const QStringList &paths, const QStrin
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1399,6 +1404,8 @@ void deployPlugins(const AppDirInfo &appDirInfo, const QString &pluginSourcePath
|
||||
foreach (const QString &plugin, pluginList) {
|
||||
sourcePath = pluginSourcePath + "/" + plugin;
|
||||
destinationPath = pluginDestinationPath + "/" + plugin;
|
||||
if(!excludeLibs.contains(QFileInfo(sourcePath).baseName()))
|
||||
{
|
||||
QDir dir;
|
||||
dir.mkpath(QFileInfo(destinationPath).path());
|
||||
QList<LibraryInfo> libraries = getQtLibraries(sourcePath, appDirInfo.path, deploymentInfo.rpathsUsed);
|
||||
@@ -1418,6 +1425,7 @@ void deployPlugins(const AppDirInfo &appDirInfo, const QString &pluginSourcePath
|
||||
copyCopyrightFile(sourcePath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void createQtConf(const QString &appDirPath)
|
||||
{
|
||||
|
||||
@@ -46,6 +46,7 @@ extern bool bundleAllButCoreLibs;
|
||||
extern bool fhsLikeMode;
|
||||
extern QString fhsPrefix;
|
||||
extern QStringList extraQtPlugins;
|
||||
extern QStringList excludeLibs;
|
||||
|
||||
class LibraryInfo
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user