Merge pull request #51930 from Ericson2314/llvm-targets

llvm 7: Allow for specifying an arbitrary list of backends to build
This commit is contained in:
Jörg Thalheim 2018-12-13 21:03:35 +00:00 committed by GitHub
commit 29f59a1e20
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 13 deletions

View file

@ -13,7 +13,8 @@
, debugVersion ? false
, enableManpages ? false
, enableSharedLibraries ? true
, enableWasm ? true
, targets ? [ stdenv.hostPlatform stdenv.targetPlatform ]
, enableWasm ? true # TODO fold this into `targets` somehow
, enablePFM ? !stdenv.isDarwin
}:
@ -24,17 +25,9 @@ let
shortVersion = with stdenv.lib;
concatStringsSep "." (take 1 (splitString "." release_version));
llvmTarget = platform:
if platform.parsed.cpu.family == "x86" then
"X86"
else if platform.parsed.cpu.name == "aarch64" then
"AArch64"
else if platform.parsed.cpu.family == "arm" then
"ARM"
else if platform.parsed.cpu.family == "mips" then
"Mips"
else
throw "Unsupported system";
inherit
(import ../common.nix { inherit (stdenv) lib; })
llvmBackendList;
in stdenv.mkDerivation (rec {
name = "llvm-${version}";
@ -92,7 +85,7 @@ in stdenv.mkDerivation (rec {
"-DLLVM_ENABLE_RTTI=ON"
"-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}"
"-DLLVM_TARGETS_TO_BUILD=${llvmTarget stdenv.hostPlatform};${llvmTarget stdenv.targetPlatform}"
"-DLLVM_TARGETS_TO_BUILD=${llvmBackendList targets}"
"-DLLVM_ENABLE_DUMP=ON"
]

View file

@ -0,0 +1,18 @@
{ lib }:
rec {
llvmBackend = platform:
if platform.parsed.cpu.family == "x86" then
"X86"
else if platform.parsed.cpu.name == "aarch64" then
"AArch64"
else if platform.parsed.cpu.family == "arm" then
"ARM"
else if platform.parsed.cpu.family == "mips" then
"Mips"
else
throw "Unsupported system";
llvmBackendList = platforms:
lib.concatStringsSep ";" (map llvmBackend platforms);
}