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*/
+