nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 61 lines 1.5 kB view raw
1{ 2 lib, 3 apple-sdk, 4 mkAppleDerivation, 5 ncurses, 6 pkg-config, 7 stdenvNoCC, 8}: 9 10let 11 iokitUser = apple-sdk.sourceRelease "IOKitUser"; 12 xnu = apple-sdk.sourceRelease "xnu"; 13 14 privateHeaders = stdenvNoCC.mkDerivation { 15 name = "IOKitTools-deps-private-headers"; 16 17 buildCommand = '' 18 install -D -t "$out/include/IOKit/" \ 19 '${iokitUser}/IOKitLibPrivate.h' \ 20 '${xnu}/iokit/IOKit/IOKitKeysPrivate.h' 21 22 install -D -t "$out/include/Kernel/libkern" \ 23 '${xnu}/libkern/libkern/OSKextLibPrivate.h' 24 25 mkdir -p "$out/include/perfdata" 26 cat <<EOF > "$out/include/perfdata/perfdata.h" 27 #pragma once 28 typedef void* pdunit_t; 29 30 #define PDUNIT_CUSTOM(x) ((void*)("#\"" x "\"")) 31 extern const pdunit_t pdunit_B; 32 33 typedef void* pdwriter_t; 34 extern pdwriter_t pdwriter_open(const char*, const char*, size_t, size_t); 35 extern void pdwriter_close(pdwriter_t); 36 extern void pdwriter_new_value(pdwriter_t, const char*, pdunit_t, double); 37 extern void pdwriter_record_variable_str(pdwriter_t, char*, const char*); 38 EOF 39 ''; 40 }; 41in 42mkAppleDerivation { 43 releaseName = "IOKitTools"; 44 45 outputs = [ 46 "out" 47 "man" 48 ]; 49 50 xcodeHash = "sha256-qFG4sB8NXNPTSvYTEX2E1ReOX+NcMBHrS2NuNBLO7zw="; 51 52 nativeBuildInputs = [ pkg-config ]; 53 buildInputs = [ 54 apple-sdk.privateFrameworksHook 55 ncurses 56 ]; 57 58 env.NIX_CFLAGS_COMPILE = "-I${privateHeaders}/include"; 59 60 meta.description = "IOKit tools"; 61}