summaryrefslogtreecommitdiffstats
path: root/Tests/ExternalProjectSubdir
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/ExternalProjectSubdir')
-rw-r--r--Tests/ExternalProjectSubdir/CMakeLists.txt15
-rw-r--r--Tests/ExternalProjectSubdir/Subdir1/CMakeLists.txt4
2 files changed, 19 insertions, 0 deletions
diff --git a/Tests/ExternalProjectSubdir/CMakeLists.txt b/Tests/ExternalProjectSubdir/CMakeLists.txt
index 013b418..e65087a 100644
--- a/Tests/ExternalProjectSubdir/CMakeLists.txt
+++ b/Tests/ExternalProjectSubdir/CMakeLists.txt
@@ -2,6 +2,19 @@ cmake_minimum_required(VERSION 3.2)
project(ExternalProjectSubdir NONE)
include(ExternalProject)
+# Remove the custom target output to be sure it runs in an
+# incremental test. Skip this on VS 6 because it sometimes
+# re-runs CMake after the custom command runs.
+if(NOT CMAKE_GENERATOR STREQUAL "Visual Studio 6")
+ file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/PreSubdir1.txt)
+endif()
+
+add_custom_target(PreSubdir1
+ COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/PreSubdir1.txt
+ )
+add_library(PreSubdir1Interface INTERFACE)
+add_dependencies(PreSubdir1Interface PreSubdir1)
+
ExternalProject_Add(Subdir1
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Subdir1
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/Subdir1
@@ -11,4 +24,6 @@ ExternalProject_Add(Subdir1
BUILD_COMMAND ""
INSTALL_COMMAND ""
+
+ DEPENDS PreSubdir1Interface
)
diff --git a/Tests/ExternalProjectSubdir/Subdir1/CMakeLists.txt b/Tests/ExternalProjectSubdir/Subdir1/CMakeLists.txt
index 28107f0..2303c3e 100644
--- a/Tests/ExternalProjectSubdir/Subdir1/CMakeLists.txt
+++ b/Tests/ExternalProjectSubdir/Subdir1/CMakeLists.txt
@@ -8,3 +8,7 @@ endif()
if(NOT "${GENEX_VAR}" STREQUAL "GENEX_VALUE")
message(SEND_ERROR "GENEX_VAR != 'GENEX_VALUE'")
endif()
+
+if(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/../PreSubdir1.txt")
+ message(SEND_ERROR "../PreSubdir1.txt not provided!")
+endif()