@@ -100,9 +100,13 @@ const boost_libs = [_][]const u8{
100
100
"local_function" ,
101
101
"format" ,
102
102
"pool" ,
103
+ "gil" ,
104
+ "python" ,
103
105
"proto" ,
104
106
"property_tree" ,
105
107
"exception" ,
108
+ "property_map" ,
109
+ "property_map_parallel" ,
106
110
"multi_index" ,
107
111
"callable_traits" ,
108
112
"compat" ,
@@ -135,7 +139,9 @@ pub fn build(b: *std.Build) void {
135
139
.iostreams = b .option (bool , "iostreams" , "Build boost.iostreams library (default: false)" ) orelse false ,
136
140
.json = b .option (bool , "json" , "Build boost.json library (default: false)" ) orelse false ,
137
141
.log = b .option (bool , "log" , "Build boost.log library (default: false)" ) orelse false ,
142
+ .nowide = b .option (bool , "nowide" , "Build boost.nowide library (default: false)" ) orelse false ,
138
143
.process = b .option (bool , "process" , "Build boost.process library (default: false)" ) orelse false ,
144
+ .python = b .option (bool , "python" , "Build boost.python library (default: false)" ) orelse false ,
139
145
.random = b .option (bool , "random" , "Build boost.random library (default: false)" ) orelse false ,
140
146
.regex = b .option (bool , "regex" , "Build boost.regex library (default: false)" ) orelse false ,
141
147
.serialization = b .option (bool , "serialization" , "Build boost.serialization library (default: false)" ) orelse false ,
@@ -230,9 +236,15 @@ pub fn boostLibraries(b: *std.Build, config: Config) *std.Build.Step.Compile {
230
236
if (module .serialization ) {
231
237
buildSerialization (b , lib );
232
238
}
239
+ if (module .nowide ) {
240
+ buildNoWide (b , lib );
241
+ }
233
242
if (module .system ) {
234
243
buildSystem (b , lib );
235
244
}
245
+ if (module .python ) {
246
+ buildPython (b , lib );
247
+ }
236
248
if (module .stacktrace ) {
237
249
buildStacktrace (b , lib );
238
250
}
@@ -274,7 +286,9 @@ const boostLibrariesModules = struct {
274
286
iostreams : bool = false ,
275
287
json : bool = false ,
276
288
log : bool = false ,
289
+ nowide : bool = false ,
277
290
process : bool = false ,
291
+ python : bool = false ,
278
292
random : bool = false ,
279
293
regex : bool = false ,
280
294
stacktrace : bool = false ,
@@ -953,6 +967,77 @@ fn buildLog(b: *std.Build, obj: *std.Build.Step.Compile) void {
953
967
});
954
968
}
955
969
970
+ fn buildNoWide (b : * std.Build , obj : * std.Build.Step.Compile ) void {
971
+ const nwPath = b .dependency ("nowide" , .{}).path ("src" );
972
+
973
+ obj .addIncludePath (nwPath );
974
+ obj .addCSourceFiles (.{
975
+ .root = nwPath ,
976
+ .files = &.{
977
+ "console_buffer.cpp" ,
978
+ "cstdio.cpp" ,
979
+ "cstdlib.cpp" ,
980
+ "filebuf.cpp" ,
981
+ "iostream.cpp" ,
982
+ "stat.cpp" ,
983
+ },
984
+ .flags = cxxFlags ,
985
+ });
986
+ }
987
+
988
+ fn buildPython (b : * std.Build , obj : * std.Build.Step.Compile ) void {
989
+ const pyPath = b .dependency ("python" , .{}).path ("src" );
990
+
991
+ obj .linkSystemLibrary ("python3" );
992
+ obj .addCSourceFiles (.{
993
+ .root = pyPath ,
994
+ .files = &.{
995
+ "converter/arg_to_python_base.cpp" ,
996
+ "converter/builtin_converters.cpp" ,
997
+ "converter/from_python.cpp" ,
998
+ "converter/registry.cpp" ,
999
+ "converter/type_id.cpp" ,
1000
+ "dict.cpp" ,
1001
+ "errors.cpp" ,
1002
+ "exec.cpp" ,
1003
+ "import.cpp" ,
1004
+ "list.cpp" ,
1005
+ "long.cpp" ,
1006
+ "module.cpp" ,
1007
+ "object/class.cpp" ,
1008
+ "object/enum.cpp" ,
1009
+ "object/function.cpp" ,
1010
+ "object/function_doc_signature.cpp" ,
1011
+ "object/inheritance.cpp" ,
1012
+ "object/iterator.cpp" ,
1013
+ "object/life_support.cpp" ,
1014
+ "object/pickle_support.cpp" ,
1015
+ "object/stl_iterator.cpp" ,
1016
+ "object_operators.cpp" ,
1017
+ "object_protocol.cpp" ,
1018
+ "slice.cpp" ,
1019
+ "str.cpp" ,
1020
+ "tuple.cpp" ,
1021
+ "wrapper.cpp" ,
1022
+ },
1023
+ .flags = cxxFlags ,
1024
+ });
1025
+
1026
+ // obj.linkSystemLibrary("npymath");
1027
+ // obj.addCSourceFiles(.{
1028
+ // .root = pyPath,
1029
+ // .files = &.{
1030
+ // "numpy/dtype.cpp",
1031
+ // "numpy/matrix.cpp",
1032
+ // "numpy/ndarray.cpp",
1033
+ // "numpy/numpy.cpp",
1034
+ // "numpy/scalars.cpp",
1035
+ // "numpy/ufunc.cpp",
1036
+ // },
1037
+ // .flags = cxxFlags,
1038
+ // });
1039
+ }
1040
+
956
1041
fn buildWave (b : * std.Build , obj : * std.Build.Step.Compile ) void {
957
1042
const wavePath = b .dependency ("wave" , .{}).path ("src" );
958
1043
0 commit comments