This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake".
The branch, master has been updated via 49cb2a504d1e00e51774a23bf1b91c982fa69e5d (commit) via df1ddeec128d68cc636f2dde6c2acd87af5658b6 (commit) from 917d98699e8dd13de89e2993b0b630cf64f17706 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=49cb2a504d1e00e51774a23bf1b91c982fa69e5d commit 49cb2a504d1e00e51774a23bf1b91c982fa69e5d Merge: 917d986 df1ddee Author: Craig Scott <craig.sc...@crascit.com> AuthorDate: Fri Sep 7 23:40:15 2018 +0000 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Fri Sep 7 19:40:24 2018 -0400 Merge topic 'ExternalProject-check-explicit-include' df1ddeec12 ExternalProject: Report error if local variables are not defined Acked-by: Kitware Robot <kwro...@kitware.com> Acked-by: Brad King <brad.k...@kitware.com> Merge-request: !2281 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=df1ddeec128d68cc636f2dde6c2acd87af5658b6 commit df1ddeec128d68cc636f2dde6c2acd87af5658b6 Author: Jean-Christophe Fillion-Robin <jchris.filli...@kitware.com> AuthorDate: Fri Aug 10 12:30:48 2018 -0400 Commit: Craig Scott <craig.sc...@crascit.com> CommitDate: Thu Sep 6 23:02:24 2018 +1000 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.hernan...@kitware.com> Co-authored-by: Craig Scott <craig.sc...@crascit.com> 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) diff --git a/Tests/RunCMake/ExternalProject/IncludeScope-Add-result.txt b/Tests/RunCMake/ExternalProject/IncludeScope-Add-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/ExternalProject/IncludeScope-Add-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/ExternalProject/IncludeScope-Add-stderr.txt b/Tests/RunCMake/ExternalProject/IncludeScope-Add-stderr.txt new file mode 100644 index 0000000..ff3e5c1 --- /dev/null +++ b/Tests/RunCMake/ExternalProject/IncludeScope-Add-stderr.txt @@ -0,0 +1,7 @@ +^CMake Error at .*/Modules/ExternalProject.cmake:[0-9]+ \(message\): + error: ExternalProject module must be explicitly included before using + ExternalProject_Add function +Call Stack \(most recent call first\): + .*/Modules/ExternalProject.cmake:[0-9]+ \(_ep_parse_arguments\) + IncludeScope-Add.cmake:[0-9]+ \(ExternalProject_Add\) + CMakeLists.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/ExternalProject/IncludeScope-Add.cmake b/Tests/RunCMake/ExternalProject/IncludeScope-Add.cmake new file mode 100644 index 0000000..1061ffd --- /dev/null +++ b/Tests/RunCMake/ExternalProject/IncludeScope-Add.cmake @@ -0,0 +1,12 @@ +function(IncludeScope_IncludeOnly) + include(ExternalProject) +endfunction() + +IncludeScope_IncludeOnly() + +ExternalProject_Add(MyProj + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" +) diff --git a/Tests/RunCMake/ExternalProject/IncludeScope-Add_Step-result.txt b/Tests/RunCMake/ExternalProject/IncludeScope-Add_Step-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/ExternalProject/IncludeScope-Add_Step-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/ExternalProject/IncludeScope-Add_Step-stderr.txt b/Tests/RunCMake/ExternalProject/IncludeScope-Add_Step-stderr.txt new file mode 100644 index 0000000..cbad4be --- /dev/null +++ b/Tests/RunCMake/ExternalProject/IncludeScope-Add_Step-stderr.txt @@ -0,0 +1,7 @@ +^CMake Error at .*/Modules/ExternalProject.cmake:[0-9]+ \(message\): + error: ExternalProject module must be explicitly included before using + ExternalProject_Add_Step function +Call Stack \(most recent call first\): + .*/Modules/ExternalProject.cmake:[0-9]+ \(_ep_parse_arguments\) + IncludeScope-Add_Step.cmake:[0-9]+ \(ExternalProject_Add_Step\) + CMakeLists.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/ExternalProject/IncludeScope-Add_Step.cmake b/Tests/RunCMake/ExternalProject/IncludeScope-Add_Step.cmake new file mode 100644 index 0000000..2a820f8 --- /dev/null +++ b/Tests/RunCMake/ExternalProject/IncludeScope-Add_Step.cmake @@ -0,0 +1,13 @@ +function(IncludeScope_DefineProj) + include(ExternalProject) + ExternalProject_Add(MyProj + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + ) +endfunction() + +IncludeScope_DefineProj() + +ExternalProject_Add_Step(MyProj extraStep COMMENT "Foo") diff --git a/Tests/RunCMake/ExternalProject/RunCMakeTest.cmake b/Tests/RunCMake/ExternalProject/RunCMakeTest.cmake index 09607f6..bf11381 100644 --- a/Tests/RunCMake/ExternalProject/RunCMakeTest.cmake +++ b/Tests/RunCMake/ExternalProject/RunCMakeTest.cmake @@ -1,5 +1,7 @@ include(RunCMake) +run_cmake(IncludeScope-Add) +run_cmake(IncludeScope-Add_Step) run_cmake(NoOptions) run_cmake(SourceEmpty) run_cmake(SourceMissing) ----------------------------------------------------------------------- Summary of changes: Modules/ExternalProject.cmake | 5 +++++ .../IncludeScope-Add-result.txt} | 0 Tests/RunCMake/ExternalProject/IncludeScope-Add-stderr.txt | 7 +++++++ Tests/RunCMake/ExternalProject/IncludeScope-Add.cmake | 12 ++++++++++++ .../IncludeScope-Add_Step-result.txt} | 0 .../ExternalProject/IncludeScope-Add_Step-stderr.txt | 7 +++++++ Tests/RunCMake/ExternalProject/IncludeScope-Add_Step.cmake | 13 +++++++++++++ Tests/RunCMake/ExternalProject/RunCMakeTest.cmake | 2 ++ 8 files changed, 46 insertions(+) copy Tests/RunCMake/{while/MissingArgument-result.txt => ExternalProject/IncludeScope-Add-result.txt} (100%) create mode 100644 Tests/RunCMake/ExternalProject/IncludeScope-Add-stderr.txt create mode 100644 Tests/RunCMake/ExternalProject/IncludeScope-Add.cmake copy Tests/RunCMake/{while/MissingArgument-result.txt => ExternalProject/IncludeScope-Add_Step-result.txt} (100%) create mode 100644 Tests/RunCMake/ExternalProject/IncludeScope-Add_Step-stderr.txt create mode 100644 Tests/RunCMake/ExternalProject/IncludeScope-Add_Step.cmake hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org https://cmake.org/mailman/listinfo/cmake-commits