diff --git a/cmake/modules/ListToString.cmake b/cmake/modules/ListToString.cmake index 8063e15..ec705fa 100644 --- a/cmake/modules/ListToString.cmake +++ b/cmake/modules/ListToString.cmake @@ -1,29 +1,30 @@ -if(NOT DEFINED LIST_TO_STRING_LOADED) - - function(list_to_string separator prefix suffix input_list output_string_var) - set(res "") - # get list length - list(LENGTH input_list list_length) - # if the list has 0 or 1 element, there is no need to loop over - if(list_length LESS 2) - set(res "${prefix}${input_list}${suffix}") - else() - math(EXPR last_element_index "${list_length} - 1") - foreach(index RANGE ${last_element_index}) - # get current item_value - list(GET input_list ${index} item_value) - if(NOT item_value STREQUAL "") - # .. and append non-empty value to output string - set(res "${res}${prefix}${item_value}${suffix}") - # append separator if current element is NOT the last one. - if(NOT index EQUAL last_element_index) - set(res "${res}${separator}") - endif() - endif() - endforeach() - endif() - set(${output_string_var} "${res}" PARENT_SCOPE) - endfunction() - - set(LIST_TO_STRING_LOADED YES) +# prevent multiple inclusion +if(DEFINED LIST_TO_STRING_LOADED) + return() endif() +set(LIST_TO_STRING_LOADED ON) + +function(list_to_string separator prefix suffix input_list output_string_var) + set(res "") + # get list length + list(LENGTH input_list list_length) + # if the list has 0 or 1 element, there is no need to loop over + if(list_length LESS 2) + set(res "${prefix}${input_list}${suffix}") + else() + math(EXPR last_element_index "${list_length} - 1") + foreach(index RANGE ${last_element_index}) + # get current item_value + list(GET input_list ${index} item_value) + if(NOT item_value STREQUAL "") + # .. and append non-empty value to output string + set(res "${res}${prefix}${item_value}${suffix}") + # append separator if current element is NOT the last one. + if(NOT index EQUAL last_element_index) + set(res "${res}${separator}") + endif() + endif() + endforeach() + endif() + set(${output_string_var} "${res}" PARENT_SCOPE) +endfunction()