module Buildr::Protobuf
Provides Protocol buffer code generation tasks.
Require explicitly using require "buildr/protobuf"
.
Usage in your project:
protoc _("path/to/proto/files")
and also supports three options,
:include => ["path/to/proto", "src/main/resources/proto" # the directories in which to search for imports :output => "target/generated/protoc" # this is the default :lang => "java" # defaults to compile.language
Public Class Methods
files_from_sources(*args)
click to toggle source
# File addon/buildr/protobuf.rb, line 59 def files_from_sources(*args) args.flatten.map(&:to_s).collect { |f| File.directory?(f) ? FileList[f + "/**/*.proto"] : f }.flatten end
protoc(*args)
click to toggle source
# File addon/buildr/protobuf.rb, line 34 def protoc(*args) options = Hash === args.last ? args.pop : {} rake_check_options options, :output, :lang, :include options[:lang] ||= :java options[:output] ||= File.expand_path "target/generated/protoc" options[:include] ||= [] command_line = [] command_line << "--#{options[:lang]}_out=#{options[:output]}" if options[:output] options[:include].each { |i| command_line << "-I#{i}" } command_line += files_from_sources(*args) mkdir_p( options[:output] ) system protoc_path, *command_line end
protoc_path()
click to toggle source
# File addon/buildr/protobuf.rb, line 55 def protoc_path ENV['PROTOC'] || "protoc" end
Public Instance Methods
protoc(*args)
click to toggle source
# File addon/buildr/protobuf.rb, line 64 def protoc(*args) if Hash === args.last options = args.pop else options = {} end options[:output] ||= path_to(:target, :generated, :protoc) options[:lang] ||= compile.language if compile.language file(options[:output]=>Protobuf.files_from_sources(*args)) do |task| Protobuf.protoc task.prerequisites, options end end