You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by tr...@apache.org on 2008/11/12 20:50:11 UTC
svn commit: r713476 - in /incubator/qpid/trunk/qpid/cpp/managementgen:
qmf-gen qmf/generate.py qmf/templates/Makefile.mk
Author: tross
Date: Wed Nov 12 11:50:11 2008
New Revision: 713476
URL: http://svn.apache.org/viewvc?rev=713476&view=rev
Log:
Generalized the creation of makefile fragments in qmf code generation.
Modified:
incubator/qpid/trunk/qpid/cpp/managementgen/qmf-gen
incubator/qpid/trunk/qpid/cpp/managementgen/qmf/generate.py
incubator/qpid/trunk/qpid/cpp/managementgen/qmf/templates/Makefile.mk
Modified: incubator/qpid/trunk/qpid/cpp/managementgen/qmf-gen
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/managementgen/qmf-gen?rev=713476&r1=713475&r2=713476&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/managementgen/qmf-gen (original)
+++ incubator/qpid/trunk/qpid/cpp/managementgen/qmf-gen Wed Nov 12 11:50:11 2008
@@ -30,29 +30,33 @@
# Set command line options
usage = "usage: %prog [options] schema-document..."
-parser = OptionParser (usage=usage)
-parser.add_option ("-m", "--makefile", dest="makefile", metavar="FILE",
- help="Makefile fragment")
-parser.add_option ("-t", "--typefile", dest="typefile", metavar="FILE", default=defaultTypeFile,
- help="Type descriptor file")
-parser.add_option ("-d", "--templatedir", dest="templatedir", metavar="DIR", default=defaultTemplateDir,
- help="Template directory")
-parser.add_option ("-o", "--outputdir", dest="outputdir", metavar="DIR", default="./",
- help="Output directory")
+parser = OptionParser(usage=usage)
+parser.add_option("-o", "--outputdir", dest="outputdir", metavar="DIR", default="./",
+ help="Output directory")
+parser.add_option("-m", "--makefile", dest="makefile", metavar="FILE",
+ help="Makefile fragment")
+parser.add_option("-t", "--typefile", dest="typefile", metavar="FILE", default=defaultTypeFile,
+ help="Override type descriptor file")
+parser.add_option("-d", "--templatedir", dest="templatedir", metavar="DIR", default=defaultTemplateDir,
+ help="Override template directory")
+parser.add_option("-p", "--gen-prefix", dest="genprefix", default="",
+ help="Prefix for generated files in make dependencies")
+parser.add_option("-q", "--qpid-broker", dest="qpidbroker", default=False, action="store_true",
+ help="Generate makefile for Qpid broker")
-(opts, args) = parser.parse_args ()
+(opts, args) = parser.parse_args()
typefile = opts.typefile
templatedir = opts.templatedir
outdir = opts.outputdir
-gen = Generator (outdir, templatedir)
+gen = Generator(outdir, templatedir)
if len(args) == 0:
print "no input files"
parser.exit()
for schemafile in args:
- package = SchemaPackage (typefile, schemafile, opts)
+ package = SchemaPackage(typefile, schemafile, opts)
gen.setPackage (package.packageName)
gen.makeClassFiles ("Class.h", package)
@@ -64,4 +68,7 @@
gen.makePackageFile ("Package.cpp", package)
if opts.makefile != None:
- gen.makeSingleFile ("Makefile.mk", opts.makefile, force=True)
+ args = {}
+ args["qpidbroker"] = opts.qpidbroker
+ args["genprefix"] = opts.genprefix
+ gen.makeSingleFile("Makefile.mk", opts.makefile, force=True, vars=args)
Modified: incubator/qpid/trunk/qpid/cpp/managementgen/qmf/generate.py
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/managementgen/qmf/generate.py?rev=713476&r1=713475&r2=713476&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/managementgen/qmf/generate.py (original)
+++ incubator/qpid/trunk/qpid/cpp/managementgen/qmf/generate.py Wed Nov 12 11:50:11 2008
@@ -140,6 +140,21 @@
stream.write (" \\\n ")
stream.write (file)
+ def genGeneratedFiles(self, stream, variables):
+ first = True
+ extensions = ("h", "cpp")
+ for ext in extensions:
+ for file in self.filelists[ext]:
+ if first:
+ first = False
+ else:
+ stream.write(" \\\n ")
+ if "genprefix" in variables:
+ prefix = variables["genprefix"]
+ if prefix != "":
+ stream.write(prefix + "/")
+ stream.write(file)
+
def genHeaderInstalls (self, stream, variables):
for package in self.packagelist:
name = "_".join(package.split("/"))
@@ -155,6 +170,11 @@
stream.write(file)
stream.write("\n\n")
+ def testQpidBroker(self, variables):
+ if "qpidbroker" in variables:
+ return variables["qpidbroker"]
+ return False
+
class Generator:
"""
@@ -332,10 +352,13 @@
stream = template.expand (schema)
self.writeIfChanged (stream, target, force)
- def makeSingleFile (self, templateFile, target, force=False):
+ def makeSingleFile (self, templateFile, target, force=False, vars=None):
""" Generate a single expanded template """
makefile = Makefile (self.filelists, self.templateFiles, self.packagelist)
template = Template (self.input + templateFile, self)
+ if vars:
+ for arg in vars:
+ self.setVariable(arg, vars[arg])
self.templateFiles.append (templateFile)
stream = template.expand (makefile)
self.writeIfChanged (stream, target, force)
Modified: incubator/qpid/trunk/qpid/cpp/managementgen/qmf/templates/Makefile.mk
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/managementgen/qmf/templates/Makefile.mk?rev=713476&r1=713475&r2=713476&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/managementgen/qmf/templates/Makefile.mk (original)
+++ incubator/qpid/trunk/qpid/cpp/managementgen/qmf/templates/Makefile.mk Wed Nov 12 11:50:11 2008
@@ -17,9 +17,10 @@
# under the License.
#
/*MGEN:commentPrefix=#*/
+/*MGEN:Root.Disclaimer*/
+/*MGEN:IF(Makefile.QpidBroker)*/
/*MGEN:mgenDir=$(mgen_dir)*/
/*MGEN:specDir=$(top_srcdir)/../specs*/
-/*MGEN:Root.Disclaimer*/
mgen_generator=/*MGEN:Makefile.GenSources*/
@@ -33,3 +34,7 @@
$(mgen_generator):
endif
+/*MGEN:ENDIF*/
+
+qmfgen_sources=/*MGEN:Makefile.GeneratedFiles*/
+