| # 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() |