diff options
Diffstat (limited to 'tools/binarycreator/rcc/rccmain.cpp')
-rw-r--r-- | tools/binarycreator/rcc/rccmain.cpp | 239 |
1 files changed, 0 insertions, 239 deletions
diff --git a/tools/binarycreator/rcc/rccmain.cpp b/tools/binarycreator/rcc/rccmain.cpp deleted file mode 100644 index 8c33997dd..000000000 --- a/tools/binarycreator/rcc/rccmain.cpp +++ /dev/null @@ -1,239 +0,0 @@ -/************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Installer Framework. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -**************************************************************************/ - -#include <rcc.h> -#include "qcorecmdlineargs_p.h" - -#include <QDebug> -#include <QDir> -#include <QFile> -#include <QFileInfo> -#include <QTextStream> - -QT_BEGIN_NAMESPACE - -void showHelp(const QString &argv0, const QString &error) -{ - fprintf(stderr, "Qt resource compiler\n"); - if (!error.isEmpty()) - fprintf(stderr, "%s: %s\n", qPrintable(argv0), qPrintable(error)); - fprintf(stderr, "Usage: %s [options] <inputs>\n\n" - "Options:\n" - " -o file write output to file rather than stdout\n" - " -name name create an external initialization function with name\n" - " -threshold level threshold to consider compressing files\n" - " -compress level compress input files by level\n" - " -root path prefix resource access path with root path\n" - " -no-compress disable all compression\n" - " -binary output a binary file for use as a dynamic resource\n" - " -namespace turn off namespace macros\n" - " -project Output a resource file containing all\n" - " files from the current directory\n" - " -version display version\n" - " -help display this information\n", - qPrintable(argv0)); -} - -void dumpRecursive(const QDir &dir, QTextStream &out) -{ - QFileInfoList entries = dir.entryInfoList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot - | QDir::NoSymLinks); - foreach (const QFileInfo &entry, entries) { - if (entry.isDir()) { - dumpRecursive(entry.filePath(), out); - } else { - out << QLatin1String("<file>") - << entry.filePath() - << QLatin1String("</file>\n"); - } - } -} - -int createProject(const QString &outFileName) -{ - QFile file; - bool isOk = false; - if (outFileName.isEmpty()) { - isOk = file.open(stdout, QFile::WriteOnly | QFile::Text); - } else { - file.setFileName(outFileName); - isOk = file.open(QFile::WriteOnly | QFile::Text); - } - if (!isOk) { - fprintf(stderr, "Unable to open %s: %s\n", - outFileName.isEmpty() ? qPrintable(outFileName) : "standard output", - qPrintable(file.errorString())); - return 1; - } - - QTextStream out(&file); - out << QLatin1String("<!DOCTYPE RCC><RCC version=\"1.0\">\n" - "<qresource>\n"); - - // use "." as dir to get relative file paths - dumpRecursive(QDir(QLatin1String(".")), out); - - out << QLatin1String("</qresource>\n" - "</RCC>\n"); - - return 0; -} - -int runRcc(int argc, char *argv[]) -{ - QString outFilename; - bool helpRequested = false; - bool list = false; - bool projectRequested = false; - QStringList filenamesIn; - - QStringList args = qCmdLineArgs(argc, argv); - - RCCResourceLibrary library; - - //parse options - QString errorMsg; - for (int i = 1; i < args.count() && errorMsg.isEmpty(); i++) { - if (args[i].isEmpty()) - continue; - if (args[i][0] == QLatin1Char('-')) { // option - QString opt = args[i]; - if (opt == QLatin1String("-o")) { - if (!(i < argc-1)) { - errorMsg = QLatin1String("Missing output name"); - break; - } - outFilename = args[++i]; - } else if (opt == QLatin1String("-name")) { - if (!(i < argc-1)) { - errorMsg = QLatin1String("Missing target name"); - break; - } - library.setInitName(args[++i]); - } else if (opt == QLatin1String("-root")) { - if (!(i < argc-1)) { - errorMsg = QLatin1String("Missing root path"); - break; - } - library.setResourceRoot(QDir::cleanPath(args[++i])); - if (library.resourceRoot().isEmpty() - || library.resourceRoot().at(0) != QLatin1Char('/')) - errorMsg = QLatin1String("Root must start with a /"); - } else if (opt == QLatin1String("-compress")) { - if (!(i < argc-1)) { - errorMsg = QLatin1String("Missing compression level"); - break; - } - library.setCompressLevel(args[++i].toInt()); - } else if (opt == QLatin1String("-threshold")) { - if (!(i < argc-1)) { - errorMsg = QLatin1String("Missing compression threshold"); - break; - } - library.setCompressThreshold(args[++i].toInt()); - } else if (opt == QLatin1String("-binary")) { - library.setFormat(RCCResourceLibrary::Binary); - } else if (opt == QLatin1String("-namespace")) { - library.setUseNameSpace(!library.useNameSpace()); - } else if (opt == QLatin1String("-verbose")) { - library.setVerbose(true); - } else if (opt == QLatin1String("-list")) { - list = true; - } else if (opt == QLatin1String("-version") || opt == QLatin1String("-v")) { - fprintf(stderr, "Qt Resource Compiler version %s\n", QT_VERSION_STR); - return 1; - } else if (opt == QLatin1String("-help") || opt == QLatin1String("-h")) { - helpRequested = true; - } else if (opt == QLatin1String("-no-compress")) { - library.setCompressLevel(-2); - } else if (opt == QLatin1String("-project")) { - projectRequested = true; - } else { - errorMsg = QString::fromLatin1("Unknown option: '%1'").arg(args[i]); - } - } else { - if (!QFile::exists(args[i])) { - qWarning("%s: File does not exist '%s'", - qPrintable(args[0]), qPrintable(args[i])); - return 1; - } - filenamesIn.append(args[i]); - } - } - - if (projectRequested && !helpRequested) { - return createProject(outFilename); - } - - if (!filenamesIn.size() || !errorMsg.isEmpty() || helpRequested) { - showHelp(args[0], errorMsg); - return 1; - } - QFile errorDevice; - errorDevice.open(stderr, QIODevice::WriteOnly|QIODevice::Text); - - if (library.verbose()) - errorDevice.write("Qt resource compiler\n"); - - library.setInputFiles(filenamesIn); - - if (!library.readFiles(list, errorDevice)) - return 1; - - // open output - QFile out; - QIODevice::OpenMode mode = QIODevice::WriteOnly; - if (library.format() == RCCResourceLibrary::C_Code) - mode |= QIODevice::Text; - - if (outFilename.isEmpty() || outFilename == QLatin1String("-")) { - // using this overload close() only flushes. - out.open(stdout, mode); - } else { - out.setFileName(outFilename); - if (!out.open(mode)) { - const QString msg = QString::fromUtf8("Unable to open %1 for writing: %2\n").arg(outFilename).arg(out.errorString()); - errorDevice.write(msg.toUtf8()); - return 1; - } - } - - // do the task - if (list) { - const QStringList data = library.dataFiles(); - for (int i = 0; i < data.size(); ++i) { - out.write(qPrintable(QDir::cleanPath(data.at(i)))); - out.write("\n"); - } - return 0; - } - - return library.output(out, errorDevice) ? 0 : 1; -} - -QT_END_NAMESPACE |