@@ -5,13 +5,31 @@ pub fn build(b: *std.Build) void {
5
5
const target = b .standardTargetOptions (.{});
6
6
const optimize = b .standardOptimizeOption (.{});
7
7
8
+ const arm = b .option (bool , "arm" , "Controls -DCAPSTONE_HAS_ARM" ) orelse false ;
9
+ const arm64 = b .option (bool , "arm64" , "Controls -DCAPSTONE_HAS_ARM64" ) orelse false ;
10
+ const mips = b .option (bool , "mips" , "Controls -DCAPSTONE_HAS_MIPS" ) orelse false ;
11
+ const powerpc = b .option (bool , "powerpc" , "Controls -DCAPSTONE_HAS_POWERPC" ) orelse false ;
12
+ const x86 = b .option (bool , "x86" , "Controls -DCAPSTONE_HAS_X86" ) orelse false ;
13
+ const sparc = b .option (bool , "sparc" , "Controls -DCAPSTONE_HAS_SPARC" ) orelse false ;
14
+ const sysz = b .option (bool , "sysz" , "Controls -DCAPSTONE_HAS_SYSZ" ) orelse false ;
15
+ const xcore = b .option (bool , "xcore" , "Controls -DCAPSTONE_HAS_XCORE" ) orelse false ;
16
+ const m68k = b .option (bool , "m68k" , "Controls -DCAPSTONE_HAS_M68K" ) orelse false ;
17
+ const tms320c64x = b .option (bool , "tms320c64x" , "Controls -DCAPSTONE_HAS_TMS320C64X" ) orelse false ;
18
+ const m680x = b .option (bool , "m680x" , "Controls -DCAPSTONE_HAS_M680X" ) orelse false ;
19
+ const evm = b .option (bool , "evm" , "Controls -DCAPSTONE_HAS_EVM" ) orelse false ;
20
+ const wasm = b .option (bool , "wasm" , "Controls -DCAPSTONE_HAS_WASM" ) orelse false ;
21
+ const mos65xx = b .option (bool , "mos65xx" , "Controls -DCAPSTONE_HAS_MOS65XX" ) orelse false ;
22
+ const bpf = b .option (bool , "bpf" , "Controls -DCAPSTONE_HAS_BPF" ) orelse false ;
23
+ const riscv = b .option (bool , "riscv" , "Controls -DCAPSTONE_HAS_RISCV" ) orelse false ;
24
+ const sh = b .option (bool , "sh" , "Controls -DCAPSTONE_HAS_SH" ) orelse false ;
25
+ const tricore = b .option (bool , "tricore" , "Controls -DCAPSTONE_HAS_TRICORE" ) orelse false ;
26
+
8
27
const upstream = b .dependency ("capstone" , .{});
9
28
const lib = b .addSharedLibrary (.{
10
29
.name = "capstone" ,
11
30
.target = target ,
12
31
.optimize = optimize ,
13
32
});
14
-
15
33
lib .linkLibC ();
16
34
lib .addIncludePath (upstream .path ("include" ));
17
35
lib .addCSourceFiles (.{
@@ -121,24 +139,24 @@ pub fn build(b: *std.Build) void {
121
139
},
122
140
.flags = &.{
123
141
// For now, let's just add all of them lol
124
- "-DCAPSTONE_HAS_ARM" ,
125
- "-DCAPSTONE_HAS_ARM64" ,
126
- "-DCAPSTONE_HAS_MIPS" ,
127
- "-DCAPSTONE_HAS_POWERPC" ,
128
- "-DCAPSTONE_HAS_X86" ,
129
- "-DCAPSTONE_HAS_SPARC" ,
130
- "-DCAPSTONE_HAS_SYSZ" ,
131
- "-DCAPSTONE_HAS_XCORE" ,
132
- "-DCAPSTONE_HAS_M68K" ,
133
- "-DCAPSTONE_HAS_TMS320C64X" ,
134
- "-DCAPSTONE_HAS_M680X" ,
135
- "-DCAPSTONE_HAS_EVM" ,
136
- "-DCAPSTONE_HAS_WASM" ,
137
- "-DCAPSTONE_HAS_MOS65XX" ,
138
- "-DCAPSTONE_HAS_BPF" ,
139
- "-DCAPSTONE_HAS_RISCV" ,
140
- "-DCAPSTONE_HAS_SH" ,
141
- "-DCAPSTONE_HAS_TRICORE" ,
142
+ if ( arm ) "-DCAPSTONE_HAS_ARM" else " " ,
143
+ if ( arm64 ) "-DCAPSTONE_HAS_ARM64" else " " ,
144
+ if ( mips ) "-DCAPSTONE_HAS_MIPS" else " " ,
145
+ if ( powerpc ) "-DCAPSTONE_HAS_POWERPC" else " " ,
146
+ if ( x86 ) "-DCAPSTONE_HAS_X86" else " " ,
147
+ if ( sparc ) "-DCAPSTONE_HAS_SPARC" else " " ,
148
+ if ( sysz ) "-DCAPSTONE_HAS_SYSZ" else " " ,
149
+ if ( xcore ) "-DCAPSTONE_HAS_XCORE" else " " ,
150
+ if ( m68k ) "-DCAPSTONE_HAS_M68K" else " " ,
151
+ if ( tms320c64x ) "-DCAPSTONE_HAS_TMS320C64X" else " " ,
152
+ if ( m680x ) "-DCAPSTONE_HAS_M680X" else " " ,
153
+ if ( evm ) "-DCAPSTONE_HAS_EVM" else " " ,
154
+ if ( wasm ) "-DCAPSTONE_HAS_WASM" else " " ,
155
+ if ( mos65xx ) "-DCAPSTONE_HAS_MOS65XX" else " " ,
156
+ if ( bpf ) "-DCAPSTONE_HAS_BPF" else " " ,
157
+ if ( riscv ) "-DCAPSTONE_HAS_RISCV" else " " ,
158
+ if ( sh ) "-DCAPSTONE_HAS_SH" else " " ,
159
+ if ( tricore ) "-DCAPSTONE_HAS_TRICORE" else " " ,
142
160
},
143
161
});
144
162
0 commit comments