diff options
author | Brad King <brad.king@kitware.com> | 2015-04-21 15:32:22 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-04-22 12:48:52 (GMT) |
commit | e1c6df392bae4f807bbc56f2c4320de412f48721 (patch) | |
tree | 6ef9578dcdbdd01d6ee5059374c56a590a326392 /Tests/ExternalProjectSubdir | |
parent | c0502faa4b6c0a3c33d1b0dd346801ff8d4f8b0d (diff) | |
download | CMake-e1c6df392bae4f807bbc56f2c4320de412f48721.zip CMake-e1c6df392bae4f807bbc56f2c4320de412f48721.tar.gz CMake-e1c6df392bae4f807bbc56f2c4320de412f48721.tar.bz2 |
ExternalProject: Allow dependencies on INTERFACE libraries
Respect INTERFACE library property whitelist. Check that a target has
type "UTILITY" before querying other properties.
Diffstat (limited to 'Tests/ExternalProjectSubdir')
-rw-r--r-- | Tests/ExternalProjectSubdir/CMakeLists.txt | 15 | ||||
-rw-r--r-- | Tests/ExternalProjectSubdir/Subdir1/CMakeLists.txt | 4 |
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() |