summaryrefslogtreecommitdiffstats
path: root/Modules/ExternalProject.cmake
diff options
context:
space:
mode:
authorJean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>2018-08-10 16:30:48 (GMT)
committerCraig Scott <craig.scott@crascit.com>2018-09-06 13:02:24 (GMT)
commitdf1ddeec128d68cc636f2dde6c2acd87af5658b6 (patch)
tree49dd5bbe43601d06455e2254ad722dd80d1ece2f /Modules/ExternalProject.cmake
parenteba2b13a835000a614f21a1205a598462a4f8843 (diff)
downloadCMake-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.cmake5
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)