root/jmatter-complet/trunk/build.gant

Revision 1225, 4.2 kB (checked in by eitan, 4 years ago)

revised build.gant files to use 'target' keyword in favor of now-deprecated 'task' keyword (ignore)

  • Property svn:executable set to *
Line 
1 projectName = "jmatterDistributor"
2
3 target ('default' : 'default target (makeDistroAndChecksums)' ) { makeDistroAndChecksums() }
4
5 // This build file produces official JMatter distributions
6
7 buildDir = 'build'
8 distDir = 'dist'
9 buildTargetDir = "${buildDir}/jmatter"
10
11 baseDir = Ant.project.properties.basedir;
12
13 jmatterDir = baseDir + '/jmatter'
14 demoDir = baseDir + '/demo-apps'
15 modulesDir = baseDir + '/modules'
16
17 target ( init : '')
18 {
19   Ant.tsamp()
20   Ant.mkdir (dir : buildTargetDir )
21   Ant.mkdir (dir : distDir )
22 }
23
24 target ( clean : '')
25 {
26   Ant.delete ( dir : buildDir )
27 }
28
29 target ( makeDistro : 'Produce JMatter Distribution' )
30 {
31   depends ( clean, init, includeDemoapps, includeModules, makeJmatterJar, makedocPdf )
32   Ant.copy ( todir : buildTargetDir )
33   {
34     fileset ( dir : jmatterDir , includes: 'doc/Changes*,doc/Credits,doc/guide.pdf,doc/jMatter-license' )
35     fileset ( dir : jmatterDir , includes: 'build.xml, build.gant')
36     fileset ( dir : jmatterDir , includes: 'src/**/*' )
37     fileset ( dir : jmatterDir , includes: 'test/**/*')
38     fileset ( dir : jmatterDir , includes: 'lib/**/*.jar' )
39     fileset ( dir : jmatterDir , includes: 'resources/**/*')
40     fileset ( dir : jmatterDir , includes: 'tools/**/*' )
41     fileset ( dir : jmatterDir , includes: 'dist/**/*')
42   }
43   Ant.exec ( dir : "${jmatterDir}/doc" , executable : 'markdown',
44      output : "${buildTargetDir}/doc/jMatter-License.html" )
45   {
46     arg ( line : 'jMatter-License' )
47   }
48   Ant.copy ( todir: buildDir )
49   {
50     fileset ( dir : baseDir, includes: 'Release_notes' )
51   }
52   Ant.exec ( dir : baseDir, executable: 'markdown',
53      output : "${buildDir}/Release_notes.html" )
54    {
55      arg ( line : 'Release_notes' )
56    }
57    
58    def dstamp = Ant.project.properties.DSTAMP
59    def dirname = "jmatter-${dstamp}"
60    Ant.mkdir (dir : "${buildDir}/${dirname}" )
61    Ant.move (todir : "${buildDir}/${dirname}" )
62    {
63      fileset ( dir : buildDir, excludes : dirname )
64    }
65    Ant.zip ( basedir : buildDir, destfile : "${distDir}/${dirname}.zip" )
66    Ant.tar ( basedir : buildDir, destfile : "${distDir}/${dirname}.tgz", compression: "gzip" )
67 }
68
69 target ( makeJmatterJar : '')
70 {
71    // ensure to produce and include a binary in the distribution
72    Ant.ant(antfile : "${jmatterDir}/build.xml" , inheritAll : false, target : 'cleanjar' )
73    // then get rid of artifacts
74    Ant.ant(antfile : "${jmatterDir}/build.xml", inheritAll : false, target : 'clean ' )
75 }
76
77 target ( makedocPdf : 'produce pdf documentation (if necessary)' )
78 {
79   File srcFile = new File("${jmatterDir}/doc/guide.lyx")
80   File pdf = new File("${jmatterDir}/doc/guide.pdf")
81   if (pdf.exists() && srcFile.lastModified() < pdf.lastModified())
82   {
83     println ("guide.pdf is up to date")
84     return
85   }
86   Ant.exec (dir : "${jmatterDir}/doc" , executable : 'lyx' )
87   {
88     arg ( line : '--export pdf2 guide.lyx' ) // pdf2 is lyx to pdflatex option
89   } 
90 }
91
92 // ---------------------------------------
93
94 target ( includeDemoapps : '')
95 {
96   depends ( cleanDemoapps )
97   Ant.copy ( todir : buildDir )
98   {
99     fileset ( dir : baseDir, includes: 'demo-apps/**/*' )
100   }
101 }   
102
103 def demoapps = ['ContactMgr', 'IssueMgr', 'Sympster', 'MovieLib', 'MyTunes', 'CustomUI'];
104
105 target ( cleanDemoapps : '')
106 {
107   demoapps.each { demoapp ->
108     Ant.ant(antfile : "${demoDir}/${demoapp}/build.xml", inheritAll : false, target : 'clean' )
109   }
110 }
111    
112 // -------------------------------
113
114 target ( includeModules : '' )
115 {
116   depends ( cleanModules )
117   Ant.copy ( todir : buildDir )
118   {
119     fileset (dir : baseDir, includes: 'modules/**/*' )
120   }
121 }
122
123 def modules = ['ds-swing', 'ds-wizard', 'echo2vm', 'jmatter-tools', 'swingvm', 'wingsvm']
124
125 target ( cleanModules : '')
126 {
127   modules.each { module ->
128     Ant.ant (antfile : "modules/${module}/build.xml" , inheritAll : false, target : 'clean' )
129   }
130
131
132 // --------------------------------
133
134 target ( checksumDistributions : 'generate checksum files for distributions')
135 {
136   depends ( makeDistro )
137   checksum('MD5')
138   checksum('SHA-1')
139 }
140
141 target ( checksum : '') { algo ->
142   Ant.checksum(algorighm : algo)
143   {
144     fileset ( dir: distDir, includes: '*.tgz, *.zip' )
145   }
146 }
147
148 target ( makeDistroAndChecksums : 'construct jmatter distributions and corresponding checksums' )
149 {
150   depends ( checksumDistributions )
151 }
152  
153
Note: See TracBrowser for help on using the browser.