From 2e82aa70177fea3cdc9ce4e5341f5d46adb46e42 Mon Sep 17 00:00:00 2001 From: Frantisek Hrbata Date: Tue, 23 Sep 2025 13:02:50 +0200 Subject: [PATCH] feat(cmakev2/utilities): add __remove_genex function This helper function removes entries containing generator expressions from the given list. The list is modified in place. Signed-off-by: Frantisek Hrbata --- tools/cmakev2/utilities.cmake | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tools/cmakev2/utilities.cmake b/tools/cmakev2/utilities.cmake index c1569478b5f..26e536aaa52 100644 --- a/tools/cmakev2/utilities.cmake +++ b/tools/cmakev2/utilities.cmake @@ -1129,3 +1129,27 @@ function(__preprocess_linker_script script_in script_out) COMMENT "Preprocessing linker script ${script_in} -> ${script_out}" VERBATIM) endfunction() + +#[[ + __remove_genex() + + *list[in,out]* + + List from which entries containing generator expressions should be + removed. + + Remove entries containing generator expressions from the ``list``. The + ``list`` is modified in place. +#]] +function(__remove_genex list) + set(result "") + foreach(item IN LISTS ${list}) + # If the item contains a $<...> pattern, skip it + string(REGEX MATCH "\\$<[^>]+>" match "${item}") + if(NOT match) + # Only append if no generator expression found + list(APPEND result "${item}") + endif() + endforeach() + set(${list} "${result}" PARENT_SCOPE) +endfunction()