1# File containing various utilities 2 3# Converts a CMake list to a string containing elements separated by spaces 4function(TO_LIST_SPACES _LIST_NAME OUTPUT_VAR) 5 set(NEW_LIST_SPACE) 6 foreach(ITEM ${${_LIST_NAME}}) 7 set(NEW_LIST_SPACE "${NEW_LIST_SPACE} ${ITEM}") 8 endforeach() 9 string(STRIP ${NEW_LIST_SPACE} NEW_LIST_SPACE) 10 set(${OUTPUT_VAR} "${NEW_LIST_SPACE}" PARENT_SCOPE) 11endfunction() 12 13# Appends a lis of item to a string which is a space-separated list, if they don't already exist. 14function(LIST_SPACES_APPEND_ONCE LIST_NAME) 15 string(REPLACE " " ";" _LIST ${${LIST_NAME}}) 16 list(APPEND _LIST ${ARGN}) 17 list(REMOVE_DUPLICATES _LIST) 18 to_list_spaces(_LIST NEW_LIST_SPACE) 19 set(${LIST_NAME} "${NEW_LIST_SPACE}" PARENT_SCOPE) 20endfunction() 21 22# Convinience function that does the same as LIST(FIND ...) but with a TRUE/FALSE return value. 23# Ex: IN_STR_LIST(MY_LIST "Searched item" WAS_FOUND) 24function(IN_STR_LIST LIST_NAME ITEM_SEARCHED RETVAL) 25 list(FIND ${LIST_NAME} ${ITEM_SEARCHED} FIND_POS) 26 if(${FIND_POS} EQUAL -1) 27 set(${RETVAL} FALSE PARENT_SCOPE) 28 else() 29 set(${RETVAL} TRUE PARENT_SCOPE) 30 endif() 31endfunction() 32