blob: f0a15248bb8f5ad912ad492d642bd0b3e3c6d2e0 [file] [log] [blame]
Brian Silverman72890c22015-09-19 14:37:37 -04001function(escape_string_as_regex _str_out _str_in)
Austin Schuhc55b0172022-02-20 17:52:35 -08002 string(REGEX REPLACE "\\\\" "\\\\\\\\" FILETEST2 "${_str_in}")
3 string(REGEX REPLACE "([.$+*?|-])" "\\\\\\1" FILETEST2 "${FILETEST2}")
4 string(REGEX REPLACE "\\^" "\\\\^" FILETEST2 "${FILETEST2}")
5 string(REGEX REPLACE "\\(" "\\\\(" FILETEST2 "${FILETEST2}")
6 string(REGEX REPLACE "\\)" "\\\\)" FILETEST2 "${FILETEST2}")
7 string(REGEX REPLACE "\\[" "\\\\[" FILETEST2 "${FILETEST2}")
8 string(REGEX REPLACE "\\]" "\\\\]" FILETEST2 "${FILETEST2}")
9 set(${_str_out} "${FILETEST2}" PARENT_SCOPE)
Brian Silverman72890c22015-09-19 14:37:37 -040010endfunction()
11
12function(test_escape_string_as_regex)
Austin Schuhc55b0172022-02-20 17:52:35 -080013 set(test1 "\\.^$-+*()[]?|")
Brian Silverman72890c22015-09-19 14:37:37 -040014 escape_string_as_regex(test2 "${test1}")
Austin Schuhc55b0172022-02-20 17:52:35 -080015 set(testRef "\\\\\\.\\^\\$\\-\\+\\*\\(\\)\\[\\]\\?\\|")
Brian Silverman72890c22015-09-19 14:37:37 -040016 if(NOT test2 STREQUAL testRef)
17 message("Error in the escape_string_for_regex function : \n ${test1} was escaped as ${test2}, should be ${testRef}")
Austin Schuhc55b0172022-02-20 17:52:35 -080018 endif()
Brian Silverman72890c22015-09-19 14:37:37 -040019endfunction()