nixpkgs-suyu/pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix
John Ericson 7bba32a069 darwin packages: Get ready for cross
If things build fine with `stdenvNoCC`, let them use that. If tools
might be prefixed, prepare for that, either by directly splicing or just
using the env vars provided by the wrapper setup-hooks.

Co-authored-by: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
2021-05-11 16:07:01 -04:00

54 lines
1.4 KiB
Nix

{ appleDerivation', stdenvNoCC }:
appleDerivation' stdenvNoCC {
dontConfigure = true;
dontBuild = true;
installPhase = ''
mkdir -p $out/include/dispatch $out/include/os
# Move these headers so CF can find <os/voucher_private.h>
mv private/voucher*.h $out/include/os
cp -r private/*.h $out/include/dispatch
cp -r dispatch/*.h $out/include/dispatch
cp -r os/object*.h $out/include/os
# gcc compatability. Source: https://stackoverflow.com/a/28014302/3714556
substituteInPlace $out/include/dispatch/object.h \
--replace 'typedef void (^dispatch_block_t)(void);' \
'#ifdef __clang__
typedef void (^dispatch_block_t)(void);
#else
typedef void* dispatch_block_t;
#endif'
'';
appleHeaders = ''
dispatch/base.h
dispatch/benchmark.h
dispatch/block.h
dispatch/data.h
dispatch/data_private.h
dispatch/dispatch.h
dispatch/group.h
dispatch/introspection.h
dispatch/introspection_private.h
dispatch/io.h
dispatch/io_private.h
dispatch/layout_private.h
dispatch/mach_private.h
dispatch/object.h
dispatch/once.h
dispatch/private.h
dispatch/queue.h
dispatch/queue_private.h
dispatch/semaphore.h
dispatch/source.h
dispatch/source_private.h
dispatch/time.h
os/object.h
os/object_private.h
os/voucher_activity_private.h
os/voucher_private.h
'';
}