58 lines
2.1 KiB
CMake
58 lines
2.1 KiB
CMake
############################################################
|
|
# 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)
|