at v206 1.5 kB view raw
1{ lib, stdenv, fetchurl, cmake, libcxxabi, fixDarwinDylibNames }: 2 3let version = "3.5.2"; in 4 5stdenv.mkDerivation rec { 6 name = "libc++-${version}"; 7 8 src = fetchurl { 9 url = "http://llvm.org/releases/${version}/libcxx-${version}.src.tar.xz"; 10 sha256 = "0irnl54fwzh2hzn9x4jfvnfyq5kd0zn0iwbzdivgwhqzw6fjdwdv"; 11 }; 12 13 # instead of allowing libc++ to link with /usr/lib/libc++abi.dylib, 14 # force it to link with our copy 15 preConfigure = stdenv.lib.optionalString stdenv.isDarwin '' 16 substituteInPlace lib/CMakeLists.txt \ 17 --replace 'OSX_RE_EXPORT_LINE "/usr/lib/libc++abi.dylib' \ 18 'OSX_RE_EXPORT_LINE "${libcxxabi}/lib/libc++abi.dylib' \ 19 --replace '"''${CMAKE_OSX_SYSROOT}/usr/lib/libc++abi.dylib"' \ 20 '"${libcxxabi}/lib/libc++abi.dylib"' 21 ''; 22 23 patches = [ ./darwin.patch ]; 24 25 buildInputs = [ cmake libcxxabi ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; 26 27 cmakeFlags = 28 [ "-DCMAKE_BUILD_TYPE=Release" 29 "-DLIBCXX_LIBCXXABI_INCLUDE_PATHS=${libcxxabi}/include" 30 "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib" 31 "-DLIBCXX_LIBCPPABI_VERSION=2" 32 "-DLIBCXX_CXX_ABI=libcxxabi" 33 ]; 34 35 enableParallelBuilding = true; 36 37 linkCxxAbi = stdenv.isLinux; 38 39 setupHook = ./setup-hook.sh; 40 41 meta = { 42 homepage = http://libcxx.llvm.org/; 43 description = "A new implementation of the C++ standard library, targeting C++11"; 44 license = "BSD"; 45 platforms = stdenv.lib.platforms.unix; 46 }; 47}