That makes it possible to reuse libc++abi targets from the libc++
configuration, which is necessary to allow major CMake simplifications.
This patch requires tweaking how libc++abi knows whether to enable
dllexports because it previously relied on libc++ being configured
before libc++abi (for libc++abi to know about LIBCXX_ENABLE_SHARED).
Also, as a fly-by fix, make sure that the libc++ CI pipeline is triggered
when only the runtimes/ directory is touched.
We similarly reorder compiler-rt here so these blocks should probably be moved next to each other.
If we decide to go take this direction, I wonder if we should have a canonical order for runtimes rather than reodering them ad-hoc? I remember having that discussion with @beanz in the past and he argued against it but I don't remember what the reason was, @beanz do you remember?
A potential issue I can think of is if downstream users have their own runtimes (that is doing -DLLVM_ENABLE_RUNTIMES=libcxx;foo), there's currently no way for them to specify the order and if we start relying on a canonical ordering, we may inadvertently break them, but I'm not sure if that's a practical concern.