@@ -21,63 +21,45 @@ pbpath =dirname(dirname(PosixPath(pathof(ProtoBuf))))/p"gen"
2121cur_path = cwd ()
2222TBL_root = dirname (cur_path)
2323
24- src_dir = cur_path/ " proto"
25- out_dir = cur_path/ " protojl"
24+ # src_dir = cur_path/"proto"
25+ src_dir = PosixPath (" ." )/ " proto"
26+ out_dir = cur_path/ " protojl"
2627
2728# # Clean the output directory
2829rm (out_dir, force= true , recursive= true )
2930
3031# # First module
3132function process_module (cur_module:: AbstractString ; base_module:: AbstractString = cur_module, input_path= cur_module)
32- # Include search paths
33- includes = [src_dir, src_dir/ base_module]
3433
3534 # Output folder
36- module_out_dir = out_dir/ cur_module
35+ module_out_dir = out_dir/ cur_module
3736
3837 # Input files
39- infiles = glob (" *.proto" , src_dir/ input_path)
38+ infiles = split .( string .( glob (" *.proto" , src_dir/ input_path)), ' / ' ) .| > (a -> a[ 3 : end ]) .| > a -> joinpath (a ... )
4039
4140 mkpath (module_out_dir)
42- includes_str= [" --proto_path=$path " for path= includes]
43- run (ProtoBuf. protoc (` $includes_str --julia_out=$module_out_dir $infiles ` ))
44-
45- nothing
41+ relative_paths = string .(infiles)
42+ search_directories = joinpath (@__DIR__ , " proto" )
43+ output_directory = string (module_out_dir)
44+ # println("relative_paths=$relative_paths")
45+ # println("search_directories=$search_directories")
46+ # println("output_directory=$output_directory")
47+ ProtoBuf. protojl (relative_paths ,search_directories ,output_directory)
48+ files_to_include = [string (module_out_dir/ basename (file)) for file in infiles]
49+ return files_to_include
4650end
4751
4852# process_module("tensorflow", input_path="tensorflow/core/protobuf")
4953
50- process_module (" tensorboard" , input_path= " tensorboard/compat/proto" )
54+ files_to_include = process_module (" tensorboard" , input_path= " tensorboard/compat/proto" )
5155
5256# plugins = ["audio", "custom_scalar", "hparams", "histogram", "image", "scalar", "text"]
5357plugins = [" custom_scalar" , " hparams" , " text" ]
54- for plugin in plugins
55- process_module (" tensorboard/plugins/$plugin " , base_module= " tensorboard" )
56- end
5758
59+ append! (files_to_include, (process_module (" tensorboard/plugins/$plugin " , base_module= " tensorboard" ) for plugin in plugins). .. )
5860
59- # # this fails but would be better
60- # cur_module = "tensorboard"
61- # base_module = cur_module
62- #
63- # # Include search paths
64- # includes = [src_dir, src_dir/base_module]
65- #
66- # # Output folder
67- # module_out_dir = out_dir/("$cur_module"*"2")
68- #
69- # # Input files
70- # infiles = glob("*.proto", src_dir/cur_module/"compat/proto")
71- #
72- # for plugin in plugins
73- # plugin_proto_files = glob("*.proto", src_dir/cur_module/"plugins/$plugin")
74- # append!(infiles, plugin_proto_files)
75- # end
76- #
77- # mkpath(module_out_dir)
78- # includes_str=["--proto_path=$path" for path=includes]
79- # run(ProtoBuf.protoc(`$includes_str --julia_out=$module_out_dir $infiles`))
80-
61+ # files_to_include contains all the proto files, can be used for printing and inspection
62+ println (" generated code for \n $files_to_include " )
8163
8264# Finally move the output directory to the src folder
8365mv (out_dir, TBL_root/ " src" / " protojl" )
0 commit comments