eigen/cmake/RegexUtils.cmake
Hans Johnson 8c8cab1afd STYLE: Convert CMake-language commands to lower case
Ancient CMake versions required upper-case commands.  Later command names
became case-insensitive.  Now the preferred style is lower-case.
2019-10-31 11:36:37 -05:00

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()