From 609c949061470473d40bd81494458710634b941d Mon Sep 17 00:00:00 2001 From: Martin Duffy Date: Thu, 20 Feb 2025 11:04:26 -0500 Subject: add_dependencies: Allow calling with no dependencies Fixes: #26713 --- Help/command/add_dependencies.rst | 5 ++++- Help/release/dev/add-dependency-one-arg.rst | 4 ++++ Source/cmAddDependenciesCommand.cxx | 2 +- Tests/RunCMake/add_dependencies/NoArgs-result.txt | 1 + Tests/RunCMake/add_dependencies/NoArgs-stderr.txt | 4 ++++ Tests/RunCMake/add_dependencies/NoArgs.cmake | 1 + Tests/RunCMake/add_dependencies/NoDependencies.cmake | 3 +++ Tests/RunCMake/add_dependencies/RunCMakeTest.cmake | 2 ++ 8 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 Help/release/dev/add-dependency-one-arg.rst create mode 100644 Tests/RunCMake/add_dependencies/NoArgs-result.txt create mode 100644 Tests/RunCMake/add_dependencies/NoArgs-stderr.txt create mode 100644 Tests/RunCMake/add_dependencies/NoArgs.cmake create mode 100644 Tests/RunCMake/add_dependencies/NoDependencies.cmake diff --git a/Help/command/add_dependencies.rst b/Help/command/add_dependencies.rst index c619212..b0dd494 100644 --- a/Help/command/add_dependencies.rst +++ b/Help/command/add_dependencies.rst @@ -12,7 +12,6 @@ ensure that they build before ```` does. A top-level target is one created by one of the :command:`add_executable`, :command:`add_library`, or :command:`add_custom_target` commands (but not targets generated by CMake like ``install``). -At least one ```` must be given. Dependencies added to an :ref:`imported target ` or an :ref:`interface library ` are followed @@ -32,6 +31,10 @@ transitively in its place since the target itself does not build. finished before sources in ```` start compiling; this ensures generated sources are available. +.. versionchanged:: 4.1 + The command may be called with no dependencies. + Previously, at least one dependency was required. + See Also ^^^^^^^^ diff --git a/Help/release/dev/add-dependency-one-arg.rst b/Help/release/dev/add-dependency-one-arg.rst new file mode 100644 index 0000000..e077258 --- /dev/null +++ b/Help/release/dev/add-dependency-one-arg.rst @@ -0,0 +1,4 @@ +add-dependency-one-arg +---------------------- + +* The :command:`add_dependencies` command may be called with no dependencies. diff --git a/Source/cmAddDependenciesCommand.cxx b/Source/cmAddDependenciesCommand.cxx index aa04018..1dcf8a8 100644 --- a/Source/cmAddDependenciesCommand.cxx +++ b/Source/cmAddDependenciesCommand.cxx @@ -12,7 +12,7 @@ bool cmAddDependenciesCommand(std::vector const& args, cmExecutionStatus& status) { - if (args.size() < 2) { + if (args.empty()) { status.SetError("called with incorrect number of arguments"); return false; } diff --git a/Tests/RunCMake/add_dependencies/NoArgs-result.txt b/Tests/RunCMake/add_dependencies/NoArgs-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/add_dependencies/NoArgs-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/add_dependencies/NoArgs-stderr.txt b/Tests/RunCMake/add_dependencies/NoArgs-stderr.txt new file mode 100644 index 0000000..8af39ab --- /dev/null +++ b/Tests/RunCMake/add_dependencies/NoArgs-stderr.txt @@ -0,0 +1,4 @@ +CMake Error at NoArgs.cmake:[0-9]+ \(add_dependencies\): + add_dependencies called with incorrect number of arguments +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\) diff --git a/Tests/RunCMake/add_dependencies/NoArgs.cmake b/Tests/RunCMake/add_dependencies/NoArgs.cmake new file mode 100644 index 0000000..6c6da2b --- /dev/null +++ b/Tests/RunCMake/add_dependencies/NoArgs.cmake @@ -0,0 +1 @@ +add_dependencies() diff --git a/Tests/RunCMake/add_dependencies/NoDependencies.cmake b/Tests/RunCMake/add_dependencies/NoDependencies.cmake new file mode 100644 index 0000000..21e0b89 --- /dev/null +++ b/Tests/RunCMake/add_dependencies/NoDependencies.cmake @@ -0,0 +1,3 @@ +enable_language(C) +add_library(a a.c) +add_dependencies(a ${noDependencies}) diff --git a/Tests/RunCMake/add_dependencies/RunCMakeTest.cmake b/Tests/RunCMake/add_dependencies/RunCMakeTest.cmake index 507d43f..502aa7c 100644 --- a/Tests/RunCMake/add_dependencies/RunCMakeTest.cmake +++ b/Tests/RunCMake/add_dependencies/RunCMakeTest.cmake @@ -1,5 +1,7 @@ include(RunCMake) +run_cmake(NoArgs) run_cmake(NoTarget) +run_cmake(NoDependencies) run_cmake(ReadOnlyProperty) run_cmake(RetrieveDependencies) -- cgit v0.12