Files correlati : Commento : Spostamento in libraries delle librerie esterne di Campo per una maggiore pulizia e organizzazione git-svn-id: svn://10.65.10.50/branches/R_10_00@24150 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| # File containing various utilities
 | |
| 
 | |
| # Converts a CMake list to a string containing elements separated by spaces
 | |
| function(TO_LIST_SPACES _LIST_NAME OUTPUT_VAR)
 | |
|   set(NEW_LIST_SPACE)
 | |
|   foreach(ITEM ${${_LIST_NAME}})
 | |
|     set(NEW_LIST_SPACE "${NEW_LIST_SPACE} ${ITEM}")
 | |
|   endforeach()
 | |
|   string(STRIP ${NEW_LIST_SPACE} NEW_LIST_SPACE)
 | |
|   set(${OUTPUT_VAR} "${NEW_LIST_SPACE}" PARENT_SCOPE)
 | |
| endfunction()
 | |
| 
 | |
| # Appends a lis of item to a string which is a space-separated list, if they don't already exist.
 | |
| function(LIST_SPACES_APPEND_ONCE LIST_NAME)
 | |
|   string(REPLACE " " ";" _LIST ${${LIST_NAME}})
 | |
|   list(APPEND _LIST ${ARGN})
 | |
|   list(REMOVE_DUPLICATES _LIST)
 | |
|   to_list_spaces(_LIST NEW_LIST_SPACE)
 | |
|   set(${LIST_NAME} "${NEW_LIST_SPACE}" PARENT_SCOPE)
 | |
| endfunction()
 | |
| 
 | |
| # Convinience function that does the same as LIST(FIND ...) but with a TRUE/FALSE return value.
 | |
| # Ex: IN_STR_LIST(MY_LIST "Searched item" WAS_FOUND)
 | |
| function(IN_STR_LIST LIST_NAME ITEM_SEARCHED RETVAL)
 | |
|   list(FIND ${LIST_NAME} ${ITEM_SEARCHED} FIND_POS)
 | |
|   if(${FIND_POS} EQUAL -1)
 | |
|     set(${RETVAL} FALSE PARENT_SCOPE)
 | |
|   else()
 | |
|     set(${RETVAL} TRUE PARENT_SCOPE)
 | |
|   endif()
 | |
| endfunction()
 | |
| 
 | |
| # Returns a list of arguments that evaluate to true
 | |
| function(collect_true output_var output_count_var)
 | |
|   set(${output_var})
 | |
|   foreach(option_var IN LISTS ARGN)
 | |
|     if(${option_var})
 | |
|       list(APPEND ${output_var} ${option_var})
 | |
|     endif()
 | |
|   endforeach()
 | |
|   set(${output_var} ${${output_var}} PARENT_SCOPE)
 | |
|   list(LENGTH ${output_var} ${output_count_var})
 | |
|   set(${output_count_var} ${${output_count_var}} PARENT_SCOPE)
 | |
| endfunction()
 |