@@ -100,9 +100,13 @@ const boost_libs = [_][]const u8{
100100 "local_function" ,
101101 "format" ,
102102 "pool" ,
103+ "gil" ,
104+ "python" ,
103105 "proto" ,
104106 "property_tree" ,
105107 "exception" ,
108+ "property_map" ,
109+ "property_map_parallel" ,
106110 "multi_index" ,
107111 "callable_traits" ,
108112 "compat" ,
@@ -135,7 +139,9 @@ pub fn build(b: *std.Build) void {
135139 .iostreams = b .option (bool , "iostreams" , "Build boost.iostreams library (default: false)" ) orelse false ,
136140 .json = b .option (bool , "json" , "Build boost.json library (default: false)" ) orelse false ,
137141 .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 ,
138143 .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 ,
139145 .random = b .option (bool , "random" , "Build boost.random library (default: false)" ) orelse false ,
140146 .regex = b .option (bool , "regex" , "Build boost.regex library (default: false)" ) orelse false ,
141147 .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 {
230236 if (module .serialization ) {
231237 buildSerialization (b , lib );
232238 }
239+ if (module .nowide ) {
240+ buildNoWide (b , lib );
241+ }
233242 if (module .system ) {
234243 buildSystem (b , lib );
235244 }
245+ if (module .python ) {
246+ buildPython (b , lib );
247+ }
236248 if (module .stacktrace ) {
237249 buildStacktrace (b , lib );
238250 }
@@ -274,7 +286,9 @@ const boostLibrariesModules = struct {
274286 iostreams : bool = false ,
275287 json : bool = false ,
276288 log : bool = false ,
289+ nowide : bool = false ,
277290 process : bool = false ,
291+ python : bool = false ,
278292 random : bool = false ,
279293 regex : bool = false ,
280294 stacktrace : bool = false ,
@@ -953,6 +967,77 @@ fn buildLog(b: *std.Build, obj: *std.Build.Step.Compile) void {
953967 });
954968}
955969
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+
9561041fn buildWave (b : * std.Build , obj : * std.Build.Step.Compile ) void {
9571042 const wavePath = b .dependency ("wave" , .{}).path ("src" );
9581043
0 commit comments