This extracts the LLVM distribution target handling into a support module. Extraction will enable us to restructure the builds to support multiple distribution configurations (e.g. developer and user) to permit us to build the development package and the user package at once.
This is technically a behavior change because with the old code, you wouldn't run any of the distribution code if LLVM_DISTRIBUTION_COMPONENTS was empty, even if LLVM_RUNTIME_DISTRIBUTION_COMPONENTS was non-empty. The new behavior seems more correct though.
What I am imagining is basically having a variable which specifies the distribution targets, and having variables which will be constructed based upon those names (similar to how variables for the runtimes are passed today).
Ah, so just having variables to hold the different distribution sets? Makes sense ... you'd need to adjust the CMake exporting logic, and I'm not quite sure how that'll play out yet, but we can see when we get to that.
Never mind, looks like we don't usually put the license header in build files.