summaryrefslogtreecommitdiffstats
path: root/Source/CMakeLists.txt
diff options
context:
space:
mode:
authorKyle Edwards <kyle.edwards@kitware.com>2018-12-14 22:24:52 (GMT)
committerKyle Edwards <kyle.edwards@kitware.com>2019-01-23 14:52:29 (GMT)
commita6982cff0d3910723ad4fd40b9c63cf77c872d30 (patch)
treeb1e69a204006b7b1521c2994ff52b6c3e79b9715 /Source/CMakeLists.txt
parenta7f5cd45e135dd51d67176fc40e2d769ac5f7db8 (diff)
downloadCMake-a6982cff0d3910723ad4fd40b9c63cf77c872d30.zip
CMake-a6982cff0d3910723ad4fd40b9c63cf77c872d30.tar.gz
CMake-a6982cff0d3910723ad4fd40b9c63cf77c872d30.tar.bz2
cmMakefile: Impose maximum recursion limit
In order to keep infinitely-recursive scripts from causing a stack overflow in the CMake executable, CMake now imposes a maximum recursion limit before issuing an error message. The limit can be adjusted at runtime with CMAKE_MAXIMUM_RECURSION_DEPTH. Fixes: #18694
Diffstat (limited to 'Source/CMakeLists.txt')
-rw-r--r--Source/CMakeLists.txt10
1 files changed, 10 insertions, 0 deletions
diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
index 9e753e6..c73c6df 100644
--- a/Source/CMakeLists.txt
+++ b/Source/CMakeLists.txt
@@ -31,6 +31,16 @@ else()
set(CMAKE_USE_ELF_PARSER)
endif()
+if(NOT CMake_DEFAULT_RECURSION_LIMIT)
+ if(DEFINED ENV{DASHBOARD_TEST_FROM_CTEST})
+ set(CMake_DEFAULT_RECURSION_LIMIT 100)
+ elseif(MINGW)
+ set(CMake_DEFAULT_RECURSION_LIMIT 400)
+ else()
+ set(CMake_DEFAULT_RECURSION_LIMIT 1000)
+ endif()
+endif()
+
if(APPLE)
set(CMAKE_USE_MACH_PARSER 1)
endif()