Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at release-19.03 50 lines 1.7 kB view raw
1{ lib, stdenv, fetch, cmake, python, libcxxabi, fixDarwinDylibNames, version }: 2 3stdenv.mkDerivation rec { 4 name = "libc++-${version}"; 5 6 src = fetch "libcxx" "1wdrxg365ig0kngx52pd0n820sncp24blb0zpalc579iidhh4002"; 7 8 postUnpack = '' 9 unpackFile ${libcxxabi.src} 10 export LIBCXXABI_INCLUDE_DIR="$PWD/$(ls -d libcxxabi-${version}*)/include" 11 ''; 12 13 patches = stdenv.lib.optional stdenv.hostPlatform.isMusl ../../libcxx-0001-musl-hacks.patch; 14 15 prePatch = '' 16 substituteInPlace lib/CMakeLists.txt --replace "/usr/lib/libc++" "\''${LIBCXX_LIBCXXABI_LIB_PATH}/libc++" 17 ''; 18 19 preConfigure = '' 20 # Get headers from the cxxabi source so we can see private headers not installed by the cxxabi package 21 cmakeFlagsArray=($cmakeFlagsArray -DLIBCXX_CXX_ABI_INCLUDE_PATHS="$LIBCXXABI_INCLUDE_DIR") 22 '' + lib.optionalString stdenv.hostPlatform.isMusl '' 23 patchShebangs utils/cat_files.py 24 ''; 25 nativeBuildInputs = [ cmake ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl python; 26 27 buildInputs = [ libcxxabi ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; 28 29 cmakeFlags = [ 30 "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib" 31 "-DLIBCXX_LIBCPPABI_VERSION=2" 32 "-DLIBCXX_CXX_ABI=libcxxabi" 33 ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl "-DLIBCXX_HAS_MUSL_LIBC=1"; 34 35 enableParallelBuilding = true; 36 37 linkCxxAbi = stdenv.isLinux; 38 39 setupHooks = [ 40 ../../../../../build-support/setup-hooks/role.bash 41 ./setup-hook.sh 42 ]; 43 44 meta = { 45 homepage = http://libcxx.llvm.org/; 46 description = "A new implementation of the C++ standard library, targeting C++11"; 47 license = with stdenv.lib.licenses; [ ncsa mit ]; 48 platforms = stdenv.lib.platforms.unix; 49 }; 50}