mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-01-06 14:14:46 +08:00
6fb3e5f176
Ancient versions of CMake required else(), endif(), and similar block termination commands to have arguments matching the command starting the block. This is no longer the preferred style.
19 lines
910 B
CMake
19 lines
910 B
CMake
function(escape_string_as_regex _str_out _str_in)
|
|
STRING(REGEX REPLACE "\\\\" "\\\\\\\\" FILETEST2 "${_str_in}")
|
|
STRING(REGEX REPLACE "([.$+*?|-])" "\\\\\\1" FILETEST2 "${FILETEST2}")
|
|
STRING(REGEX REPLACE "\\^" "\\\\^" FILETEST2 "${FILETEST2}")
|
|
STRING(REGEX REPLACE "\\(" "\\\\(" FILETEST2 "${FILETEST2}")
|
|
STRING(REGEX REPLACE "\\)" "\\\\)" FILETEST2 "${FILETEST2}")
|
|
STRING(REGEX REPLACE "\\[" "\\\\[" FILETEST2 "${FILETEST2}")
|
|
STRING(REGEX REPLACE "\\]" "\\\\]" FILETEST2 "${FILETEST2}")
|
|
SET(${_str_out} "${FILETEST2}" PARENT_SCOPE)
|
|
endfunction()
|
|
|
|
function(test_escape_string_as_regex)
|
|
SET(test1 "\\.^$-+*()[]?|")
|
|
escape_string_as_regex(test2 "${test1}")
|
|
SET(testRef "\\\\\\.\\^\\$\\-\\+\\*\\(\\)\\[\\]\\?\\|")
|
|
if(NOT test2 STREQUAL testRef)
|
|
message("Error in the escape_string_for_regex function : \n ${test1} was escaped as ${test2}, should be ${testRef}")
|
|
endif()
|
|
endfunction() |