diff --git a/cli/cmdlineparser.cpp b/cli/cmdlineparser.cpp index 173e63133..4754bf4b4 100644 --- a/cli/cmdlineparser.cpp +++ b/cli/cmdlineparser.cpp @@ -665,7 +665,6 @@ bool CmdLineParser::parseFromArgs(int argc, const char* const argv[]) ImportProject::Type projType = mSettings.project.import(projectFile, &mSettings); mSettings.project.projectType = projType; if (projType == ImportProject::Type::CPPCHECK_GUI) { - mPathNames = mSettings.project.guiProject.pathNames; for (const std::string &lib : mSettings.project.guiProject.libraries) mSettings.libraries.emplace_back(lib); @@ -1032,12 +1031,20 @@ bool CmdLineParser::parseFromArgs(int argc, const char* const argv[]) return true; } + if (!mPathNames.empty() && mSettings.project.projectType != ImportProject::Type::NONE) { + mLogger.printError("--project cannot be used in conjunction with source files."); + return false; + } + // Print error only if we have "real" command and expect files - if (!mExitAfterPrint && mPathNames.empty() && mSettings.project.fileSettings.empty()) { + if (!mExitAfterPrint && mPathNames.empty() && mSettings.project.guiProject.pathNames.empty() && mSettings.project.fileSettings.empty()) { mLogger.printError("no C or C++ source files found."); return false; } + if (!mSettings.project.guiProject.pathNames.empty()) + mPathNames = mSettings.project.guiProject.pathNames; + // Use paths _pathnames if no base paths for relative path output are given if (mSettings.basePaths.empty() && mSettings.relativePaths) mSettings.basePaths = mPathNames; diff --git a/releasenotes.txt b/releasenotes.txt index b0b87e6db..bda7ad136 100644 --- a/releasenotes.txt +++ b/releasenotes.txt @@ -20,4 +20,5 @@ Other: - The undocumented and deprecated command-line options `--template