Skip to content

Commit 41e6ee4

Browse files
committed
fix #13948
1 parent 65af641 commit 41e6ee4

2 files changed

Lines changed: 16 additions & 7 deletions

File tree

cli/cmdlineparser.cpp

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -550,8 +550,10 @@ CmdLineParser::Result CmdLineParser::parseFromArgs(int argc, const char* const a
550550
else if (std::strncmp(argv[i],"--addon-python=", 15) == 0)
551551
mSettings.addonPython.assign(argv[i]+15);
552552

553-
else if (std::strcmp(argv[i],"--analyze-all-vs-configs") == 0)
553+
else if (std::strcmp(argv[i],"--analyze-all-vs-configs") == 0) {
554554
mSettings.analyzeAllVsConfigs = true;
555+
mAnalyzeAllVsConfigsSetOnCmdLine = true;
556+
}
555557

556558
// Check configuration
557559
else if (std::strcmp(argv[i], "--check-config") == 0)
@@ -1036,8 +1038,10 @@ CmdLineParser::Result CmdLineParser::parseFromArgs(int argc, const char* const a
10361038
return Result::Fail;
10371039
}
10381040

1039-
else if (std::strcmp(argv[i],"--no-analyze-all-vs-configs") == 0)
1041+
else if (std::strcmp(argv[i],"--no-analyze-all-vs-configs") == 0) {
10401042
mSettings.analyzeAllVsConfigs = false;
1043+
mAnalyzeAllVsConfigsSetOnCmdLine = true;
1044+
}
10411045

10421046
else if (std::strcmp(argv[i], "--no-check-headers") == 0)
10431047
mSettings.checkHeaders = false;
@@ -1639,12 +1643,14 @@ CmdLineParser::Result CmdLineParser::parseFromArgs(int argc, const char* const a
16391643

16401644
if (!mSettings.analyzeAllVsConfigs) {
16411645
if (projectType != ImportProject::Type::VS_SLN && projectType != ImportProject::Type::VS_VCXPROJ) {
1642-
mLogger.printError("--no-analyze-all-vs-configs has no effect - no Visual Studio project provided.");
1643-
return Result::Fail;
1646+
if (mAnalyzeAllVsConfigsSetOnCmdLine) {
1647+
mLogger.printError("--no-analyze-all-vs-configs has no effect - no Visual Studio project provided.");
1648+
return Result::Fail;
1649+
}
1650+
} else {
1651+
// TODO: bail out when this does nothing
1652+
project.selectOneVsConfig(mSettings.platform.type);
16441653
}
1645-
1646-
// TODO: bail out when this does nothing
1647-
project.selectOneVsConfig(mSettings.platform.type);
16481654
}
16491655

16501656
if (!mSettings.buildDir.empty() && !Path::isDirectory(mSettings.buildDir)) {

cli/cmdlineparser.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,9 @@ class CmdLineParser {
174174
std::vector<std::string> mIgnoredPaths;
175175
Settings &mSettings;
176176
Suppressions &mSuppressions;
177+
bool mAnalyzeAllVsConfigsSetOnCmdLine = false;
178+
179+
friend class TestCmdlineParser;
177180
};
178181

179182
/// @}

0 commit comments

Comments
 (0)