CMakeDependentOption: Allow parentheses in the depends string

`if()` takes the condition as a list of arguments.
Parentheses need to be separated as well.

Fixes: #22303
This commit is contained in:
Daniel Schürmann
2021-06-13 23:50:47 +02:00
committed by Brad King
parent 0d3ddb1704
commit 0665d9092e
5 changed files with 16 additions and 1 deletions
+4 -1
View File
@@ -42,7 +42,10 @@ macro(CMAKE_DEPENDENT_OPTION option doc default depends force)
if(${option}_ISSET MATCHES "^${option}_ISSET$")
set(${option}_AVAILABLE 1)
foreach(d ${depends})
string(REGEX REPLACE " +" ";" CMAKE_DEPENDENT_OPTION_DEP "${d}")
string(REPLACE "(" " ( " _CMAKE_CDO_DEP "${d}")
string(REPLACE ")" " ) " _CMAKE_CDO_DEP "${_CMAKE_CDO_DEP}")
string(REGEX REPLACE " +" ";" CMAKE_DEPENDENT_OPTION_DEP "${_CMAKE_CDO_DEP}")
unset(_CMAKE_CDO_DEP)
if(${CMAKE_DEPENDENT_OPTION_DEP})
else()
set(${option}_AVAILABLE 0)