From 33207a9a87d53b7cb97e0b30bc36dccad3c50289 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 16 Sep 2009 09:52:04 -0400 Subject: Test add_subdirectory inside function This commit teaches the FunctionTest to check variable scope behavior when a subdirectory is added inside a function call. Any PARENT_SCOPE sets in the subdirectory should affect only the function scope which called add_subdirectory and not its parent scope. --- Tests/FunctionTest/CMakeLists.txt | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/Tests/FunctionTest/CMakeLists.txt b/Tests/FunctionTest/CMakeLists.txt index 2f62c27..ef55173 100644 --- a/Tests/FunctionTest/CMakeLists.txt +++ b/Tests/FunctionTest/CMakeLists.txt @@ -130,4 +130,39 @@ ELSE(DEFINED SUBDIR_DEFINED) FAILED("Subdir Define Test" "(${SUBDIR_DEFINED})") ENDIF(DEFINED SUBDIR_DEFINED) +# Test function-scoped directory. +FUNCTION(ADD_SUBDIR2 dir) + ADD_SUBDIRECTORY("${dir}" "${dir}2") + # The parent scope sets in the subdir should be visible here. + IF(DEFINED SUBDIR_UNDEFINED) + FAILED("Subdir Function Undefine Test 1" "(${SUBDIR_UNDEFINED})") + ELSE(DEFINED SUBDIR_UNDEFINED) + PASS("Subdir Function Undefine Test 1" "(${SUBDIR_UNDEFINED})") + ENDIF(DEFINED SUBDIR_UNDEFINED) + IF(DEFINED SUBDIR_DEFINED) + PASS("Subdir Function Define Test 1" "(${SUBDIR_DEFINED})") + ELSE(DEFINED SUBDIR_DEFINED) + FAILED("Subdir Function Define Test 1" "(${SUBDIR_DEFINED})") + ENDIF(DEFINED SUBDIR_DEFINED) +ENDFUNCTION(ADD_SUBDIR2) + +# Reset test variables. +SET(SUBDIR_UNDEFINED 1) +SET(SUBDIR_DEFINED) + +# Run test function. +ADD_SUBDIR2(SubDirScope) + +# The parent scope sets in the subdir should not be visible here. +IF(DEFINED SUBDIR_UNDEFINED) + PASS("Subdir Function Undefine Test 2" "(${SUBDIR_UNDEFINED})") +ELSE(DEFINED SUBDIR_UNDEFINED) + FAILED("Subdir Function Undefine Test 2" "(${SUBDIR_UNDEFINED})") +ENDIF(DEFINED SUBDIR_UNDEFINED) +IF(DEFINED SUBDIR_DEFINED) + FAILED("Subdir Function Define Test 2" "(${SUBDIR_DEFINED})") +ELSE(DEFINED SUBDIR_DEFINED) + PASS("Subdir Function Define Test 2" "(${SUBDIR_DEFINED})") +ENDIF(DEFINED SUBDIR_DEFINED) + ADD_EXECUTABLE(FunctionTest functionTest.c) -- cgit v0.12