From 06400a0142af8297b5d39b8f34a7c59db6f9910c Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Fri, 6 May 2022 15:43:18 -0400 Subject: [runtimes] Generalize how we reorder projects This way, we could use it for LLVM_ENABLE_PROJECTS too if desired. Differential Revision: https://reviews.llvm.org/D125121 --- cmake/Modules/SortSubset.cmake | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 cmake/Modules/SortSubset.cmake (limited to 'cmake') diff --git a/cmake/Modules/SortSubset.cmake b/cmake/Modules/SortSubset.cmake new file mode 100644 index 000000000000..af65c27e715b --- /dev/null +++ b/cmake/Modules/SortSubset.cmake @@ -0,0 +1,25 @@ +# Sort a subset of a list according to the ordering in the full list. +# +# Given a list and a subset of that list, this function sorts the subset +# according to the order in the full list, and returns that in the given +# output variable. +# +# full_list: +# The list containing the desired order of elements in the sub-list. +# +# sub_list: +# A subset of the elements in `full_list`. Those elements will be sorted +# according to the order in `full_list`. +# +# out_var: +# A variable to store the resulting sorted sub-list in. +function(sort_subset full_list sub_list out_var) + set(result "${full_list}") + foreach(project IN LISTS full_list) + if (NOT project IN_LIST sub_list) + list(REMOVE_ITEM result ${project}) + endif() + endforeach() + + set(${out_var} "${result}" PARENT_SCOPE) +endfunction() -- cgit v1.2.1