nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 75 lines 2.1 kB view raw
1# Build settings based on the upstream Xcode project. 2# See: https://github.com/apple-oss-distributions/IOKitTools/blob/main/IOKitTools.xcodeproj/project.pbxproj 3 4# Project settings 5project('IOKitTools', 'c', version : '@version@') 6 7 8# Dependencies 9cc = meson.get_compiler('c') 10 11ncurses = dependency('ncurses') 12 13core_foundation = dependency('appleframeworks', modules : 'CoreFoundation') 14iokit = dependency('appleframeworks', modules : 'IOKit') 15core_symbolication = dependency('appleframeworks', modules : 'CoreSymbolication') 16perfdata = dependency('appleframeworks', modules : 'perfdata') 17 18 19# Compatibility tests 20iomainport_test = ''' 21#include <IOKit/IOKit.h> 22int main(int argc, char* argv[]) { 23 const mach_port_t port = kIOMasterPortDefault; 24} 25''' 26 27if not cc.compiles(iomainport_test, name : 'supports IOMainPort', dependencies : [ iokit ]) 28 add_project_arguments( 29 '-DIOMainPort=IOMasterPort', 30 '-DkIOMainPortDefault=kIOMasterPortDefault', 31 language : 'c' 32 ) 33 message('Redefining IOMainPort to IOMasterPort.') 34endif 35 36kiouserclasseskey_test = ''' 37#include <IOKit/IOKit.h> 38int main(int argc, char* argv[]) { 39 const char* key = kIOUserClassesKey; 40} 41''' 42 43if not cc.compiles(iomainport_test, name : 'supports IOUserClasses', dependencies : [ iokit ]) 44 add_project_arguments( 45 '-DkIOUserClassesKey="IOUserClasses"', 46 language : 'c' 47 ) 48 message('Manually defining IOUserClasses constants.') 49endif 50 51 52# Binaries 53executable( 54 'ioalloccount', 55 dependencies : [ core_foundation, iokit ], 56 install : true, 57 sources : [ 'ioalloccount.tproj/ioalloccount.c' ], 58) 59install_man('ioalloccount.tproj/ioalloccount.8') 60 61executable( 62 'ioclasscount', 63 dependencies : [ core_foundation, core_symbolication, iokit, perfdata ], 64 install : true, 65 sources : [ 'ioclasscount.tproj/ioclasscount.c' ], 66) 67install_man('ioclasscount.tproj/ioclasscount.8') 68 69executable( 70 'ioreg', 71 dependencies : [ core_foundation, iokit, ncurses ], 72 install : true, 73 sources : [ 'ioreg.tproj/ioreg.c' ], 74) 75install_man('ioreg.tproj/ioreg.8')