aboutsummaryrefslogtreecommitdiff
path: root/project/cmake/scripts/common/ManageString.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'project/cmake/scripts/common/ManageString.cmake')
-rw-r--r--project/cmake/scripts/common/ManageString.cmake314
1 files changed, 157 insertions, 157 deletions
diff --git a/project/cmake/scripts/common/ManageString.cmake b/project/cmake/scripts/common/ManageString.cmake
index 7321f4cbe3..c9d5f041c3 100644
--- a/project/cmake/scripts/common/ManageString.cmake
+++ b/project/cmake/scripts/common/ManageString.cmake
@@ -2,8 +2,8 @@
# Defines the following macros:
# STRING_TRIM(var str [NOUNQUOTE])
# - Trim a string by removing the leading and trailing spaces,
-# just like STRING(STRIP ...) in CMake 2.6 and later.
-# This macro is needed as CMake 2.4 does not support STRING(STRIP ..)
+# just like string(STRIP ...) in CMake 2.6 and later.
+# This macro is needed as CMake 2.4 does not support string(STRIP ..)
# This macro also remove quote and double quote marks around the string,
# unless NOUNQUOTE is defined.
# * Parameters:
@@ -35,201 +35,201 @@
# + NOESCAPE_SEMICOLON: (Optional) Do not escape semicolons.
#
-IF(NOT DEFINED _MANAGE_STRING_CMAKE_)
- SET(_MANAGE_STRING_CMAKE_ "DEFINED")
+if(NOT DEFINED _MANAGE_STRING_CMAKE_)
+ set(_MANAGE_STRING_CMAKE_ "DEFINED")
- MACRO(STRING_TRIM var str)
- SET(${var} "")
- IF (NOT "${ARGN}" STREQUAL "NOUNQUOTE")
+ macro(STRING_TRIM var str)
+ set(${var} "")
+ if(NOT "${ARGN}" STREQUAL "NOUNQUOTE")
# Need not trim a quoted string.
STRING_UNQUOTE(_var "${str}")
- IF(NOT _var STREQUAL "")
+ if(NOT _var STREQUAL "")
# String is quoted
- SET(${var} "${_var}")
- ENDIF(NOT _var STREQUAL "")
- ENDIF(NOT "${ARGN}" STREQUAL "NOUNQUOTE")
-
- IF(${var} STREQUAL "")
- SET(_var_1 "${str}")
- STRING(REGEX REPLACE "^[ \t\r\n]+" "" _var_2 "${str}" )
- STRING(REGEX REPLACE "[ \t\r\n]+$" "" _var_3 "${_var_2}" )
- SET(${var} "${_var_3}")
- ENDIF(${var} STREQUAL "")
- ENDMACRO(STRING_TRIM var str)
+ set(${var} "${_var}")
+ endif(NOT _var STREQUAL "")
+ endif(NOT "${ARGN}" STREQUAL "NOUNQUOTE")
+
+ if(${var} STREQUAL "")
+ set(_var_1 "${str}")
+ string(REGEX REPLACE "^[ \t\r\n]+" "" _var_2 "${str}" )
+ string(REGEX REPLACE "[ \t\r\n]+$" "" _var_3 "${_var_2}" )
+ set(${var} "${_var_3}")
+ endif(${var} STREQUAL "")
+ endmacro(STRING_TRIM var str)
# Internal macro
# Variable cannot be escaped here, as variable is already substituted
# at the time it passes to this macro.
- MACRO(STRING_ESCAPE var str)
+ macro(STRING_ESCAPE var str)
# ';' and '\' are tricky, need to be encoded.
# '#' => '#H'
# '\' => '#B'
# ';' => '#S'
- SET(_NOESCAPE_SEMICOLON "")
- SET(_NOESCAPE_HASH "")
-
- FOREACH(_arg ${ARGN})
- IF(${_arg} STREQUAL "NOESCAPE_SEMICOLON")
- SET(_NOESCAPE_SEMICOLON "NOESCAPE_SEMICOLON")
- ELSEIF(${_arg} STREQUAL "NOESCAPE_HASH")
- SET(_NOESCAPE_HASH "NOESCAPE_HASH")
- ENDIF(${_arg} STREQUAL "NOESCAPE_SEMICOLON")
- ENDFOREACH(_arg)
-
- IF(_NOESCAPE_HASH STREQUAL "")
- STRING(REGEX REPLACE "#" "#H" _ret "${str}")
- ELSE(_NOESCAPE_HASH STREQUAL "")
- SET(_ret "${str}")
- ENDIF(_NOESCAPE_HASH STREQUAL "")
-
- STRING(REGEX REPLACE "\\\\" "#B" _ret "${_ret}")
- IF(_NOESCAPE_SEMICOLON STREQUAL "")
- STRING(REGEX REPLACE ";" "#S" _ret "${_ret}")
- ENDIF(_NOESCAPE_SEMICOLON STREQUAL "")
- SET(${var} "${_ret}")
- ENDMACRO(STRING_ESCAPE var str)
-
- MACRO(STRING_UNESCAPE var str)
+ set(_NOESCAPE_SEMICOLON "")
+ set(_NOESCAPE_HASH "")
+
+ foreach(_arg ${ARGN})
+ if(${_arg} STREQUAL "NOESCAPE_SEMICOLON")
+ set(_NOESCAPE_SEMICOLON "NOESCAPE_SEMICOLON")
+ elseif(${_arg} STREQUAL "NOESCAPE_HASH")
+ set(_NOESCAPE_HASH "NOESCAPE_HASH")
+ endif(${_arg} STREQUAL "NOESCAPE_SEMICOLON")
+ endforeach(_arg)
+
+ if(_NOESCAPE_HASH STREQUAL "")
+ string(REGEX REPLACE "#" "#H" _ret "${str}")
+ else(_NOESCAPE_HASH STREQUAL "")
+ set(_ret "${str}")
+ endif(_NOESCAPE_HASH STREQUAL "")
+
+ string(REGEX REPLACE "\\\\" "#B" _ret "${_ret}")
+ if(_NOESCAPE_SEMICOLON STREQUAL "")
+ string(REGEX REPLACE ";" "#S" _ret "${_ret}")
+ endif(_NOESCAPE_SEMICOLON STREQUAL "")
+ set(${var} "${_ret}")
+ endmacro(STRING_ESCAPE var str)
+
+ macro(STRING_UNESCAPE var str)
# '#B' => '\'
# '#H' => '#'
# '#D' => '$'
# '#S' => ';'
- SET(_ESCAPE_VARIABLE "")
- SET(_NOESCAPE_SEMICOLON "")
- SET(_ret "${str}")
- FOREACH(_arg ${ARGN})
- IF(${_arg} STREQUAL "NOESCAPE_SEMICOLON")
- SET(_NOESCAPE_SEMICOLON "NOESCAPE_SEMICOLON")
- ELSEIF(${_arg} STREQUAL "ESCAPE_VARIABLE")
- SET(_ESCAPE_VARIABLE "ESCAPE_VARIABLE")
- STRING(REGEX REPLACE "#D" "$" _ret "${_ret}")
- ENDIF(${_arg} STREQUAL "NOESCAPE_SEMICOLON")
- ENDFOREACH(_arg)
-
- STRING(REGEX REPLACE "#B" "\\\\" _ret "${_ret}")
- IF(_NOESCAPE_SEMICOLON STREQUAL "")
+ set(_ESCAPE_VARIABLE "")
+ set(_NOESCAPE_SEMICOLON "")
+ set(_ret "${str}")
+ foreach(_arg ${ARGN})
+ if(${_arg} STREQUAL "NOESCAPE_SEMICOLON")
+ set(_NOESCAPE_SEMICOLON "NOESCAPE_SEMICOLON")
+ elseif(${_arg} STREQUAL "ESCAPE_VARIABLE")
+ set(_ESCAPE_VARIABLE "ESCAPE_VARIABLE")
+ string(REGEX REPLACE "#D" "$" _ret "${_ret}")
+ endif(${_arg} STREQUAL "NOESCAPE_SEMICOLON")
+ endforeach(_arg)
+
+ string(REGEX REPLACE "#B" "\\\\" _ret "${_ret}")
+ if(_NOESCAPE_SEMICOLON STREQUAL "")
# ';' => '#S'
- STRING(REGEX REPLACE "#S" "\\\\;" _ret "${_ret}")
- ELSE(_NOESCAPE_SEMICOLON STREQUAL "")
- STRING(REGEX REPLACE "#S" ";" _ret "${_ret}")
- ENDIF(_NOESCAPE_SEMICOLON STREQUAL "")
+ string(REGEX REPLACE "#S" "\\\\;" _ret "${_ret}")
+ else(_NOESCAPE_SEMICOLON STREQUAL "")
+ string(REGEX REPLACE "#S" ";" _ret "${_ret}")
+ endif(_NOESCAPE_SEMICOLON STREQUAL "")
- IF(NOT _ESCAPE_VARIABLE STREQUAL "")
+ if(NOT _ESCAPE_VARIABLE STREQUAL "")
# '#D' => '$'
- STRING(REGEX REPLACE "#D" "$" _ret "${_ret}")
- ENDIF(NOT _ESCAPE_VARIABLE STREQUAL "")
- STRING(REGEX REPLACE "#H" "#" _ret "${_ret}")
- SET(${var} "${_ret}")
- ENDMACRO(STRING_UNESCAPE var str)
+ string(REGEX REPLACE "#D" "$" _ret "${_ret}")
+ endif(NOT _ESCAPE_VARIABLE STREQUAL "")
+ string(REGEX REPLACE "#H" "#" _ret "${_ret}")
+ set(${var} "${_ret}")
+ endmacro(STRING_UNESCAPE var str)
- MACRO(STRING_UNQUOTE var str)
+ macro(STRING_UNQUOTE var str)
STRING_ESCAPE(_ret "${str}" ${ARGN})
- IF(_ret MATCHES "^[ \t\r\n]+")
- STRING(REGEX REPLACE "^[ \t\r\n]+" "" _ret "${_ret}")
- ENDIF(_ret MATCHES "^[ \t\r\n]+")
- IF(_ret MATCHES "^\"")
+ if(_ret MATCHES "^[ \t\r\n]+")
+ string(REGEX REPLACE "^[ \t\r\n]+" "" _ret "${_ret}")
+ endif(_ret MATCHES "^[ \t\r\n]+")
+ if(_ret MATCHES "^\"")
# Double quote
- STRING(REGEX REPLACE "\"\(.*\)\"[ \t\r\n]*$" "\\1" _ret "${_ret}")
- ELSEIF(_ret MATCHES "^'")
+ string(REGEX REPLACE "\"\(.*\)\"[ \t\r\n]*$" "\\1" _ret "${_ret}")
+ elseif(_ret MATCHES "^'")
# Single quote
- STRING(REGEX REPLACE "'\(.*\)'[ \t\r\n]*$" "\\1" _ret "${_ret}")
- ELSE(_ret MATCHES "^\"")
- SET(_ret "")
- ENDIF(_ret MATCHES "^\"")
+ string(REGEX REPLACE "'\(.*\)'[ \t\r\n]*$" "\\1" _ret "${_ret}")
+ else(_ret MATCHES "^\"")
+ set(_ret "")
+ endif(_ret MATCHES "^\"")
# Unencoding
STRING_UNESCAPE(${var} "${_ret}" ${ARGN})
- ENDMACRO(STRING_UNQUOTE var str)
-
- MACRO(STRING_JOIN var delimiter str_list)
- SET(_ret "")
- FOREACH(_str ${str_list})
- IF(_ret STREQUAL "")
- SET(_ret "${_str}")
- ELSE(_ret STREQUAL "")
- SET(_ret "${_ret}${delimiter}${_str}")
- ENDIF(_ret STREQUAL "")
- ENDFOREACH(_str ${str_list})
-
- FOREACH(_str ${ARGN})
- IF(_ret STREQUAL "")
- SET(_ret "${_str}")
- ELSE(_ret STREQUAL "")
- SET(_ret "${_ret}${delimiter}${_str}")
- ENDIF(_ret STREQUAL "")
- ENDFOREACH(_str ${str_list})
- SET(${var} "${_ret}")
- ENDMACRO(STRING_JOIN var delimiter str_list)
-
- MACRO(STRING_SPLIT var delimiter str)
- SET(_max_tokens "")
- SET(_NOESCAPE_SEMICOLON "")
- SET(_ESCAPE_VARIABLE "")
- FOREACH(_arg ${ARGN})
- IF(${_arg} STREQUAL "NOESCAPE_SEMICOLON")
- SET(_NOESCAPE_SEMICOLON "NOESCAPE_SEMICOLON")
- ELSEIF(${_arg} STREQUAL "ESCAPE_VARIABLE")
- SET(_ESCAPE_VARIABLE "ESCAPE_VARIABLE")
- ELSE(${_arg} STREQUAL "NOESCAPE_SEMICOLON")
- SET(_max_tokens ${_arg})
- ENDIF(${_arg} STREQUAL "NOESCAPE_SEMICOLON")
- ENDFOREACH(_arg)
-
- IF(NOT _max_tokens)
- SET(_max_tokens -1)
- ENDIF(NOT _max_tokens)
+ endmacro(STRING_UNQUOTE var str)
+
+ macro(STRING_JOIN var delimiter str_list)
+ set(_ret "")
+ foreach(_str ${str_list})
+ if(_ret STREQUAL "")
+ set(_ret "${_str}")
+ else(_ret STREQUAL "")
+ set(_ret "${_ret}${delimiter}${_str}")
+ endif(_ret STREQUAL "")
+ endforeach(_str ${str_list})
+
+ foreach(_str ${ARGN})
+ if(_ret STREQUAL "")
+ set(_ret "${_str}")
+ else(_ret STREQUAL "")
+ set(_ret "${_ret}${delimiter}${_str}")
+ endif(_ret STREQUAL "")
+ endforeach(_str ${str_list})
+ set(${var} "${_ret}")
+ endmacro(STRING_JOIN var delimiter str_list)
+
+ macro(STRING_SPLIT var delimiter str)
+ set(_max_tokens "")
+ set(_NOESCAPE_SEMICOLON "")
+ set(_ESCAPE_VARIABLE "")
+ foreach(_arg ${ARGN})
+ if(${_arg} STREQUAL "NOESCAPE_SEMICOLON")
+ set(_NOESCAPE_SEMICOLON "NOESCAPE_SEMICOLON")
+ elseif(${_arg} STREQUAL "ESCAPE_VARIABLE")
+ set(_ESCAPE_VARIABLE "ESCAPE_VARIABLE")
+ else(${_arg} STREQUAL "NOESCAPE_SEMICOLON")
+ set(_max_tokens ${_arg})
+ endif(${_arg} STREQUAL "NOESCAPE_SEMICOLON")
+ endforeach(_arg)
+
+ if(NOT _max_tokens)
+ set(_max_tokens -1)
+ endif(NOT _max_tokens)
STRING_ESCAPE(_str "${str}" ${_NOESCAPE_SEMICOLON} ${_ESCAPE_VARIABLE})
STRING_ESCAPE(_delimiter "${delimiter}" ${_NOESCAPE_SEMICOLON} ${_ESCAPE_VARIABLE})
- SET(_str_list "")
- SET(_token_count 0)
- STRING(LENGTH "${_delimiter}" _de_len)
+ set(_str_list "")
+ set(_token_count 0)
+ string(LENGTH "${_delimiter}" _de_len)
- WHILE(NOT _token_count EQUAL _max_tokens)
- MATH(EXPR _token_count ${_token_count}+1)
- IF(_token_count EQUAL _max_tokens)
+ while(NOT _token_count EQUAL _max_tokens)
+ math(EXPR _token_count ${_token_count}+1)
+ if(_token_count EQUAL _max_tokens)
# Last token, no need splitting
- SET(_str_list ${_str_list} "${_str}")
- ELSE(_token_count EQUAL _max_tokens)
+ set(_str_list ${_str_list} "${_str}")
+ else(_token_count EQUAL _max_tokens)
# in case encoded characters are delimiters
- STRING(LENGTH "${_str}" _str_len)
- SET(_index 0)
- SET(_token "")
- SET(_str_remain "")
- MATH(EXPR _str_end ${_str_len}-${_de_len}+1)
- SET(_bound "k")
- WHILE(_index LESS _str_end)
- STRING(SUBSTRING "${_str}" ${_index} ${_de_len} _str_cursor)
- IF(_str_cursor STREQUAL _delimiter)
+ string(LENGTH "${_str}" _str_len)
+ set(_index 0)
+ set(_token "")
+ set(_str_remain "")
+ math(EXPR _str_end ${_str_len}-${_de_len}+1)
+ set(_bound "k")
+ while(_index LESS _str_end)
+ string(SUBSTRING "${_str}" ${_index} ${_de_len} _str_cursor)
+ if(_str_cursor STREQUAL _delimiter)
# Get the token
- STRING(SUBSTRING "${_str}" 0 ${_index} _token)
+ string(SUBSTRING "${_str}" 0 ${_index} _token)
# Get the rest
- MATH(EXPR _rest_index ${_index}+${_de_len})
- MATH(EXPR _rest_len ${_str_len}-${_index}-${_de_len})
- STRING(SUBSTRING "${_str}" ${_rest_index} ${_rest_len} _str_remain)
- SET(_index ${_str_end})
- ELSE(_str_cursor STREQUAL _delimiter)
- MATH(EXPR _index ${_index}+1)
- ENDIF(_str_cursor STREQUAL _delimiter)
- ENDWHILE(_index LESS _str_end)
-
- IF(_str_remain STREQUAL "")
+ math(EXPR _rest_index ${_index}+${_de_len})
+ math(EXPR _rest_len ${_str_len}-${_index}-${_de_len})
+ string(SUBSTRING "${_str}" ${_rest_index} ${_rest_len} _str_remain)
+ set(_index ${_str_end})
+ else(_str_cursor STREQUAL _delimiter)
+ math(EXPR _index ${_index}+1)
+ endif(_str_cursor STREQUAL _delimiter)
+ endwhile(_index LESS _str_end)
+
+ if(_str_remain STREQUAL "")
# Meaning: end of string
- LIST(APPEND _str_list "${_str}")
- SET(_max_tokens ${_token_count})
- ELSE(_str_remain STREQUAL "")
- LIST(APPEND _str_list "${_token}")
- SET(_str "${_str_remain}")
- ENDIF(_str_remain STREQUAL "")
- ENDIF(_token_count EQUAL _max_tokens)
- ENDWHILE(NOT _token_count EQUAL _max_tokens)
+ list(APPEND _str_list "${_str}")
+ set(_max_tokens ${_token_count})
+ else(_str_remain STREQUAL "")
+ list(APPEND _str_list "${_token}")
+ set(_str "${_str_remain}")
+ endif(_str_remain STREQUAL "")
+ endif(_token_count EQUAL _max_tokens)
+ endwhile(NOT _token_count EQUAL _max_tokens)
# Unencoding
STRING_UNESCAPE(${var} "${_str_list}" ${_NOESCAPE_SEMICOLON} ${_ESCAPE_VARIABLE})
- ENDMACRO(STRING_SPLIT var delimiter str)
+ endmacro(STRING_SPLIT var delimiter str)
-ENDIF(NOT DEFINED _MANAGE_STRING_CMAKE_)
+endif(NOT DEFINED _MANAGE_STRING_CMAKE_)