diff options
author | Brad King <brad.king@kitware.com> | 2013-01-16 14:10:48 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2013-01-16 15:35:58 (GMT) |
commit | c0f1af926feb3494ada1a311441ea144926157a2 (patch) | |
tree | 8a560f8074bc84bbc84a1e04386d650d8da97e24 /Modules | |
parent | 3a7d1ce3ff0ea0565d463a341f42acd6bed8a6c4 (diff) | |
download | CMake-c0f1af926feb3494ada1a311441ea144926157a2.zip CMake-c0f1af926feb3494ada1a311441ea144926157a2.tar.gz CMake-c0f1af926feb3494ada1a311441ea144926157a2.tar.bz2 |
ExternalProject: Allow DEPENDS on normal targets (#13849)
The ExternalProject_Add DEPENDS option adds two types of dependencies.
It adds a target-level build order dependency between the external
project target and the named targets. It also adds a file-level
dependency on the "done" stamp file of the named external project
targets. Targets not created by ExternalProject_Add have no such stamp
file and no _EP_STAMP_DIR property. Prior to commit d14c0243 (Refactor
repeated code into function, 2012-04-26) we unconditionally accepted an
empty stamp dir and generated a dependency on a non-existent file.
After that commit we generate an error that no stamp dir is set.
Skip the file-level dependency when the named dependency is not an
external project target in order to allow this use case. Teach the
ExternalProject test to cover the case.
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/ExternalProject.cmake | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index 2355dac..ed7fd7c 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -1558,8 +1558,11 @@ function(_ep_add_configure_command name) set(file_deps) get_property(deps TARGET ${name} PROPERTY _EP_DEPENDS) foreach(dep IN LISTS deps) - _ep_get_step_stampfile(${dep} "done" done_stamp_file) - list(APPEND file_deps ${done_stamp_file}) + get_property(is_ep TARGET ${dep} PROPERTY _EP_IS_EXTERNAL_PROJECT) + if(is_ep) + _ep_get_step_stampfile(${dep} "done" done_stamp_file) + list(APPEND file_deps ${done_stamp_file}) + endif() endforeach() get_property(cmd_set TARGET ${name} PROPERTY _EP_CONFIGURE_COMMAND SET) |