summaryrefslogtreecommitdiff
path: root/CMake
diff options
context:
space:
mode:
Diffstat (limited to 'CMake')
-rw-r--r--CMake/Utilities.cmake13
1 files changed, 13 insertions, 0 deletions
diff --git a/CMake/Utilities.cmake b/CMake/Utilities.cmake
index 37cdfe3bf..8b6276df6 100644
--- a/CMake/Utilities.cmake
+++ b/CMake/Utilities.cmake
@@ -29,3 +29,16 @@ function(IN_STR_LIST LIST_NAME ITEM_SEARCHED RETVAL)
set(${RETVAL} TRUE PARENT_SCOPE)
endif()
endfunction()
+
+# Returns a list of arguments that evaluate to true
+function(collect_true output_var output_count_var)
+ set(${output_var})
+ foreach(option_var IN LISTS ARGN)
+ if(${option_var})
+ list(APPEND ${output_var} ${option_var})
+ endif()
+ endforeach()
+ set(${output_var} ${${output_var}} PARENT_SCOPE)
+ list(LENGTH ${output_var} ${output_count_var})
+ set(${output_count_var} ${${output_count_var}} PARENT_SCOPE)
+endfunction()