1##convenience function for string manipulation
2
3
4
5function(replace_occurence output input pattern replacer)
6	string(REGEX REPLACE ${pattern} ${replacer} tmp_str ${input})
7	set(${output} ${tmp_str} PARENT_SCOPE)
8endfunction(replace_occurence output input pattern replacer)
9
10
11function(replace_all_occurence)
12  PARSE_ARGUMENTS(REPLACE_ALL
13    "LIST_PATTERN;LIST_REPLACER"
14    ""
15    ${ARGN}
16    )
17	LIST(APPEND list_pattern ${REPLACE_ALL_LIST_PATTERN})
18	LIST(APPEND list_replacer ${REPLACE_ALL_LIST_REPLACER})
19
20	LIST(LENGTH list_pattern list_size )
21	LIST(LENGTH list_replacer list2_size )
22	math(EXPR list_size ${list_size}-1)
23	LIST(GET  REPLACE_ALL_DEFAULT_ARGS 0 output_var)
24	LIST(GET  REPLACE_ALL_DEFAULT_ARGS 1 intput_content )
25
26	SET(tmp_str ${intput_content})
27	SET(tmp_str2 "")
28
29	foreach(i RANGE ${list_size})
30		list(GET list_pattern ${i} current_pattern )
31		list(GET list_replacer ${i} current_replacer )
32		replace_occurence(tmp_str2 ${tmp_str} ${current_pattern} ${current_replacer} )
33		SET(tmp_str ${tmp_str2})
34	endforeach(i RANGE ${list_size})
35
36	SET(${output_var} ${tmp_str} PARENT_SCOPE)
37endfunction(replace_all_occurence)
38
39function(STRING_APPEND var_name content)
40SET(${var_name} "${${var_name}}${content}" PARENT_SCOPE)
41
42endfunction(STRING_APPEND var_name content)
43