diff options
author | Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> | 2018-08-10 16:30:48 (GMT) |
---|---|---|
committer | Craig Scott <craig.scott@crascit.com> | 2018-09-06 13:02:24 (GMT) |
commit | df1ddeec128d68cc636f2dde6c2acd87af5658b6 (patch) | |
tree | 49dd5bbe43601d06455e2254ad722dd80d1ece2f /Modules/ExternalProject.cmake | |
parent | eba2b13a835000a614f21a1205a598462a4f8843 (diff) | |
download | CMake-df1ddeec128d68cc636f2dde6c2acd87af5658b6.zip CMake-df1ddeec128d68cc636f2dde6c2acd87af5658b6.tar.gz CMake-df1ddeec128d68cc636f2dde6c2acd87af5658b6.tar.bz2 |
ExternalProject: Report error if local variables are not defined
Since in some situations, ExternalProject module may be included in
a sub-directory, functions will be available in the global scope but
local variables like "_ep_keywords_<keyword>" will not be defined, this
commit checks and reports an error indicating that the ExternalProject
module must be explicitly included before using any of the ExternalProject_*
functions that require the module's inclusion within the current scope
or above.
Co-authored-by: Pablo Hernandez <pablo.hernandez@kitware.com>
Co-authored-by: Craig Scott <craig.scott@crascit.com>
Diffstat (limited to 'Modules/ExternalProject.cmake')
-rw-r--r-- | Modules/ExternalProject.cmake | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index 0c5b33f..f987d2d 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -934,6 +934,11 @@ function(_ep_parse_arguments f name ns args) # We loop through ARGN and consider the namespace starting with an # upper-case letter followed by at least two more upper-case letters, # numbers or underscores to be keywords. + + if(NOT DEFINED _ExternalProject_SELF) + message(FATAL_ERROR "error: ExternalProject module must be explicitly included before using ${f} function") + endif() + set(key) foreach(arg IN LISTS args) |