diff --git a/tools/aapt2/cmd/Link.cpp b/tools/aapt2/cmd/Link.cpp index 97e02f9698019..b86188fa85032 100644 --- a/tools/aapt2/cmd/Link.cpp +++ b/tools/aapt2/cmd/Link.cpp @@ -1873,7 +1873,8 @@ int Link(const std::vector& args) { &options.extensions_to_not_compress) .OptionalFlagList("--split", "Split resources matching a set of configs out to a Split APK.\n" - "Syntax: path/to/output.apk:[,[...]].", + "Syntax: path/to/output.apk:[,[...]].\n" + "On Windows, use a semicolon ';' separator instead.", &split_args) .OptionalSwitch("-v", "Enables verbose logging.", &verbose); diff --git a/tools/aapt2/cmd/Optimize.cpp b/tools/aapt2/cmd/Optimize.cpp index 8f8e0c8e4f6d1..e99ee8aa93c20 100644 --- a/tools/aapt2/cmd/Optimize.cpp +++ b/tools/aapt2/cmd/Optimize.cpp @@ -302,7 +302,8 @@ int Optimize(const std::vector& args) { &configs) .OptionalFlagList("--split", "Split resources matching a set of configs out to a " - "Split APK.\nSyntax: path/to/output.apk:[,[...]].", + "Split APK.\nSyntax: path/to/output.apk;[,[...]].\n" + "On Windows, use a semicolon ';' separator instead.", &split_args) .OptionalSwitch("--enable-sparse-encoding", "Enables encoding sparse entries using a binary search tree.\n" diff --git a/tools/aapt2/cmd/Util.cpp b/tools/aapt2/cmd/Util.cpp index fd94bbc0a1c30..14d426061e561 100644 --- a/tools/aapt2/cmd/Util.cpp +++ b/tools/aapt2/cmd/Util.cpp @@ -57,10 +57,17 @@ bool ParseSplitParameter(const StringPiece& arg, IDiagnostics* diag, std::string CHECK(out_path != nullptr); CHECK(out_split != nullptr); - std::vector parts = util::Split(arg, ':'); +#ifdef _WIN32 + const char sSeparator = ';'; +#else + const char sSeparator = ':'; +#endif + + std::vector parts = util::Split(arg, sSeparator); if (parts.size() != 2) { diag->Error(DiagMessage() << "invalid split parameter '" << arg << "'"); - diag->Note(DiagMessage() << "should be --split path/to/output.apk:[,...]"); + diag->Note(DiagMessage() << "should be --split path/to/output.apk" << sSeparator + << "[,...]."); return false; }