File: RegexUtils.cmake

package info (click to toggle)
eigen3 3.2.1-2~bpo70%2B1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy-backports
  • size: 11,680 kB
  • sloc: cpp: 74,426; fortran: 26,495; ansic: 25,724; sh: 709; python: 172; makefile: 27
file content (19 lines) | stat: -rw-r--r-- 936 bytes parent folder | download | duplicates (12)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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(NOT test2 STREQUAL testRef)
endfunction()