diff options
-rw-r--r-- | Source/cmAddDependenciesCommand.cxx | 12 | ||||
-rw-r--r-- | Tests/RunCMake/CMakeLists.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/add_dependencies/CMakeLists.txt | 3 | ||||
-rw-r--r-- | Tests/RunCMake/add_dependencies/NoTarget-result.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/add_dependencies/NoTarget-stderr.txt | 9 | ||||
-rw-r--r-- | Tests/RunCMake/add_dependencies/NoTarget.cmake | 1 | ||||
-rw-r--r-- | Tests/RunCMake/add_dependencies/RunCMakeTest.cmake | 3 |
7 files changed, 26 insertions, 4 deletions
diff --git a/Source/cmAddDependenciesCommand.cxx b/Source/cmAddDependenciesCommand.cxx index a77140d..04a304e 100644 --- a/Source/cmAddDependenciesCommand.cxx +++ b/Source/cmAddDependenciesCommand.cxx @@ -35,10 +35,14 @@ bool cmAddDependenciesCommand } else { - std::string error = "Adding dependency to non-existent target: "; - error += target_name; - this->SetError(error.c_str()); - return false; + cmOStringStream e; + e << "Cannot add target-level dependencies to non-existent target \"" + << target_name << "\".\n" + << "The add_dependencies works for top-level logical targets created " + << "by the add_executable, add_library, or add_custom_target commands. " + << "If you want to add file-level dependencies see the DEPENDS option " + << "of the add_custom_target and add_custom_command commands."; + this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str()); } return true; diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index a3c9605..402c8a9 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -68,6 +68,7 @@ if(NOT WIN32) endif() add_RunCMake_test(CompatibleInterface) +add_RunCMake_test(add_dependencies) add_RunCMake_test(build_command) add_RunCMake_test(find_package) add_RunCMake_test(include) diff --git a/Tests/RunCMake/add_dependencies/CMakeLists.txt b/Tests/RunCMake/add_dependencies/CMakeLists.txt new file mode 100644 index 0000000..e8db6b0 --- /dev/null +++ b/Tests/RunCMake/add_dependencies/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 2.8) +project(${RunCMake_TEST} NONE) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/add_dependencies/NoTarget-result.txt b/Tests/RunCMake/add_dependencies/NoTarget-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/add_dependencies/NoTarget-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/add_dependencies/NoTarget-stderr.txt b/Tests/RunCMake/add_dependencies/NoTarget-stderr.txt new file mode 100644 index 0000000..6af2707 --- /dev/null +++ b/Tests/RunCMake/add_dependencies/NoTarget-stderr.txt @@ -0,0 +1,9 @@ +CMake Error at NoTarget.cmake:1 \(add_dependencies\): + Cannot add target-level dependencies to non-existent target "foo". + + The add_dependencies works for top-level logical targets created by the + add_executable, add_library, or add_custom_target commands. If you want to + add file-level dependencies see the DEPENDS option of the add_custom_target + and add_custom_command commands. +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/add_dependencies/NoTarget.cmake b/Tests/RunCMake/add_dependencies/NoTarget.cmake new file mode 100644 index 0000000..9037694 --- /dev/null +++ b/Tests/RunCMake/add_dependencies/NoTarget.cmake @@ -0,0 +1 @@ +add_dependencies(foo bar) diff --git a/Tests/RunCMake/add_dependencies/RunCMakeTest.cmake b/Tests/RunCMake/add_dependencies/RunCMakeTest.cmake new file mode 100644 index 0000000..30b7e67 --- /dev/null +++ b/Tests/RunCMake/add_dependencies/RunCMakeTest.cmake @@ -0,0 +1,3 @@ +include(RunCMake) + +run_cmake(NoTarget) |