summaryrefslogtreecommitdiffstats
path: root/Modules/ExternalProject.cmake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2020-09-14 19:05:33 (GMT)
committerBrad King <brad.king@kitware.com>2020-09-18 17:46:45 (GMT)
commitb8ecd4df5f9259f102d82011693eca6282be5ae6 (patch)
tree435d7ae8fc75a2ca97b4b1d5fc7404fbe92a4045 /Modules/ExternalProject.cmake
parentfe258f638276c879bbdd2ac165ac4caba0efc921 (diff)
downloadCMake-b8ecd4df5f9259f102d82011693eca6282be5ae6.zip
CMake-b8ecd4df5f9259f102d82011693eca6282be5ae6.tar.gz
CMake-b8ecd4df5f9259f102d82011693eca6282be5ae6.tar.bz2
ExternalProject: Use CMP0114 NEW behavior with Xcode "new build system"
The ExternalProject module cannot be implemented in the Xcode "new build system" without using CMP0114's NEW behavior. When configuring for that build system, warn if the policy is not set to NEW and use NEW behavior anyway.
Diffstat (limited to 'Modules/ExternalProject.cmake')
-rw-r--r--Modules/ExternalProject.cmake12
1 files changed, 12 insertions, 0 deletions
diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake
index b795784..8bbaf5a 100644
--- a/Modules/ExternalProject.cmake
+++ b/Modules/ExternalProject.cmake
@@ -3342,6 +3342,18 @@ function(ExternalProject_Add name)
cmake_policy(GET CMP0114 cmp0114
PARENT_SCOPE # undocumented, do not use outside of CMake
)
+ if(CMAKE_XCODE_BUILD_SYSTEM VERSION_GREATER_EQUAL 12 AND NOT cmp0114 STREQUAL "NEW")
+ message(AUTHOR_WARNING
+ "Policy CMP0114 is not set to NEW. "
+ "In order to support the Xcode \"new build system\", "
+ "this project must be updated to set policy CMP0114 to NEW."
+ "\n"
+ "Since CMake is generating for the Xcode \"new build system\", "
+ "ExternalProject_Add will use policy CMP0114's NEW behavior anyway, "
+ "but the generated build system may not match what the project intends."
+ )
+ set(cmp0114 "NEW")
+ endif()
_ep_get_configuration_subdir_suffix(cfgdir)