From 010c5959864a10f4b83907fb058006e118dd740d Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 23 Nov 2015 10:51:37 -0500 Subject: [PATCH] Tests: Add case for add_subdirectory inside a function --- .../add_subdirectory/Function-stdout.txt | 10 ++++++++++ Tests/RunCMake/add_subdirectory/Function.cmake | 17 +++++++++++++++++ .../add_subdirectory/Function/CMakeLists.txt | 5 +++++ .../add_subdirectory/RunCMakeTest.cmake | 1 + 4 files changed, 33 insertions(+) create mode 100644 Tests/RunCMake/add_subdirectory/Function-stdout.txt create mode 100644 Tests/RunCMake/add_subdirectory/Function.cmake create mode 100644 Tests/RunCMake/add_subdirectory/Function/CMakeLists.txt diff --git a/Tests/RunCMake/add_subdirectory/Function-stdout.txt b/Tests/RunCMake/add_subdirectory/Function-stdout.txt new file mode 100644 index 000000000..16fa857f1 --- /dev/null +++ b/Tests/RunCMake/add_subdirectory/Function-stdout.txt @@ -0,0 +1,10 @@ +-- var='1' before my_add_subdirectory +-- var='2' in my_add_subdirectory before add_subdirectory +-- var='2' in subdirectory before set +-- var='3' in subdirectory after set +-- var_sub='' in subdirectory after set PARENT_SCOPE +-- var='2' in my_add_subdirectory after add_subdirectory +-- var_sub='sub' in my_add_subdirectory after add_subdirectory +-- var='1' after my_add_subdirectory +-- var_sub='' after my_add_subdirectory +-- var='3' taken from subdirectory diff --git a/Tests/RunCMake/add_subdirectory/Function.cmake b/Tests/RunCMake/add_subdirectory/Function.cmake new file mode 100644 index 000000000..e804da968 --- /dev/null +++ b/Tests/RunCMake/add_subdirectory/Function.cmake @@ -0,0 +1,17 @@ +function(my_add_subdirectory dir) + set(var 2) + message(STATUS "var='${var}' in my_add_subdirectory before add_subdirectory") + add_subdirectory(${dir}) + message(STATUS "var='${var}' in my_add_subdirectory after add_subdirectory") + message(STATUS "var_sub='${var_sub}' in my_add_subdirectory after add_subdirectory") +endfunction() + +set(var 1) + +message(STATUS "var='${var}' before my_add_subdirectory") +my_add_subdirectory(Function) +message(STATUS "var='${var}' after my_add_subdirectory") +message(STATUS "var_sub='${var_sub}' after my_add_subdirectory") + +get_directory_property(sub_var DIRECTORY Function DEFINITION var) +message(STATUS "var='${sub_var}' taken from subdirectory") diff --git a/Tests/RunCMake/add_subdirectory/Function/CMakeLists.txt b/Tests/RunCMake/add_subdirectory/Function/CMakeLists.txt new file mode 100644 index 000000000..7b9e801ce --- /dev/null +++ b/Tests/RunCMake/add_subdirectory/Function/CMakeLists.txt @@ -0,0 +1,5 @@ +message(STATUS "var='${var}' in subdirectory before set") +set(var 3) +message(STATUS "var='${var}' in subdirectory after set") +set(var_sub sub PARENT_SCOPE) +message(STATUS "var_sub='${var_sub}' in subdirectory after set PARENT_SCOPE") diff --git a/Tests/RunCMake/add_subdirectory/RunCMakeTest.cmake b/Tests/RunCMake/add_subdirectory/RunCMakeTest.cmake index a3ddec8ec..9d514e162 100644 --- a/Tests/RunCMake/add_subdirectory/RunCMakeTest.cmake +++ b/Tests/RunCMake/add_subdirectory/RunCMakeTest.cmake @@ -2,3 +2,4 @@ include(RunCMake) run_cmake(DoesNotExist) run_cmake(Missing) +run_cmake(Function)