|
|
Line 1: |
Line 1: |
| [[CMake_User_Contributed_Macros|Back]]
| | {{CMake/Template/Moved}} |
|
| |
|
| {{CMake/Template/Obsolete}}
| | This page has moved [https://gitlab.kitware.com/cmake/community/wikis/contrib/macros/FilterOut here]. |
| | |
| '''NOTE: This macro is ''obsolete'' by built-in support in CMake for removing list elements with the LIST command:'''
| |
| | |
| <pre>
| |
| list(REMOVE_ITEM <list> <value> [<value> ...])
| |
| | |
| SET(MYLIST this that and the other)
| |
| # remove "this" and "that"
| |
| LIST(REMOVE_ITEM MYLIST this)
| |
| LIST(REMOVE_ITEM MYLIST that)
| |
| </pre>
| |
| | |
| -----
| |
| <pre>
| |
| MACRO(FILTER_OUT FILTERS INPUTS OUTPUT)
| |
| # Mimicks Gnu Make's $(filter-out) which removes elements
| |
| # from a list that match the pattern.
| |
| # Arguments:
| |
| # FILTERS - list of patterns that need to be removed
| |
| # INPUTS - list of inputs that will be worked on
| |
| # OUTPUT - the filtered list to be returned
| |
| #
| |
| # Example:
| |
| # SET(MYLIST this that and the other)
| |
| # SET(FILTS this that)
| |
| #
| |
| # FILTER_OUT("${FILTS}" "${MYLIST}" OUT)
| |
| # MESSAGE("OUTPUT = ${OUT}")
| |
| #
| |
| # The output -
| |
| # OUTPUT = and;the;other
| |
| #
| |
| SET(FOUT "")
| |
| FOREACH(INP ${INPUTS})
| |
| SET(FILTERED 0)
| |
| FOREACH(FILT ${FILTERS})
| |
| IF(${FILTERED} EQUAL 0)
| |
| IF("${FILT}" STREQUAL "${INP}")
| |
| SET(FILTERED 1)
| |
| ENDIF("${FILT}" STREQUAL "${INP}")
| |
| ENDIF(${FILTERED} EQUAL 0)
| |
| ENDFOREACH(FILT ${FILTERS})
| |
| IF(${FILTERED} EQUAL 0)
| |
| SET(FOUT ${FOUT} ${INP})
| |
| ENDIF(${FILTERED} EQUAL 0)
| |
| ENDFOREACH(INP ${INPUTS})
| |
| SET(${OUTPUT} ${FOUT})
| |
| ENDMACRO(FILTER_OUT FILTERS INPUTS OUTPUT)
| |
| </pre>
| |
| | |
| -----
| |
| [[CMake_User_Contributed_Macros|Back]]
| |
| | |
| {{CMake/Template/Footer}}
| |