From c1e8ce62c92b2095d77de3a66cb24812bd48b174 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20Jos=C3=A9=20Pereira?= Date: Thu, 12 Apr 2018 00:10:04 -0300 Subject: [PATCH 1/4] Organize help order MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Patrick José Pereira --- tools/linuxdeployqt/main.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tools/linuxdeployqt/main.cpp b/tools/linuxdeployqt/main.cpp index 1ed71c6..ef68b9b 100644 --- a/tools/linuxdeployqt/main.cpp +++ b/tools/linuxdeployqt/main.cpp @@ -67,23 +67,23 @@ int main(int argc, char **argv) qInfo() << "Usage: linuxdeployqt [options]"; qInfo() << ""; qInfo() << "Options:"; - qInfo() << " -verbose=<0-3> : 0 = no output, 1 = error/warning (default),"; - qInfo() << " 2 = normal, 3 = debug"; - qInfo() << " -no-plugins : Skip plugin deployment"; - qInfo() << " -appimage : Create an AppImage (implies -bundle-non-qt-libs)"; - qInfo() << " -no-strip : Don't run 'strip' on the binaries"; - qInfo() << " -bundle-non-qt-libs : Also bundle non-core, non-Qt libraries"; + qInfo() << " -always-overwrite : Copy files even if the target file exists."; + qInfo() << " -appimage : Create an AppImage (implies -bundle-non-qt-libs)."; + qInfo() << " -bundle-non-qt-libs : Also bundle non-core, non-Qt libraries."; + qInfo() << " -exclude-libs= : List of libraries which should be excluded,"; + qInfo() << " separated by comma."; qInfo() << " -executable= : Let the given executable use the deployed libraries"; qInfo() << " too"; - qInfo() << " -qmldir= : Scan for QML imports in the given path"; - qInfo() << " -always-overwrite : Copy files even if the target file exists"; - qInfo() << " -qmake= : The qmake executable to use"; - qInfo() << " -no-translations : Skip deployment of translations."; - qInfo() << " -no-copy-copyright-files : Skip deployment of copyright files."; qInfo() << " -extra-plugins= : List of extra plugins which should be deployed,"; qInfo() << " separated by comma."; - qInfo() << " -exclude-libs= : List of libraries which should be excluded,"; - qInfo() << " separated by comma."; + qInfo() << " -no-copy-copyright-files : Skip deployment of copyright files."; + qInfo() << " -no-plugins : Skip plugin deployment."; + qInfo() << " -no-strip : Don't run 'strip' on the binaries."; + qInfo() << " -no-translations : Skip deployment of translations."; + qInfo() << " -qmake= : The qmake executable to use."; + qInfo() << " -qmldir= : Scan for QML imports in the given path."; + qInfo() << " -verbose=<0-3> : 0 = no output, 1 = error/warning (default),"; + qInfo() << " 2 = normal, 3 = debug."; qInfo() << " -version : Print version statement and exit."; qInfo() << ""; qInfo() << "linuxdeployqt takes an application as input and makes it"; From 9f738288ef4598c9516b4223995f443cb0a2712e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20Jos=C3=A9=20Pereira?= Date: Thu, 12 Apr 2018 00:23:44 -0300 Subject: [PATCH 2/4] Add -show-exclude-libs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix #270 Signed-off-by: Patrick José Pereira --- tools/linuxdeployqt/main.cpp | 148 ++++++++++++++++++----------------- 1 file changed, 78 insertions(+), 70 deletions(-) diff --git a/tools/linuxdeployqt/main.cpp b/tools/linuxdeployqt/main.cpp index ef68b9b..a429596 100644 --- a/tools/linuxdeployqt/main.cpp +++ b/tools/linuxdeployqt/main.cpp @@ -62,7 +62,7 @@ int main(int argc, char **argv) } } - if (argc < 2 || (firstArgument.startsWith("-"))) { + if (argc < 2) { qInfo() << ""; qInfo() << "Usage: linuxdeployqt [options]"; qInfo() << ""; @@ -82,6 +82,7 @@ int main(int argc, char **argv) qInfo() << " -no-translations : Skip deployment of translations."; qInfo() << " -qmake= : The qmake executable to use."; qInfo() << " -qmldir= : Scan for QML imports in the given path."; + qInfo() << " -show-exclude-libs : Print exclude libraries list."; qInfo() << " -verbose=<0-3> : 0 = no output, 1 = error/warning (default),"; qInfo() << " 2 = normal, 3 = debug."; qInfo() << " -version : Print version statement and exit."; @@ -212,6 +213,82 @@ int main(int argc, char **argv) extern QStringList excludeLibs; extern bool copyCopyrightFiles; + // Check arguments + for (int i = 1; i < argc; ++i) { + QByteArray argument = QByteArray(argv[i]); + + if (!argument.startsWith("-")) { + continue; + } else if (argument == QByteArray("-no-plugins")) { + LogDebug() << "Argument found:" << argument; + plugins = false; + } else if (argument == QByteArray("-appimage")) { + LogDebug() << "Argument found:" << argument; + appimage = true; + bundleAllButCoreLibs = true; + } else if (argument == QByteArray("-no-strip")) { + LogDebug() << "Argument found:" << argument; + runStripEnabled = false; + } else if (argument == QByteArray("-bundle-non-qt-libs")) { + LogDebug() << "Argument found:" << argument; + bundleAllButCoreLibs = true; + } else if (argument.startsWith(QByteArray("-verbose"))) { + LogDebug() << "Argument found:" << argument; + int index = argument.indexOf("="); + bool ok = false; + int number = argument.mid(index+1).toInt(&ok); + if (!ok) + LogError() << "Could not parse verbose level"; + else + logLevel = number; + } else if (argument.startsWith(QByteArray("-executable"))) { + LogDebug() << "Argument found:" << argument; + int index = argument.indexOf('='); + if (index == -1) + LogError() << "Missing executable path"; + else + additionalExecutables << argument.mid(index+1); + } else if (argument.startsWith(QByteArray("-qmldir"))) { + LogDebug() << "Argument found:" << argument; + qmldirArgumentUsed = true; + int index = argument.indexOf('='); + if (index == -1) + LogError() << "Missing qml directory path"; + else + qmlDirs << argument.mid(index+1); + } else if (argument.startsWith("-no-copy-copyright-files")) { + LogDebug() << "Argument found:" << argument; + copyCopyrightFiles = false; + } else if (argument == QByteArray("-always-overwrite")) { + LogDebug() << "Argument found:" << argument; + alwaysOwerwriteEnabled = true; + } else if (argument.startsWith("-qmake=")) { + LogDebug() << "Argument found:" << argument; + int index = argument.indexOf("="); + qmakeExecutable = argument.mid(index+1); + } else if (argument == QByteArray("-no-translations")) { + LogDebug() << "Argument found:" << argument; + skipTranslations = true; + } else if (argument.startsWith("-extra-plugins=")) { + 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 == QByteArray("-show-exclude-libs")) { + qInfo() << EXCLUDELIST; + return 0; + } else if (argument.startsWith("--")) { + LogError() << "Error: arguments must not start with --, only -:" << argument << "\n"; + return 1; + } else { + LogError() << "Unknown argument:" << argument << "\n"; + return 1; + } + } + /* FHS-like mode is for an application that has been installed to a $PREFIX which is otherwise empty, e.g., /path/to/usr. * In this case, we want to construct an AppDir in /path/to. */ if (QDir().exists((QDir::cleanPath(appBinaryPath + "/../../bin"))) == true) { @@ -363,75 +440,6 @@ int main(int argc, char **argv) } } - for (int i = 2; i < argc; ++i) { - QByteArray argument = QByteArray(argv[i]); - if (argument == QByteArray("-no-plugins")) { - LogDebug() << "Argument found:" << argument; - plugins = false; - } else if (argument == QByteArray("-appimage")) { - LogDebug() << "Argument found:" << argument; - appimage = true; - bundleAllButCoreLibs = true; - } else if (argument == QByteArray("-no-strip")) { - LogDebug() << "Argument found:" << argument; - runStripEnabled = false; - } else if (argument == QByteArray("-bundle-non-qt-libs")) { - LogDebug() << "Argument found:" << argument; - bundleAllButCoreLibs = true; - } else if (argument.startsWith(QByteArray("-verbose"))) { - LogDebug() << "Argument found:" << argument; - int index = argument.indexOf("="); - bool ok = false; - int number = argument.mid(index+1).toInt(&ok); - if (!ok) - LogError() << "Could not parse verbose level"; - else - logLevel = number; - } else if (argument.startsWith(QByteArray("-executable"))) { - LogDebug() << "Argument found:" << argument; - int index = argument.indexOf('='); - if (index == -1) - LogError() << "Missing executable path"; - else - additionalExecutables << argument.mid(index+1); - } else if (argument.startsWith(QByteArray("-qmldir"))) { - LogDebug() << "Argument found:" << argument; - qmldirArgumentUsed = true; - int index = argument.indexOf('='); - if (index == -1) - LogError() << "Missing qml directory path"; - else - qmlDirs << argument.mid(index+1); - } else if (argument.startsWith("-no-copy-copyright-files")) { - LogDebug() << "Argument found:" << argument; - copyCopyrightFiles = false; - } else if (argument == QByteArray("-always-overwrite")) { - LogDebug() << "Argument found:" << argument; - alwaysOwerwriteEnabled = true; - } else if (argument.startsWith("-qmake=")) { - LogDebug() << "Argument found:" << argument; - int index = argument.indexOf("="); - qmakeExecutable = argument.mid(index+1); - } else if (argument == QByteArray("-no-translations")) { - LogDebug() << "Argument found:" << argument; - skipTranslations = true; - } else if (argument.startsWith("-extra-plugins=")) { - 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; - } else { - LogError() << "Unknown argument:" << argument << "\n"; - return 1; - } - } - if (appimage) { if(checkAppImagePrerequisites(appDirPath) == false){ LogError() << "checkAppImagePrerequisites failed\n"; From 22469d636ccff668a7efacf2c74c77d9aa5e8f96 Mon Sep 17 00:00:00 2001 From: TheAssassin Date: Fri, 13 Apr 2018 02:47:49 +0200 Subject: [PATCH 3/4] Move argument parser to previous location --- tools/linuxdeployqt/main.cpp | 152 +++++++++++++++++------------------ 1 file changed, 76 insertions(+), 76 deletions(-) diff --git a/tools/linuxdeployqt/main.cpp b/tools/linuxdeployqt/main.cpp index a429596..5446433 100644 --- a/tools/linuxdeployqt/main.cpp +++ b/tools/linuxdeployqt/main.cpp @@ -213,82 +213,6 @@ int main(int argc, char **argv) extern QStringList excludeLibs; extern bool copyCopyrightFiles; - // Check arguments - for (int i = 1; i < argc; ++i) { - QByteArray argument = QByteArray(argv[i]); - - if (!argument.startsWith("-")) { - continue; - } else if (argument == QByteArray("-no-plugins")) { - LogDebug() << "Argument found:" << argument; - plugins = false; - } else if (argument == QByteArray("-appimage")) { - LogDebug() << "Argument found:" << argument; - appimage = true; - bundleAllButCoreLibs = true; - } else if (argument == QByteArray("-no-strip")) { - LogDebug() << "Argument found:" << argument; - runStripEnabled = false; - } else if (argument == QByteArray("-bundle-non-qt-libs")) { - LogDebug() << "Argument found:" << argument; - bundleAllButCoreLibs = true; - } else if (argument.startsWith(QByteArray("-verbose"))) { - LogDebug() << "Argument found:" << argument; - int index = argument.indexOf("="); - bool ok = false; - int number = argument.mid(index+1).toInt(&ok); - if (!ok) - LogError() << "Could not parse verbose level"; - else - logLevel = number; - } else if (argument.startsWith(QByteArray("-executable"))) { - LogDebug() << "Argument found:" << argument; - int index = argument.indexOf('='); - if (index == -1) - LogError() << "Missing executable path"; - else - additionalExecutables << argument.mid(index+1); - } else if (argument.startsWith(QByteArray("-qmldir"))) { - LogDebug() << "Argument found:" << argument; - qmldirArgumentUsed = true; - int index = argument.indexOf('='); - if (index == -1) - LogError() << "Missing qml directory path"; - else - qmlDirs << argument.mid(index+1); - } else if (argument.startsWith("-no-copy-copyright-files")) { - LogDebug() << "Argument found:" << argument; - copyCopyrightFiles = false; - } else if (argument == QByteArray("-always-overwrite")) { - LogDebug() << "Argument found:" << argument; - alwaysOwerwriteEnabled = true; - } else if (argument.startsWith("-qmake=")) { - LogDebug() << "Argument found:" << argument; - int index = argument.indexOf("="); - qmakeExecutable = argument.mid(index+1); - } else if (argument == QByteArray("-no-translations")) { - LogDebug() << "Argument found:" << argument; - skipTranslations = true; - } else if (argument.startsWith("-extra-plugins=")) { - 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 == QByteArray("-show-exclude-libs")) { - qInfo() << EXCLUDELIST; - return 0; - } else if (argument.startsWith("--")) { - LogError() << "Error: arguments must not start with --, only -:" << argument << "\n"; - return 1; - } else { - LogError() << "Unknown argument:" << argument << "\n"; - return 1; - } - } - /* FHS-like mode is for an application that has been installed to a $PREFIX which is otherwise empty, e.g., /path/to/usr. * In this case, we want to construct an AppDir in /path/to. */ if (QDir().exists((QDir::cleanPath(appBinaryPath + "/../../bin"))) == true) { @@ -440,6 +364,82 @@ int main(int argc, char **argv) } } + // Check arguments + for (int i = 1; i < argc; ++i) { + QByteArray argument = QByteArray(argv[i]); + + if (!argument.startsWith("-")) { + continue; + } else if (argument == QByteArray("-no-plugins")) { + LogDebug() << "Argument found:" << argument; + plugins = false; + } else if (argument == QByteArray("-appimage")) { + LogDebug() << "Argument found:" << argument; + appimage = true; + bundleAllButCoreLibs = true; + } else if (argument == QByteArray("-no-strip")) { + LogDebug() << "Argument found:" << argument; + runStripEnabled = false; + } else if (argument == QByteArray("-bundle-non-qt-libs")) { + LogDebug() << "Argument found:" << argument; + bundleAllButCoreLibs = true; + } else if (argument.startsWith(QByteArray("-verbose"))) { + LogDebug() << "Argument found:" << argument; + int index = argument.indexOf("="); + bool ok = false; + int number = argument.mid(index+1).toInt(&ok); + if (!ok) + LogError() << "Could not parse verbose level"; + else + logLevel = number; + } else if (argument.startsWith(QByteArray("-executable"))) { + LogDebug() << "Argument found:" << argument; + int index = argument.indexOf('='); + if (index == -1) + LogError() << "Missing executable path"; + else + additionalExecutables << argument.mid(index+1); + } else if (argument.startsWith(QByteArray("-qmldir"))) { + LogDebug() << "Argument found:" << argument; + qmldirArgumentUsed = true; + int index = argument.indexOf('='); + if (index == -1) + LogError() << "Missing qml directory path"; + else + qmlDirs << argument.mid(index+1); + } else if (argument.startsWith("-no-copy-copyright-files")) { + LogDebug() << "Argument found:" << argument; + copyCopyrightFiles = false; + } else if (argument == QByteArray("-always-overwrite")) { + LogDebug() << "Argument found:" << argument; + alwaysOwerwriteEnabled = true; + } else if (argument.startsWith("-qmake=")) { + LogDebug() << "Argument found:" << argument; + int index = argument.indexOf("="); + qmakeExecutable = argument.mid(index+1); + } else if (argument == QByteArray("-no-translations")) { + LogDebug() << "Argument found:" << argument; + skipTranslations = true; + } else if (argument.startsWith("-extra-plugins=")) { + 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 == QByteArray("-show-exclude-libs")) { + qInfo() << EXCLUDELIST; + return 0; + } else if (argument.startsWith("--")) { + LogError() << "Error: arguments must not start with --, only -:" << argument << "\n"; + return 1; + } else { + LogError() << "Unknown argument:" << argument << "\n"; + return 1; + } + } + if (appimage) { if(checkAppImagePrerequisites(appDirPath) == false){ LogError() << "checkAppImagePrerequisites failed\n"; From 4ae11ebc2d5a08d8ac639327bcfc0a96a4df47b5 Mon Sep 17 00:00:00 2001 From: TheAssassin Date: Fri, 13 Apr 2018 02:55:38 +0200 Subject: [PATCH 4/4] Restore original argument parser --- tools/linuxdeployqt/main.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/tools/linuxdeployqt/main.cpp b/tools/linuxdeployqt/main.cpp index 5446433..51d4660 100644 --- a/tools/linuxdeployqt/main.cpp +++ b/tools/linuxdeployqt/main.cpp @@ -62,7 +62,7 @@ int main(int argc, char **argv) } } - if (argc < 2) { + if (argc < 2 || (firstArgument.startsWith("-"))) { qInfo() << ""; qInfo() << "Usage: linuxdeployqt [options]"; qInfo() << ""; @@ -365,12 +365,10 @@ int main(int argc, char **argv) } // Check arguments - for (int i = 1; i < argc; ++i) { + for (int i = 2; i < argc; ++i) { QByteArray argument = QByteArray(argv[i]); - if (!argument.startsWith("-")) { - continue; - } else if (argument == QByteArray("-no-plugins")) { + if (argument == QByteArray("-no-plugins")) { LogDebug() << "Argument found:" << argument; plugins = false; } else if (argument == QByteArray("-appimage")) {