[CMake] Support runtimes targets without specifying triple
authorPetr Hosek <phosek@google.com>
Wed, 30 Jun 2021 06:34:18 +0000 (23:34 -0700)
committerPetr Hosek <phosek@google.com>
Sat, 4 Feb 2023 22:44:16 +0000 (22:44 +0000)
commite6975c4ced27fe93945393603df79557aeb23d83
tree72660adacc120ac489b5b73482836b5df608f149
parent5cd554303ead0f8891eee3cd6d25cb07f5a7bf67
[CMake] Support runtimes targets without specifying triple

Currently, for BUILTIN_TARGETS and RUNTIME_TARGETS you can either use
the special "default" value, or a target triple.

For the "default" value, we don't set any target triple and passthrough
a subset of CMake variables into the subbuild. This is typically used
on Darwin where we build universal binaries and a single target triple
therefore isn't sufficient.

For the target triple value, you can set arbitrary CMake variables
through RUNTIMES_<target>_<variable>, but we always set target triple
to <target>. This gives more flexibility, because we can precisely
control what variables are set in the subbuild, but is unsuitable for
platforms like Darwin.

To address this, we would like to introduce a third option which is
similar to the second option, except we won't set target triple in
the subbuild (you can always do so yourself by setting the appropriate
CMake variable, e.g. RUNTIMES_<name>_CMAKE_C_COMPILER_TARGET=<triple>).

This change is a first step in that direction, by eliminating the support
of target triples from builtin_register_target and runtime_register_target
helper functions.

Differential Revision: https://reviews.llvm.org/D117263
llvm/runtimes/CMakeLists.txt