37 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
function (collector_create name base)
 | 
						|
  set_property (GLOBAL PROPERTY "COLLECT_${name}_LIST")
 | 
						|
  set_property (GLOBAL PROPERTY "COLLECT_${name}_BASE" "${base}")
 | 
						|
endfunction (collector_create)
 | 
						|
 | 
						|
function (collector_list var name)
 | 
						|
  get_property (_list GLOBAL PROPERTY "COLLECT_${name}_LIST")
 | 
						|
  set (${var} "${_list}" PARENT_SCOPE)
 | 
						|
endfunction (collector_list)
 | 
						|
 | 
						|
function (collector_base var name)
 | 
						|
  get_property (_base GLOBAL PROPERTY "COLLECT_${name}_BASE")
 | 
						|
  set (${var} "${_base}" PARENT_SCOPE)
 | 
						|
endfunction (collector_base)
 | 
						|
 | 
						|
function (collect name)
 | 
						|
  collector_base (_base ${name})
 | 
						|
  string(COMPARE NOTEQUAL "${_base}" "" _is_rel)
 | 
						|
  set (_list)
 | 
						|
  foreach (s IN LISTS ARGN)
 | 
						|
    if (_is_rel)
 | 
						|
      get_filename_component (s "${s}" ABSOLUTE)
 | 
						|
      file (RELATIVE_PATH s "${_base}" "${s}")
 | 
						|
    endif (_is_rel)
 | 
						|
    list (APPEND _list "${s}")
 | 
						|
  endforeach ()
 | 
						|
  set_property (GLOBAL APPEND PROPERTY "COLLECT_${name}_LIST" "${_list}")
 | 
						|
endfunction (collect)
 | 
						|
 | 
						|
# Create global collectors
 | 
						|
collector_create (PROJECT_INC_DIRS    "")
 | 
						|
collector_create (PROJECT_LIB_DIRS    "")
 | 
						|
collector_create (PROJECT_LIB_DEPS    "")
 | 
						|
collector_create (PROJECT_HDR_TESTS "")
 | 
						|
 | 
						|
# vim: expandtab:ts=2:sw=2:smartindent
 |