Browse Source

Tests: Add case to cover ExternalProject with subdirectories

Add an ExternalProjectSubdir test directory with a minimal test showing
use of ExternalProject_Add for a source tree in a subdirectory.  This
will allow us to easily add test external projects that cover specific
behavior where the client project must check results.
Brad King 10 years ago
parent
commit
1cf43dcf7c

+ 12 - 0
Tests/CMakeLists.txt

@@ -1326,6 +1326,18 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
   set_tests_properties(ExternalProject PROPERTIES
     TIMEOUT ${CMAKE_LONG_TEST_TIMEOUT})
 
+  add_test(NAME ExternalProjectSubdir
+    COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
+    --build-and-test
+    "${CMake_SOURCE_DIR}/Tests/ExternalProjectSubdir"
+    "${CMake_BINARY_DIR}/Tests/ExternalProjectSubdir"
+    ${build_generator_args}
+    --build-project ExternalProjectSubdir
+    --force-new-ctest-process
+    --build-options ${build_options}
+    )
+  list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/ExternalProjectSubdir")
+
   add_test(ExternalProjectLocal ${CMAKE_CTEST_COMMAND}
     --build-and-test
     "${CMake_SOURCE_DIR}/Tests/ExternalProjectLocal"

+ 14 - 0
Tests/ExternalProjectSubdir/CMakeLists.txt

@@ -0,0 +1,14 @@
+cmake_minimum_required(VERSION 3.2)
+project(ExternalProjectSubdir NONE)
+include(ExternalProject)
+
+ExternalProject_Add(Subdir1
+  SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Subdir1
+  BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/Subdir1
+
+  CMAKE_ARGS -DNORMAL_VAR=NORMAL_VALUE
+  LOG_CONFIGURE 1
+
+  BUILD_COMMAND ""
+  INSTALL_COMMAND ""
+  )

+ 6 - 0
Tests/ExternalProjectSubdir/Subdir1/CMakeLists.txt

@@ -0,0 +1,6 @@
+cmake_minimum_required(VERSION 3.2)
+project(Subdir1 NONE)
+
+if(NOT "${NORMAL_VAR}" STREQUAL "NORMAL_VALUE")
+  message(SEND_ERROR "NORMAL_VAR != 'NORMAL_VALUE'")
+endif()