at 24.11-pre 60 lines 1.6 kB view raw
1{ lib 2, fetchFromGitHub 3, cmake 4, llvmPackages_16 5, unstableGitUpdater 6}: 7 8let 9 c2ffiBranch = "llvm-16.0.0"; 10 llvmPackages = llvmPackages_16; 11in 12 13llvmPackages.stdenv.mkDerivation { 14 pname = "c2ffi-${c2ffiBranch}"; 15 version = "0-unstable-2023-11-18"; 16 17 src = fetchFromGitHub { 18 owner = "rpav"; 19 repo = "c2ffi"; 20 rev = "097cbe61ca02dc79ea60859aa056975131a9d985"; 21 hash = "sha256-pflolW5OoEkVDozy4cjCdUIVxgE/SfVKIhQyNBDhENc="; 22 }; 23 24 passthru.updateScript = unstableGitUpdater { 25 url = "https://github.com/rpav/c2ffi.git"; 26 branch = c2ffiBranch; 27 # Tags only exist for older LLVM versions, so they would result in nonsense names 28 # like: c2ffi-llvm-16.0.0-11.0.0.0-unstable-YYYY-MM-DD 29 hardcodeZeroVersion = true; 30 }; 31 32 nativeBuildInputs = [ 33 cmake 34 ]; 35 36 buildInputs = [ 37 llvmPackages.llvm 38 llvmPackages.clang 39 llvmPackages.libclang 40 ]; 41 42 # This isn't much, but... 43 doInstallCheck = true; 44 installCheckPhase = '' 45 $out/bin/c2ffi --help 2>&1 >/dev/null 46 ''; 47 48 # LLVM may be compiled with -fno-rtti, so let's just turn it off. 49 # A mismatch between lib{clang,LLVM}* and us can lead to the link time error: 50 # undefined reference to `typeinfo for clang::ASTConsumer' 51 env.CXXFLAGS="-fno-rtti"; 52 53 meta = with lib; { 54 homepage = "https://github.com/rpav/c2ffi"; 55 description = "An LLVM based tool for extracting definitions from C, C++, and Objective C header files for use with foreign function call interfaces"; 56 mainProgram = "c2ffi"; 57 license = licenses.lgpl21Only; 58 maintainers = with maintainers; [ ]; 59 }; 60}