CMakeMacroFilterOut: Difference between revisions
From KitwarePublic
Jump to navigationJump to search
(Added Macro) |
mNo edit summary |
||
Line 1: | Line 1: | ||
MACRO(FILTER_OUT FILTERS INPUTS OUTPUT) | MACRO(FILTER_OUT FILTERS INPUTS OUTPUT) | ||
# Mimicks Gnu Make's $(filter-out) which removes elements | # Mimicks Gnu Make's $(filter-out) which removes elements | ||
# from a list that match the pattern. | # from a list that match the pattern. | ||
Line 17: | Line 18: | ||
# OUTPUT = and;the;other | # OUTPUT = and;the;other | ||
# | # | ||
SET(FOUT "") | SET(FOUT "") | ||
FOREACH(INP ${INPUTS}) | FOREACH(INP ${INPUTS}) | ||
Line 33: | Line 35: | ||
ENDFOREACH(INP ${INPUTS}) | ENDFOREACH(INP ${INPUTS}) | ||
SET(${OUTPUT} ${FOUT}) | SET(${OUTPUT} ${FOUT}) | ||
ENDMACRO(FILTER_OUT FILTERS INPUTS OUTPUT) | |||
ENDMACRO(FILTER_OUT FILTERS INPUTS OUTPUT) |
Revision as of 02:56, 15 September 2005
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)