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