De ce lien Il existe une variable LLVM_TARGETS_TO_BUILD
et la définition dit que
Une liste délimitée par des points-virgules contrôlant les cibles qui seront construites et liées à llc. Ceci est équivalent à l'option --enable-targets
dans l'option configure script. La liste par défaut est définie comme LLVM_ALL_TARGETS, et peut être définie pour inclure les cibles hors-arbre. La valeur par défaut inclut : AArch64, AMDGPU, ARM, BPF, Hexagon, Mips, MSP430, NVPTX, PowerPC, Sparc, SystemZ, X86, XCore.
Vous devriez ajouter le X86 et ARM est présent dans elle. vous devez ajouter le support pour 64 et Apple
De ce lien
Il est possible d'effectuer une compilation croisée
L'exemple de commande se présente comme suit
% cmake -G "Ninja" -DCMAKE_OSX_ARCHITECTURES="armv7;armv7s;arm64"
-DCMAKE_TOOLCHAIN_FILE=<PATH_TO_LLVM>/cmake/platforms/iOS.cmake
-DCMAKE_BUILD_TYPE=Release -DLLVM_BUILD_RUNTIME=Off -DLLVM_INCLUDE_TESTS=Off
-DLLVM_INCLUDE_EXAMPLES=Off -DLLVM_ENABLE_BACKTRACES=Off [options]
<PATH_TO_LLVM>
Je voudrais aussi partager ce lien . Il est dit
L'option de base consiste à définir l'architecture cible. Pour cela, utilisez -target . Si vous ne spécifiez pas la cible, les noms des CPU ne correspondront pas (puisque Clang suppose le triple de l'hôte), et la compilation se poursuivra, créant du code pour la plateforme hôte, qui se brisera plus tard lors de l'assemblage ou de la liaison.
Le triple a le format général suivant <arch>-<vendor>-<sys>-<abi>
où :
arch = x86_64, i386, arm, thumb, mips, etc.
sub = for ex. on ARM: v5, v6m, v7a, v7m, etc.
vendor = pc, apple, nvidia, ibm, etc.
sys = none, linux, win32, darwin, cuda, etc.
abi = eabi, gnu, android, macho, elf, etc.