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