############################################################ # Returns the definitions and includes from a cflags output # # _list cflags var # _includes return var with the Includes # _definitions return var with the Definitions function(PARSE_CFLAGS _list _includes _definitions) separate_arguments(${_list}) foreach (_item ${${_list}}) if ("${_item}" MATCHES "^-I") string(SUBSTRING ${_item} 2 -1 _item_t) set(_includes_t ${_includes_t} ${_item_t}) else ("${_item}" MATCHES "^-I") set(_definitions_t ${_definitions_t} ${_item}) endif ("${_item}" MATCHES "^-I") endforeach (_item) string(REPLACE ";" " " _definitions_k "${_definitions_t}") set(${_includes} ${_includes_t} PARENT_SCOPE) set(${_definitions} ${_definitions_k} PARENT_SCOPE) #message(STATUS "Calling Macro ${${_list}} and returning ${_includes_k} and ${_definitions_k}") endfunction(PARSE_CFLAGS) ############################################################################### ############################################################################### # Retrieve information from a ldflags output # # _list ldflags var # _libraries return var with the libraries # _ldflags return var with the ldflags value # _libdir return var with the libdir value function(PARSE_LDFLAGS _list _libraries _ldflags _libdir) separate_arguments(${_list}) foreach (_item ${${_list}}) if ("${_item}" MATCHES "^-l") string(SUBSTRING ${_item} 2 -1 _item_t) set(_libraries_t ${_libraries_t} ${_item_t}) elseif ("${_item}" MATCHES "^-L") set(_libdir_t ${_libdir_t} ${_item}) else ("${_item}" MATCHES "^-L") set(_ldflags_t ${_ldflags_t} ${_item}) endif ("${_item}" MATCHES "^-l") endforeach (_item ${${_list}}) string(REPLACE ";" " " _ldflags_k "${_ldflags_t}") string(REPLACE ";" " " _libdir_k "${_libdir_t}") set(${_libraries} ${_libraries_t} PARENT_SCOPE) set(${_ldflags} ${_ldflags_k} PARENT_SCOPE) set(${_libdir} ${_libdir_k} PARENT_SCOPE) #message(STATUS "Calling Macro ${${_list}} and returning ${_libraries_k} ${_ldflags_k} ${_libdir_k}") endfunction(PARSE_LDFLAGS)