summaryrefslogtreecommitdiff
path: root/qpid/cpp/rubygen/generate
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp/rubygen/generate')
-rwxr-xr-xqpid/cpp/rubygen/generate104
1 files changed, 0 insertions, 104 deletions
diff --git a/qpid/cpp/rubygen/generate b/qpid/cpp/rubygen/generate
deleted file mode 100755
index d094be4f41..0000000000
--- a/qpid/cpp/rubygen/generate
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/usr/bin/env ruby
-require 'amqpgen'
-require 'pathname'
-
-#
-# Run a set of code generation templates.
-#
-if ARGV.size < 3
- puts <<EOS
-Usage: #{ARGV[0]} OUTDIR SPEC.xml [ ... ] TEMPLATE.rb [ ... ]
-or: #{ARGV[0]} OUTDIR SPEC.xml [ ... ] all [ makefragment.mk ]
-
-Parse all SPEC.xml files to create an AMQP model, run each TEMPLATE
-putting the resulting files under OUTDIR. Prints a list of files
-generated to standard output.
-
-If OUTDIR is '-' then just prints file list without generating files.
-EOS
- exit 1
-end
-
-# Create array of specs by version
-def parse_specs(specs)
- roots={ }
- specs.each { |spec|
- root=AmqpRoot.new(spec)
- ver=root.version
- if (roots[ver])
- roots[ver].merge(root)
- else
- roots[ver]=root
- end
- }
- roots
-end
-
-# Run selected templates
-if ARGV.any? { |arg| arg=="all" }
- templates=Dir["#{File.dirname __FILE__}/*/*.rb"]
-else
- templates=ARGV.grep(/\.rb$/)
-end
-
-$outdir=ARGV[0]
-$models=parse_specs(ARGV.grep(/\.xml$/))
-templates.each { |t|
- ver=Pathname.new(t).dirname.basename.to_s
- $amqp=$models[ver]
- if $amqp
- load t
- else
- puts "Warning: skipping #{t}, no spec file for version #{ver}."
- end
-}
-
-def make_continue(lines) lines.join(" \\\n "); end
-
-# Generate makefile
-makefile=ARGV.grep(/.mk$/)[0]
-if makefile
- dir=Dir.getwd
- Dir.chdir File.dirname(__FILE__)
- generator_files=Dir["**/*.rb"] << File.basename(__FILE__)
- Dir.chdir dir
- rgen_generator=generator_files.map{ |f| "$(rgen_dir)/#{f}" }
- rgen_srcs=GenFiles.get.map{ |f| "#{$outdir}/#{f}" }
-
- File.open(makefile, 'w') { |out|
- out << <<EOS
-# Generated makefile fragment.
-# Including makefile defines $(rgen_dir) $(rgen_cmd) and $(specs).
-
-rgen_generator=#{make_continue rgen_generator}
-
-rgen_client_cpp=#{make_continue(rgen_srcs.grep(%r|/qpid/client/.+\.cpp$|))}
-
-rgen_common_cpp=#{make_continue(rgen_srcs.grep(%r{qpid/(framing|amqp_.+)/.+\.cpp$}))}
-
-rgen_srcs=#{make_continue rgen_srcs}
-
-# Header file install rules.
-EOS
- ["amqp_0_10", "framing", "client/no_keyword","client", "broker"].each { |ns|
- dir="qpid/#{ns}"
- dir_ = dir.tr("/", "_")
- regex=%r|#{dir}/[^/]+\.h$|
- out << <<EOS
-#{dir_}dir = $(includedir)/#{dir}
-dist_#{dir_}_HEADERS = #{make_continue rgen_srcs.grep(regex)}
-
-EOS
- }
- out << <<EOS
-if GENERATE
-$(srcdir)/#{File.basename makefile}: $(rgen_generator) $(specs)
- $(rgen_cmd)
-
-# Empty rule in case a generator file is renamed/removed.
-$(rgen_generator):
-endif
-EOS
- }
-end
-