forked from mirrors/nixpkgs
2110c0bd30
Also fix some setup hooks that unnecessarily used environment hooks, which revolted in the same variable being modified too many times.
48 lines
1.2 KiB
Nix
48 lines
1.2 KiB
Nix
{ lib, stdenv, fetch, cmake, libcxxabi, fixDarwinDylibNames, version }:
|
|
|
|
stdenv.mkDerivation rec {
|
|
name = "libc++-${version}";
|
|
|
|
src = fetch "libcxx" "0i7iyzk024krda5spfpfi8jksh83yp3bxqkal0xp76ffi11bszrm";
|
|
|
|
postUnpack = ''
|
|
unpackFile ${libcxxabi.src}
|
|
'';
|
|
|
|
preConfigure = ''
|
|
# Get headers from the cxxabi source so we can see private headers not installed by the cxxabi package
|
|
cmakeFlagsArray=($cmakeFlagsArray -DLIBCXX_CXX_ABI_INCLUDE_PATHS="$NIX_BUILD_TOP/libcxxabi-${version}.src/include")
|
|
'';
|
|
|
|
patches = [
|
|
./darwin.patch
|
|
./r242056.patch
|
|
# glibc 2.26 fix
|
|
./xlocale-glibc-2.26.patch
|
|
];
|
|
|
|
buildInputs = [ cmake libcxxabi ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
|
|
|
|
cmakeFlags = [
|
|
"-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib"
|
|
"-DLIBCXX_LIBCPPABI_VERSION=2"
|
|
"-DLIBCXX_CXX_ABI=libcxxabi"
|
|
];
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
linkCxxAbi = stdenv.isLinux;
|
|
|
|
setupHooks = [
|
|
../../../../../build-support/setup-hooks/role.bash
|
|
./setup-hook.sh
|
|
];
|
|
|
|
meta = {
|
|
homepage = http://libcxx.llvm.org/;
|
|
description = "A new implementation of the C++ standard library, targeting C++11";
|
|
license = with stdenv.lib.licenses; [ ncsa mit ];
|
|
platforms = stdenv.lib.platforms.unix;
|
|
};
|
|
}
|