xref: /aosp_15_r20/external/eigen/cmake/RegexUtils.cmake (revision bf2c37156dfe67e5dfebd6d394bad8b2ab5804d4)
1*bf2c3715SXin Lifunction(escape_string_as_regex _str_out _str_in)
2*bf2c3715SXin Li  string(REGEX REPLACE "\\\\" "\\\\\\\\" FILETEST2 "${_str_in}")
3*bf2c3715SXin Li  string(REGEX REPLACE "([.$+*?|-])" "\\\\\\1" FILETEST2 "${FILETEST2}")
4*bf2c3715SXin Li  string(REGEX REPLACE "\\^" "\\\\^" FILETEST2 "${FILETEST2}")
5*bf2c3715SXin Li  string(REGEX REPLACE "\\(" "\\\\(" FILETEST2 "${FILETEST2}")
6*bf2c3715SXin Li  string(REGEX REPLACE "\\)" "\\\\)" FILETEST2 "${FILETEST2}")
7*bf2c3715SXin Li  string(REGEX REPLACE "\\[" "\\\\[" FILETEST2 "${FILETEST2}")
8*bf2c3715SXin Li  string(REGEX REPLACE "\\]" "\\\\]" FILETEST2 "${FILETEST2}")
9*bf2c3715SXin Li  set(${_str_out} "${FILETEST2}" PARENT_SCOPE)
10*bf2c3715SXin Liendfunction()
11*bf2c3715SXin Li
12*bf2c3715SXin Lifunction(test_escape_string_as_regex)
13*bf2c3715SXin Li  set(test1 "\\.^$-+*()[]?|")
14*bf2c3715SXin Li  escape_string_as_regex(test2 "${test1}")
15*bf2c3715SXin Li  set(testRef "\\\\\\.\\^\\$\\-\\+\\*\\(\\)\\[\\]\\?\\|")
16*bf2c3715SXin Li  if(NOT test2 STREQUAL testRef)
17*bf2c3715SXin Li	message("Error in the escape_string_for_regex function : \n   ${test1} was escaped as ${test2}, should be ${testRef}")
18*bf2c3715SXin Li  endif()
19*bf2c3715SXin Liendfunction()