mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-08 23:00:07 -06:00
Defer check for sources within a target until generation.
The `add_library` and `add_executable` commands can now be called with no source-files and won't generate a warning or error message, as long as source-files will be added later via the `target_sources` command. If during the generation step still no sources are associated with targets created by such calls a useful error message will be generated and generation fails. Targets of type `INTERFACE_LIBRARY`, `UTILITY` or `GLOBAL_TARGET` are excluded from this check because we do not need sources for these target types during generation. Fixes: #16872
This commit is contained in:
@@ -18,7 +18,7 @@ class cmExecutionStatus;
|
||||
bool cmAddExecutableCommand::InitialPass(std::vector<std::string> const& args,
|
||||
cmExecutionStatus&)
|
||||
{
|
||||
if (args.size() < 2) {
|
||||
if (args.empty()) {
|
||||
this->SetError("called with incorrect number of arguments");
|
||||
return false;
|
||||
}
|
||||
@@ -191,12 +191,6 @@ bool cmAddExecutableCommand::InitialPass(std::vector<std::string> const& args,
|
||||
}
|
||||
}
|
||||
|
||||
if (s == args.end()) {
|
||||
this->SetError(
|
||||
"called with incorrect number of arguments, no sources provided");
|
||||
return false;
|
||||
}
|
||||
|
||||
std::vector<std::string> srclists(s, args.end());
|
||||
cmTarget* tgt =
|
||||
this->Makefile->AddExecutable(exename.c_str(), srclists, excludeFromAll);
|
||||
|
||||
Reference in New Issue
Block a user