Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1e21ff00 authored by Adam Lesinski's avatar Adam Lesinski
Browse files

AAPT2: accept argument file list for -R

Bug:29462255
Change-Id: Ia83919a3e7de7fe2056a3f7613621972cccd49cb
parent 97b56144
Loading
Loading
Loading
Loading
+16 −1
Original line number Original line Diff line number Diff line
@@ -1389,6 +1389,7 @@ private:
int link(const std::vector<StringPiece>& args) {
int link(const std::vector<StringPiece>& args) {
    LinkContext context;
    LinkContext context;
    LinkOptions options;
    LinkOptions options;
    std::vector<std::string> overlayArgList;
    Maybe<std::string> privateSymbolsPackage;
    Maybe<std::string> privateSymbolsPackage;
    Maybe<std::string> minSdkVersion, targetSdkVersion;
    Maybe<std::string> minSdkVersion, targetSdkVersion;
    Maybe<std::string> renameManifestPackage, renameInstrumentationTargetPackage;
    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("-I", "Adds an Android APK to link against", &options.includePaths)
            .optionalFlagList("-R", "Compilation unit to link, using `overlay` semantics.\n"
            .optionalFlagList("-R", "Compilation unit to link, using `overlay` semantics.\n"
                              "The last conflicting resource given takes precedence.",
                              "The last conflicting resource given takes precedence.",
                              &options.overlayFiles)
                              &overlayArgList)
            .optionalFlag("--java", "Directory in which to generate R.java",
            .optionalFlag("--java", "Directory in which to generate R.java",
                          &options.generateJavaClassPath)
                          &options.generateJavaClassPath)
            .optionalFlag("--proguard", "Output file for generated Proguard rules",
            .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) {
    if (verbose) {
        context.setVerbose(verbose);
        context.setVerbose(verbose);
    }
    }