47 lines
1.9 KiB
CMake
47 lines
1.9 KiB
CMake
#===============================================================================
|
|
# Appends items to a cached list.
|
|
# Usage:
|
|
# fcl_append_to_cached_string(_string _cacheDesc [items...])
|
|
#===============================================================================
|
|
macro(fcl_append_to_cached_string _string _cacheDesc)
|
|
foreach(newItem ${ARGN})
|
|
set(${_string} "${${_string}}${newItem}" CACHE INTERNAL ${_cacheDesc} FORCE)
|
|
endforeach()
|
|
endmacro()
|
|
|
|
#===============================================================================
|
|
# Get list of file names give list of full paths.
|
|
# Usage:
|
|
# fcl_get_filename_components(_var _cacheDesc [items...])
|
|
#===============================================================================
|
|
macro(fcl_get_filename_components _var _cacheDesc _prefix_to_remove)
|
|
set(${_var} "" CACHE INTERNAL ${_cacheDesc} FORCE)
|
|
string(LENGTH ${_prefix_to_remove} prefix_length)
|
|
foreach(header ${ARGN})
|
|
string(LENGTH ${header} full_length)
|
|
math(EXPR relative_path_length "${full_length} - ${prefix_length}")
|
|
string(SUBSTRING ${header} ${prefix_length} ${relative_path_length} header)
|
|
if(NOT ${header} MATCHES "/detail/" AND NOT ${header} MATCHES "-inl.h")
|
|
fcl_append_to_cached_string(
|
|
${_var}
|
|
${_cacheDesc}"_HEADER_NAMES"
|
|
"${header}\;")
|
|
endif()
|
|
endforeach()
|
|
endmacro()
|
|
|
|
#===============================================================================
|
|
# Generate header file list to a cached list.
|
|
# Usage:
|
|
# fcl_generate_include_header_list(_var _target_dir _cacheDesc [headers...])
|
|
#===============================================================================
|
|
macro(fcl_generate_include_header_list _var _target_dir _cacheDesc)
|
|
set(${_var} "" CACHE INTERNAL ${_cacheDesc} FORCE)
|
|
foreach(header ${ARGN})
|
|
fcl_append_to_cached_string(
|
|
${_var}
|
|
${_cacheDesc}"_HEADERS"
|
|
"#include \"${_target_dir}${header}\"\n")
|
|
endforeach()
|
|
endmacro()
|