nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
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')