AAPT2: accept argument file list for -R
Bug:29462255 Change-Id: Ia83919a3e7de7fe2056a3f7613621972cccd49cb
This commit is contained in:
@ -1389,6 +1389,7 @@ private:
|
||||
int link(const std::vector<StringPiece>& args) {
|
||||
LinkContext context;
|
||||
LinkOptions options;
|
||||
std::vector<std::string> overlayArgList;
|
||||
Maybe<std::string> privateSymbolsPackage;
|
||||
Maybe<std::string> minSdkVersion, targetSdkVersion;
|
||||
Maybe<std::string> renameManifestPackage, renameInstrumentationTargetPackage;
|
||||
@ -1408,7 +1409,7 @@ int link(const std::vector<StringPiece>& args) {
|
||||
.optionalFlagList("-I", "Adds an Android APK to link against", &options.includePaths)
|
||||
.optionalFlagList("-R", "Compilation unit to link, using `overlay` semantics.\n"
|
||||
"The last conflicting resource given takes precedence.",
|
||||
&options.overlayFiles)
|
||||
&overlayArgList)
|
||||
.optionalFlag("--java", "Directory in which to generate R.java",
|
||||
&options.generateJavaClassPath)
|
||||
.optionalFlag("--proguard", "Output file for generated Proguard rules",
|
||||
@ -1493,6 +1494,20 @@ int link(const std::vector<StringPiece>& args) {
|
||||
}
|
||||
}
|
||||
|
||||
// Expand all argument-files passed to -R.
|
||||
for (const std::string& arg : overlayArgList) {
|
||||
if (util::stringStartsWith<char>(arg, "@")) {
|
||||
const std::string path = arg.substr(1, arg.size() - 1);
|
||||
std::string error;
|
||||
if (!file::appendArgsFromFile(path, &options.overlayFiles, &error)) {
|
||||
context.getDiagnostics()->error(DiagMessage(path) << error);
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
options.overlayFiles.push_back(arg);
|
||||
}
|
||||
}
|
||||
|
||||
if (verbose) {
|
||||
context.setVerbose(verbose);
|
||||
}
|
||||
|
Reference in New Issue
Block a user