mirror of
https://github.com/Kitware/CMake.git
synced 2026-06-30 19:57:41 +00:00
ExternalProject: Allow dependencies on INTERFACE libraries
Respect INTERFACE library property whitelist. Check that a target has type "UTILITY" before querying other properties.
This commit is contained in:
@@ -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
|
||||
)
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user