Android: Nuke ant support
Ant is history for so many years, yet we forgot to remove it from androiddeployqt. [ChangeLog][Android] Remove ant support from androiddeployqt Change-Id: I093295e18e8710c565e9d101e21c49b3c62f6322 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
This commit is contained in:
parent
a5e03f59f4
commit
0ad4da0c64
@ -118,7 +118,6 @@ struct Options
|
||||
, timing(false)
|
||||
, generateAssetsFileList(true)
|
||||
, build(true)
|
||||
, gradle(false)
|
||||
, auxMode(false)
|
||||
, deploymentMechanism(Bundled)
|
||||
, releasePackage(false)
|
||||
@ -150,7 +149,6 @@ struct Options
|
||||
bool timing;
|
||||
bool generateAssetsFileList;
|
||||
bool build;
|
||||
bool gradle;
|
||||
bool auxMode;
|
||||
bool stripLibraries = true;
|
||||
ActionTimer timer;
|
||||
@ -159,7 +157,6 @@ struct Options
|
||||
QString sdkPath;
|
||||
QString sdkBuildToolsVersion;
|
||||
QString ndkPath;
|
||||
QString antTool;
|
||||
QString jdkPath;
|
||||
|
||||
// Build paths
|
||||
@ -369,13 +366,6 @@ Options parseOptions()
|
||||
options.helpRequested = true;
|
||||
} else if (argument.compare(QLatin1String("--verbose"), Qt::CaseInsensitive) == 0) {
|
||||
options.verbose = true;
|
||||
} else if (argument.compare(QLatin1String("--gradle"), Qt::CaseInsensitive) == 0) {
|
||||
options.gradle = true;
|
||||
} else if (argument.compare(QLatin1String("--ant"), Qt::CaseInsensitive) == 0) {
|
||||
if (i + 1 == arguments.size())
|
||||
options.helpRequested = true;
|
||||
else
|
||||
options.antTool = arguments.at(++i);
|
||||
} else if (argument.compare(QLatin1String("--deployment"), Qt::CaseInsensitive) == 0) {
|
||||
if (i + 1 == arguments.size()) {
|
||||
options.helpRequested = true;
|
||||
@ -515,9 +505,6 @@ void printHelp()
|
||||
" --android-platform <platform>: Builds against the given android\n"
|
||||
" platform. By default, the highest available version will be\n"
|
||||
" used.\n"
|
||||
" --gradle. Use gradle instead of ant to create and install the apk.\n"
|
||||
" --ant <path/to/ant>: If unspecified, ant from the PATH will be\n"
|
||||
" used.\n"
|
||||
" --release: Builds a package ready for release. By default, the\n"
|
||||
" package will be signed with a debug key.\n"
|
||||
" --sign <url/to/keystore> <alias>: Signs the package with the\n"
|
||||
@ -1024,16 +1011,13 @@ bool copyAndroidTemplate(const Options &options)
|
||||
if (options.verbose)
|
||||
fprintf(stdout, "Copying Android package template.\n");
|
||||
|
||||
if (options.gradle && !copyGradleTemplate(options))
|
||||
if (!copyGradleTemplate(options))
|
||||
return false;
|
||||
|
||||
if (!copyAndroidTemplate(options, QLatin1String("/src/android/templates")))
|
||||
return false;
|
||||
|
||||
if (options.gradle)
|
||||
return true;
|
||||
|
||||
return copyAndroidTemplate(options, QLatin1String("/src/android/java"));
|
||||
return true;
|
||||
}
|
||||
|
||||
bool copyAndroidSources(const Options &options)
|
||||
@ -1282,36 +1266,6 @@ bool updateStringsXml(const Options &options)
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!updateFile(fileName, replacements))
|
||||
return false;
|
||||
|
||||
if (options.gradle)
|
||||
return true;
|
||||
|
||||
// ant can't (easily) build multiple res folders,
|
||||
// so we need to replace the "<!-- %%INSERT_STRINGS -->" placeholder
|
||||
// from the main res folder
|
||||
QFile stringsXml(fileName);
|
||||
if (!stringsXml.open(QIODevice::ReadOnly)) {
|
||||
fprintf(stderr, "Cannot open %s for reading.\n", qPrintable(fileName));
|
||||
return false;
|
||||
}
|
||||
|
||||
QXmlStreamReader reader(&stringsXml);
|
||||
while (!reader.atEnd()) {
|
||||
reader.readNext();
|
||||
if (reader.isStartElement() &&
|
||||
reader.name() == QLatin1String("string") &&
|
||||
reader.attributes().hasAttribute(QLatin1String("name")) &&
|
||||
reader.attributes().value(QLatin1String("name")) == QLatin1String("app_name")) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
replacements.clear();
|
||||
replacements[QStringLiteral("<!-- %%INSERT_STRINGS -->")] = QString::fromLatin1("<string name=\"app_name\">%1</string>\n")
|
||||
.arg(QFileInfo(options.applicationBinary).baseName().mid(sizeof("lib") - 1));
|
||||
|
||||
if (!updateFile(fileName, replacements))
|
||||
return false;
|
||||
|
||||
@ -2220,64 +2174,6 @@ QString findInPath(const QString &fileName)
|
||||
return QString();
|
||||
}
|
||||
|
||||
bool buildAntProject(const Options &options)
|
||||
{
|
||||
if (options.verbose)
|
||||
fprintf(stdout, "Building Android package using ant.\n");
|
||||
|
||||
QString antTool = options.antTool;
|
||||
if (antTool.isEmpty()) {
|
||||
#if defined(Q_OS_WIN32)
|
||||
antTool = findInPath(QLatin1String("ant.bat"));
|
||||
#else
|
||||
antTool = findInPath(QLatin1String("ant"));
|
||||
#endif
|
||||
}
|
||||
|
||||
if (antTool.isEmpty()) {
|
||||
fprintf(stderr, "Cannot find ant in PATH. Please use --ant option to pass in the correct path.\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (options.verbose)
|
||||
fprintf(stdout, "Using ant: %s\n", qPrintable(antTool));
|
||||
|
||||
QString oldPath = QDir::currentPath();
|
||||
if (!QDir::setCurrent(options.outputDirectory)) {
|
||||
fprintf(stderr, "Cannot current path to %s\n", qPrintable(options.outputDirectory));
|
||||
return false;
|
||||
}
|
||||
|
||||
QString ant = QString::fromLatin1("%1 %2").arg(shellQuote(antTool)).arg(options.releasePackage ? QLatin1String(" release") : QLatin1String(" debug"));
|
||||
|
||||
FILE *antCommand = openProcess(ant);
|
||||
if (antCommand == 0) {
|
||||
fprintf(stderr, "Cannot run ant command: %s\n.", qPrintable(ant));
|
||||
return false;
|
||||
}
|
||||
|
||||
char buffer[512];
|
||||
while (fgets(buffer, sizeof(buffer), antCommand) != 0) {
|
||||
fprintf(stdout, "%s", buffer);
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
int errorCode = pclose(antCommand);
|
||||
if (errorCode != 0) {
|
||||
fprintf(stderr, "Building the android package failed!\n");
|
||||
if (!options.verbose)
|
||||
fprintf(stderr, " -- For more information, run this command with --verbose.\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!QDir::setCurrent(oldPath)) {
|
||||
fprintf(stderr, "Cannot change back to old path: %s\n", qPrintable(oldPath));
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
typedef QMap<QByteArray, QByteArray> GradleProperties;
|
||||
|
||||
static GradleProperties readGradleProperties(const QString &path)
|
||||
@ -2335,7 +2231,7 @@ static bool mergeGradleProperties(const QString &path, GradleProperties properti
|
||||
return true;
|
||||
}
|
||||
|
||||
bool buildGradleProject(const Options &options)
|
||||
bool buildAndroidProject(const Options &options)
|
||||
{
|
||||
GradleProperties localProperties;
|
||||
localProperties["sdk.dir"] = options.sdkPath.toLocal8Bit();
|
||||
@ -2403,12 +2299,6 @@ bool buildGradleProject(const Options &options)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool buildAndroidProject(const Options &options)
|
||||
{
|
||||
return options.gradle ? buildGradleProject(options)
|
||||
: buildAntProject(options);
|
||||
}
|
||||
|
||||
bool uninstallApk(const Options &options)
|
||||
{
|
||||
if (options.verbose)
|
||||
@ -2445,15 +2335,11 @@ enum PackageType {
|
||||
QString apkPath(const Options &options, PackageType pt)
|
||||
{
|
||||
QString path(options.outputDirectory);
|
||||
if (options.gradle) {
|
||||
path += QLatin1String("/build/outputs/apk/");
|
||||
QString buildType(options.releasePackage ? QLatin1String("release/") : QLatin1String("debug/"));
|
||||
if (QDir(path + buildType).exists())
|
||||
path += buildType;
|
||||
path += QDir(options.outputDirectory).dirName() + QLatin1Char('-');
|
||||
} else {
|
||||
path += QLatin1String("/bin/QtApp-");
|
||||
}
|
||||
path += QLatin1String("/build/outputs/apk/");
|
||||
QString buildType(options.releasePackage ? QLatin1String("release/") : QLatin1String("debug/"));
|
||||
if (QDir(path + buildType).exists())
|
||||
path += buildType;
|
||||
path += QDir(options.outputDirectory).dirName() + QLatin1Char('-');
|
||||
if (options.releasePackage) {
|
||||
path += QLatin1String("release-");
|
||||
if (pt == UnsignedAPK)
|
||||
@ -2930,8 +2816,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
if (options.build) {
|
||||
if (options.gradle)
|
||||
cleanAndroidFiles(options);
|
||||
cleanAndroidFiles(options);
|
||||
if (Q_UNLIKELY(options.timing))
|
||||
fprintf(stdout, "[TIMING] %d ms: Cleaned Android file\n", options.timer.elapsed());
|
||||
|
||||
@ -3005,9 +2890,6 @@ int main(int argc, char *argv[])
|
||||
if (Q_UNLIKELY(options.timing))
|
||||
fprintf(stdout, "[TIMING] %d ms: Updated files\n", options.timer.elapsed());
|
||||
|
||||
if (!options.gradle && !createAndroidProject(options))
|
||||
return CannotCreateAndroidProject;
|
||||
|
||||
if (Q_UNLIKELY(options.timing))
|
||||
fprintf(stdout, "[TIMING] %d ms: Created project\n", options.timer.elapsed());
|
||||
|
||||
|
@ -437,7 +437,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
// Run androiddeployqt
|
||||
static auto verbose = g_options.verbose ? QStringLiteral("--verbose") : QStringLiteral();
|
||||
if (!execCommand(QStringLiteral("%1 %3 --gradle --reinstall --output %2").arg(g_options.androidDeployQtCommand,
|
||||
if (!execCommand(QStringLiteral("%1 %3 --reinstall --output %2").arg(g_options.androidDeployQtCommand,
|
||||
g_options.buildPath,
|
||||
verbose), nullptr, g_options.verbose)) {
|
||||
return 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user