-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.xml
158 lines (131 loc) · 5.87 KB
/
build.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<?xml version="1.0" encoding="UTF-8"?>
<?xml-model xlink:href="/usr/share/php5/PEAR/data/phing/etc/phing-grammar.rng"
type="application/xml"
schematypens="http://relaxng.org/ns/structure/1.0" ?>
<!--suppress ALL -->
<project name="${Project}" basedir="." default="build">
<property file="./${propertiesFile}.properties"/>
<property name="package" value="${phing.project.name}"/>
<property name="buildDir" value="./build/files"/>
<property name="srcDir" value="${project.basedir}"/>
<property name="vendorDir" value="${project.basedir}/vendor"/>
<property name="propertiesFilePath" value="${project.basedir}"/>
<fileset dir="${srcDir}" id="srcFileset">
<include name="**"/>
<exclude name=".idea/"/>
<exclude name="vendor/"/>
<exclude name="build/"/>
</fileset>
<!-- Vendor files we want to include in the build -->
<fileset dir="${vendorDir}" id="vendorFileset">
<include name="autoload.php"/>
<include name="composer/**"/>
<!-- Add additional vendor files/directories here -->
</fileset>
<fileset dir="${propertiesFilePath}" id="propertiesFiles">
<include name="*.properties"/>
</fileset>
<!-- ============================================ -->
<!-- Target: reset -->
<!-- ============================================ -->
<target name="reset">
<echo msg="Resetting build directory"/>
<delete dir="${buildDir}"/>
</target>
<!-- ============================================ -->
<!-- Target: prepare -->
<!-- ============================================ -->
<target name="prepare">
<echo msg="Making directory ${buildDir}"/>
<mkdir dir="${buildDir}"/>
</target>
<!-- ============================================ -->
<!-- Target: build -->
<!-- ============================================ -->
<target name="build" depends="prepare">
<warn msg="*** Composer not automatically run, so autoloader may need updating. ***"/>
<!--<composer command="install">-->
<!--<arg value="- -dev"/>-->
<!--</composer>-->
<echo msg="Copying files to build directory..."/>
<echo msg="Copying source files to build files directory..."/>
<copy todir="${buildDir}">
<fileset refid="srcFileset"/>
<filterchain>
<replacetokens begintoken="##" endtoken="##">
<token key="VERSION" value="${plugin.version}"/>
<token key="PLUGIN_NAME" value="${plugin.name}"/>
<token key="PLUGIN_URI" value="${plugin.uri}"/>
<token key="PLUGIN_AUTHOR" value="${plugin.author.name}"/>
<token key="PLUGIN_AUTHOR_COMPANY" value="${plugin.author.company}"/>
<token key="AUTHOR_URI" value="${plugin.author.uri}"/>
<token key="TEXT_DOMAIN" value="${plugin.text_domain}"/>
</replacetokens>
</filterchain>
</copy>
<echo msg="Copying vendor files to build files directory..."/>
<copy todir="${buildDir}/vendor">
<fileset refid="vendorFileset"/>
</copy>
<!-- Update the paths in the composer class map autoloader -->
<reflexive>
<fileset dir="${buildDir}/vendor/composer">
<include name="autoload_classmap.php"/>
</fileset>
<filterchain>
<replaceregexp>
<regexp pattern="\$baseDir\s\.\s\'/src/" replace="$baseDir . '/"/>
<regexp pattern="\$baseDir = dirname\(dirname\(\$vendorDir\)\);"
replace="$baseDir = dirname($vendorDir);"/>
</replaceregexp>
</filterchain>
</reflexive>
</target>
<!-- ============================================ -->
<!-- Target: rebuild -->
<!-- ============================================ -->
<target name="rebuild">
<phingcall target="reset"/>
<phingcall target="build"/>
</target>
<!-- ============================================ -->
<!-- Target: release -->
<!-- ============================================ -->
<target name="release">
<echo msg="Preparing release..."/>
<!-- Get new version number -->
<input message="Version number (don't include 'v' at the beginning)" propertyName="plugin.version"/>
<echo msg="Releasing version ${plugin.version} of plugin"/>
<echo msg="Updating properties files..."/>
<reflexive>
<fileset refid="propertiesFiles"/>
<filterchain>
<replaceregexp>
<regexp pattern="\nplugin.version=(.*)\n"
replace="${line.separator}plugin.version=${plugin.version}${line.separator}"/>
</replaceregexp>
</filterchain>
</reflexive>
<phingcall target="since"/>
</target>
<!-- ============================================ -->
<!-- Target: since -->
<!-- ============================================ -->
<target name="since">
<echo msg="Updating @since tags in source..."/>
<reflexive>
<fileset refid="srcFileset"/>
<filterchain>
<replacetokens begintoken="##" endtoken="##">
<token key="SINCE" value="${plugin.version}"/>
</replacetokens>
</filterchain>
</reflexive>
</target>
<!-- ======================== -->
<!-- Helper targets -->
<!-- ======================== -->
<target name="echoFilesetFile">
<echo>file: rel:${filename}|abs:${absfilename}</echo>
</target>
</project>