diff options
author | Louis Dionne <ldionne.2@gmail.com> | 2022-05-06 15:43:18 -0400 |
---|---|---|
committer | Louis Dionne <ldionne.2@gmail.com> | 2022-05-16 08:55:32 -0400 |
commit | 06400a0142af8297b5d39b8f34a7c59db6f9910c (patch) | |
tree | 0820dcf0cd74393c670a456e8380d342931a6019 /cmake | |
parent | d95513ae3a73388cbe18fa1bd2c76fec70f3ec06 (diff) | |
download | llvm-06400a0142af8297b5d39b8f34a7c59db6f9910c.tar.gz |
[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
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/Modules/SortSubset.cmake | 25 |
1 files changed, 25 insertions, 0 deletions
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() |