puntoexe / Imebra (http://imebra.com/)

Imebra is a multiplatform open source C++ Dicom library from Puntoexe.

Clone this repository (size: 1.0 MB): HTTPS / SSH
$ hg clone http://bitbucket.org/puntoexe/imebra/
commit 118: 242c465af449
parent 117: 9f58071eefe7
branch: default
Changed automatic build for linux
pa...@puntoexe.com
11 months ago

Changed (Δ1.4 KB):

raw changeset »

automatic_build.xml (131 lines added, 156 lines removed)

Up to file-list automatic_build.xml:

1
1
<?xml version="1.0" encoding="utf-8" ?> 
2
<project name="Imebra" default="build all" basedir=".">
3
4
	<!-- Before calling this project, set the following properties:
5
	
6
	userName: user name to be used to access to the SVN repository
7
	password: password to be used to access to the SVN repository
8
	dev_executable: name of the MSVC executable	
9
	build_with_version: define if the build has to increase the version number
10
	
11
	-->
2
<project name="Imebra" default="build_all" basedir=".">
12
3
13
4
	<!-- Build all -->
14
	<target name="build all" depends="ZIP_GPL" description="Tag the repository" >
15
		<antcall target="copy_svn" /> 
16
	</target>
17
	
18
	<target name="copy_svn" if="build_with_version">
19
		<exec dir="." executable="hg" failonerror="true">
20
			<arg value="update"/>
21
			<arg value="-C"/>
22
		</exec>
5
	<target name="build_all" depends="ZIP_GPL" >
23
6
		<exec dir="." executable="hg" failonerror="true">
24
7
			<arg value="tag" />
25
8
			<arg value="-m" />
26
9
			<arg value='"Tagging the repository for Imebra"' />
27
10
			<arg value="-u" />
28
			<arg value="${userName}" />
11
			<arg value="automatic_build" />
29
12
			<arg value="imebra_${fileVersion}" />
30
13
		</exec>
31
14
		<buildnumber file="build.number" /> 
34
17
			<arg value="-m"/>
35
18
			<arg value='"Increasing the build number"'/>
36
19
			<arg value="-u" />
37
			<arg value="${userName}" />
20
			<arg value="automatic_build" />
38
21
			<arg value="build.number"/>
39
22
		</exec>
40
		<exec dir="." executable="svn">
41
			<arg value="revert"/>
42
			<arg path="."/>
43
		</exec>
44
23
	</target>
45
24
46
25
	<!-- Make a zip file and a gzip file of the GPL build -->
47
	<target name="ZIP_GPL" depends="CHM, PDF, HTML, create_GPL" description ="Compress the build">
48
		<delete dir="${build_dir}/puntoexe_library/generated_doc" />
49
		<zip basedir="${build_dir}" destfile="${builds}/imebra_${fileVersion}.zip" />
26
	<target name="ZIP_GPL" depends="make_distribution" description ="Compress the build">
27
		<zip basedir="${build_dir}/distribution" destfile="${builds}/imebra_${fileVersion}.zip" />
50
28
	</target>
51
29
52
	<!-- Copy the GPL build -->
53
	<target name="create_GPL" depends="create_build_dir, run_test_cases, run_test_cases_posix" description="Copy the library in the GPL build">
54
		<mkdir dir="${build_dir}/documentation" />
55
		<mkdir dir="${build_dir}/puntoexe_library/base" />
56
		<mkdir dir="${build_dir}/puntoexe_library/imebra" />
57
		<mkdir dir="${build_dir}/puntoexe_library/docs" />
58
		<mkdir dir="${build_dir}/puntoexe_library/examples" />
59
		<copy file="project_files/DoxyFileCHM" tofile="${build_dir}/puntoexe_library/DoxyFileCHM" />
60
		<copy file="project_files/DoxyFileHTML" tofile="${build_dir}/puntoexe_library/DoxyFileHTML" />
61
		<copy file="project_files/DoxyFilePDF" tofile="${build_dir}/puntoexe_library/DoxyFilePDF" />
62
		<copy file="project_files/DoxyFilePDFH" tofile="${build_dir}/puntoexe_library/DoxyFilePDFH" />
63
		<copy todir="${build_dir}/puntoexe_library/base">
64
			<fileset dir="project_files/base" />
30
	<!-- Make the GPL build -->
31
	<target name="make_distribution" depends="run_test_cases, HTML, PDF, zip_dicomdirItems, zip_dicom2jpeg">
32
		<property name="distribution" value="${build_dir}/distribution" />
33
		<property name="librarySource" value="${distribution}/library" />
34
		<property name="documentation" value="${distribution}/documentation" />
35
36
		<copy todir="${librarySource}/base">
37
			<fileset dir="${build_dir}/base" />
65
38
		</copy>
66
		<copy todir="${build_dir}/puntoexe_library/imebra">
67
			<fileset dir="project_files/imebra" />
39
		<copy todir="${librarySource}/imebra">
40
			<fileset dir="${build_dir}/imebra" />
68
41
		</copy>
69
		<copy todir="${build_dir}/puntoexe_library/docs">
70
			<fileset dir="project_files/docs" />
42
		<copy file="${build_dir}/generated_doc/latex/refman.pdf" tofile="${documentation}/pdf/imebra.pdf" />
43
		<copy todir="${documentation}/html">
44
			<fileset dir="${build_dir}/generated_doc/html" />
71
45
		</copy>
72
		
73
		<delete dir="${build_dir}/puntoexe_library/examples/dicom2jpeg/Debug" failonerror="false" /> 
74
		<delete dir="${build_dir}/puntoexe_library/examples/dicom2jpeg/Release" failonerror="false" /> 
75
		<delete dir="${build_dir}/puntoexe_library/examples/dicomdirItems/Debug" failonerror="false" /> 
76
		<delete dir="${build_dir}/puntoexe_library/examples/dicomdirItems/Release" failonerror="false" /> 
77
		<copy todir="${build_dir}/puntoexe_library/examples">
78
			<fileset dir="project_files/examples" />
46
		<delete dir="${build_dir}/examples/dicom2jpeg/build" failonerror="true" /> 
47
		<delete dir="${build_dir}/examples/dicom2jpeg/dist" failonerror="true" /> 
48
		<delete dir="${build_dir}/examples/dicomdirItems/build" failonerror="true" /> 
49
		<delete dir="${build_dir}/examples/dicomdirItems/dist" failonerror="true" /> 
50
		<copy todir="${librarySource}/examples">
51
			<fileset dir="${build_dir}/examples" />
79
52
		</copy>
80
		<copy file="project_files/docs/gpl.txt" tofile="${build_dir}/license.txt" />
81
		<replace dir="${build_dir}/puntoexe_library" token="$fileHeader$">
53
		<copy file="${build_dir}/docs/gpl.txt" tofile="${distribution}/license.txt" />
54
	</target>
55
56
	<!-- Zip dicomdirItems -->
57
	<target name="zip_dicomdirItems" depends="build_dicomdirItems" >
58
		<zip basedir="${build_dir}/examples/dicomdirItems/dist/Release_32/GNU-Linux-x86" destfile="${builds}/dicomdirItems_32bit_${fileVersion}.zip" />
59
		<zip basedir="${build_dir}/examples/dicomdirItems/dist/Release_64/GNU-Linux-x86" destfile="${builds}/dicomdirItems_64bit_${fileVersion}.zip" />
60
	</target>
61
62
	<!-- Zip dicom2jpeg -->
63
	<target name="zip_dicom2jpeg" depends="build_dicom2jpeg" >
64
		<zip basedir="${build_dir}/examples/dicom2jpeg/dist/Release_32/GNU-Linux-x86" destfile="${builds}/dicom2jpeg_32bit_${fileVersion}.zip" />
65
		<zip basedir="${build_dir}/examples/dicom2jpeg/dist/Release_64/GNU-Linux-x86" destfile="${builds}/dicom2jpeg_64bit_${fileVersion}.zip" />
66
	</target>
67
68
	<!-- Build the HTML documentation -->
69
	<target name="HTML" depends="run_test_cases" description="Build the HTML documents">
70
		<exec dir="${build_dir}" executable="doxygen" failonerror="true">
71
			<arg value="DoxyfileHTML"/>
72
		</exec>
73
		<copy todir="${build_dir_html_doc}">
74
			<fileset dir="${build_dir}/generated_doc/html" />
75
		</copy>
76
	</target>
77
78
	<!-- Build the PDF documentation -->
79
	<target name="PDF" depends="run_test_cases" description="Build the PDF document">
80
		<exec dir="${build_dir}" executable="doxygen" failonerror="true">
81
			<arg value="DoxyfilePDF"/>
82
		</exec>
83
		<exec dir="${build_dir}/generated_doc/latex" executable="pdflatex">
84
			<arg value="refman.tex"/>
85
		</exec>
86
		<exec dir="${build_dir}/generated_doc/latex" executable="makeindex">
87
			<arg value="refman.idx"/>
88
		</exec>
89
		<exec dir="${build_dir}/generated_doc/latex" executable="pdflatex">
90
			<arg value="refman.tex"/>
91
		</exec>
92
		<exec dir="${build_dir}/generated_doc/latex" executable="pdflatex">
93
			<arg value="refman.tex"/>
94
		</exec>
95
		<exec dir="${build_dir}/generated_doc/latex" executable="pdflatex">
96
			<arg value="refman.tex"/>
97
		</exec>
98
		<copy file="${build_dir}/generated_doc/latex/refman.pdf" tofile="${build_dir}/documentation/imebra.pdf" />
99
	</target>
100
101
	<!-- Build dicomdirItems -->
102
	<target name="build_dicomdirItems" depends="run_test_cases" description="Build the dicomdirItems">
103
		<exec executable="make" failonerror="true" dir="${build_dir}/examples/dicomdirItems">
104
			<arg value="build"/>
105
			<arg value="CONF=Release_32"/>
106
		</exec>
107
		<exec executable="make" failonerror="true" dir="${build_dir}/examples/dicomdirItems">
108
			<arg value="build"/>
109
			<arg value="CONF=Release_64"/>
110
		</exec>
111
	</target>
112
113
	<!-- Build dicom2jpeg -->
114
	<target name="build_dicom2jpeg" depends="run_test_cases" description="Build the dicom2jpeg">
115
		<exec executable="make" failonerror="true" dir="${build_dir}/examples/dicom2jpeg">
116
			<arg value="build"/>
117
			<arg value="CONF=Release_32"/>
118
		</exec>
119
		<exec executable="make" failonerror="true" dir="${build_dir}/examples/dicom2jpeg">
120
			<arg value="build"/>
121
			<arg value="CONF=Release_64"/>
122
		</exec>
123
	</target>
124
125
	<!-- Run the test cases posix -->
126
	<target name="run_test_cases" depends="build_test_cases" description="Run the test cases">
127
		<exec executable="${build_dir}/tests/dist/Release/GNU-Linux-x86/tests" dir="${build_dir}/tests/dist/Release/GNU-Linux-x86" resolveexecutable="true" failonerror="true" />
128
	</target>
129
130
131
	<!-- Build the test cases posix -->
132
	<target name="build_test_cases" depends="replace_version" description="Build the Imebra test cases posix">
133
		<exec executable="make" failonerror="true" dir="${build_dir}/tests">
134
			<arg value="build"/>
135
			<arg value="CONF=Release"/>
136
		</exec>
137
	</target>
138
139
	<!-- Replace the version number and license info -->
140
	<target name="replace_version" depends="create_build_dir">
141
		<replace file="${build_dir}/DoxyfileCHM" token="1.0.0.1" value='"${fullVersionReadable}"'/>
142
		<replace file="${build_dir}/DoxyfileHTML" token="1.0.0.1" value='"${fullVersionReadable}"'/>
143
		<replace file="${build_dir}/DoxyfilePDF" token="1.0.0.1" value='"${fullVersionReadable}"'/>
144
		<replace file="${build_dir}/DoxyfilePDFH" token="1.0.0.1" value='"${fullVersionReadable}"'/>
145
		<replace dir="${build_dir}" includes="*.rc,*.h,*.cpp" token="1.0.0.1" value="${fullVersionReadable}" />
146
		<replace dir="${build_dir}" includes="*.rc,*.h,*.cpp" token=""1.0.0.1"" value=""${fullVersionReadable}"" />
147
		<replace dir="${build_dir}" includes="*.rc,*.h,*.cpp" token="L"1.0.0.1"" value="L"${fullVersionReadable}"" />
148
		<replace dir="${build_dir}" token="$fileHeader$">
82
149
			<replacevalue><![CDATA[
83
150
$imebraVersion$
84
151
85
152
Imebra: a C++ dicom library.
86
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008  by Paolo Brandoli
153
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009  by Paolo Brandoli
87
154
88
155
This program is free software; you can redistribute it and/or modify
89
156
 it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE Version 3 
@@ -118,113 +185,21 @@ The author can be contacted by email at
118
185
119
186
]]></replacevalue>
120
187
		</replace>
121
		<replace dir="${build_dir}/puntoexe_library" token="$imebraVersion$" value="${fullVersionReadable}" />
188
		<replace dir="${build_dir}" token="$imebraVersion$" value="Imebra v. ${fullVersionReadable}" />
122
189
	</target>
123
190
124
	<!-- Build the CHM documentation -->
125
	<target name="CHM" depends="documentation_version, create_build_dir" description="Build the CHM document">
126
		<exec dir="${build_dir}/puntoexe_library" executable="doxygen" failonerror="true">
127
			<arg value="doxyfileCHM"/>
128
		</exec>
129
		<exec dir="${build_dir}/puntoexe_library/generated_doc/chm" executable="${hhc_executable}">
130
			<arg file="${build_dir}/puntoexe_library/generated_doc/chm/index.hhp"/>
131
		</exec>
132
		<copy file="${build_dir}/puntoexe_library/generated_doc/chm/index.chm" tofile="${build_dir}/documentation/imebra.chm" />
133
	</target>
134
135
	<!-- Build the HTML documentation -->
136
	<target name="HTML" depends="documentation_version, create_build_dir" description="Build the HTML documents">
137
		<exec dir="${build_dir}/puntoexe_library" executable="doxygen" failonerror="true">
138
			<arg value="doxyfileHTML"/>
139
		</exec>
140
		<copy todir="${build_dir_html_doc}">
141
			<fileset dir="${build_dir}/puntoexe_library/generated_doc/html" />
142
		</copy>
143
	</target>
144
145
	<!-- Build the PDF documentation -->
146
	<target name="PDF" depends="documentation_version, create_build_dir" description="Build the PDF document">
147
		<exec dir="${build_dir}/puntoexe_library" executable="doxygen" failonerror="true">
148
			<arg value="doxyfilePDF"/>
149
		</exec>
150
		<exec dir="${build_dir}/puntoexe_library/generated_doc/latex" executable="pdflatex">
151
			<arg value="refman.tex"/>
152
		</exec>
153
		<exec dir="${build_dir}/puntoexe_library/generated_doc/latex" executable="makeindex">
154
			<arg value="refman.idx"/>
155
		</exec>
156
		<exec dir="${build_dir}/puntoexe_library/generated_doc/latex" executable="pdflatex">
157
			<arg value="refman.tex"/>
158
		</exec>
159
		<exec dir="${build_dir}/puntoexe_library/generated_doc/latex" executable="pdflatex">
160
			<arg value="refman.tex"/>
161
		</exec>
162
		<exec dir="${build_dir}/puntoexe_library/generated_doc/latex" executable="pdflatex">
163
			<arg value="refman.tex"/>
164
		</exec>
165
		<copy file="${build_dir}/puntoexe_library/generated_doc/latex/refman.pdf" tofile="${build_dir}/documentation/imebra.pdf" />
166
	</target>
167
168
	<!-- Build the documentation -->
169
	<target name="documentation_version" depends="version, create_GPL" description="Replace the documentation version">
170
		<replace file="${build_dir}/puntoexe_library/doxyfileCHM" token="1.0.0.1" value='"${fullVersionReadable}"'/>
171
		<replace file="${build_dir}/puntoexe_library/doxyfileHTML" token="1.0.0.1" value='"${fullVersionReadable}"'/>
172
		<replace file="${build_dir}/puntoexe_library/doxyfilePDF" token="1.0.0.1" value='"${fullVersionReadable}"'/>
173
		<replace file="${build_dir}/puntoexe_library/doxyfilePDFH" token="1.0.0.1" value='"${fullVersionReadable}"'/>
174
		<replace dir="${build_dir}/puntoexe_library" includes="*.rc,*.h,*.cpp" token="1.0.0.1" value="${fullVersionReadable}" />
175
		<replace dir="${build_dir}/puntoexe_library" includes="*.rc,*.h,*.cpp" token=""1.0.0.1"" value=""${fullVersionReadable}"" />
176
		<replace dir="${build_dir}/puntoexe_library" includes="*.rc,*.h,*.cpp" token="L"1.0.0.1"" value="L"${fullVersionReadable}"" />
177
	</target>
178
179
	<!-- Run the test cases -->
180
	<target name="run_test_cases" depends="Build test cases" description="Run the test cases">
181
		<exec executable="project_files/tests/CImbx_tests/debug/CImbx_tests.exe" resolveexecutable="true" failonerror="true" />
182
	</target>
183
184
	<!-- Run the test cases posix -->
185
	<target name="run_test_cases_posix" depends="Build test cases posix" description="Run the test cases">
186
		<exec executable="project_files/tests/CImbx_tests/debug_iconv/CImbx_tests.exe" resolveexecutable="true" failonerror="true" />
187
	</target>
188
189
190
	<!-- Build the test cases -->
191
	<target name="Build test cases" depends="create_build_dir" description="Build the Imebra test cases">
192
		<exec executable="${dev_executable}" failonerror="true">
193
			<arg value="/out"/>
194
			<arg file="./builds/testCasesBuildLog.txt"/>
195
			<arg value="/rebuild"/>
196
			<arg value="debug"/>
197
			<arg value="/project"/>
198
			<arg file="./project_files/tests/CImbx_tests/CImbx_tests.vcproj"/>
199
			<arg file="./project_files/puntoexe_library.sln"/>
200
		</exec>
201
	</target>
202
203
	<!-- Build the test cases posix -->
204
	<target name="Build test cases posix" depends="create_build_dir" description="Build the Imebra test cases posix">
205
		<exec executable="${dev_executable}" failonerror="true">
206
			<arg value="/out"/>
207
			<arg file="builds/testCasesPosixBuildLog.txt"/>
208
			<arg value="/rebuild"/>
209
			<arg value="debug_posix"/>
210
			<arg value="/project"/>
211
			<arg file="./project_files/tests/CImbx_tests/CImbx_tests.vcproj"/>
212
			<arg file="./project_files/puntoexe_library.sln"/>
213
		</exec>
214
	</target>
215
216
217
191
	<!-- Create the directory for the final build -->
218
192
	<target name="create_build_dir" depends="version" description="Create the directory for the final build">
219
		<property name="builds" value="builds" />
220
		<property name="build_dir" value="${builds}/imebra_${fileVersion}" />
193
		<property name="builds" value="../builds/imebra_${fileVersion}" />
194
		<delete dir="${builds}" failonerror="false" /> 
195
		<mkdir dir="${builds}" />
196
		<property name="build_dir" value="${builds}/temp_build" />
197
		<mkdir dir="${build_dir}" />
221
198
		<property name="build_dir_html_doc" value="${builds}/imebra_${fileVersion}_html_doc" />
222
		<mkdir dir="${builds}" />
223
		<delete dir="${build_dir}" failonerror="false" /> 
224
		<mkdir dir="${build_dir}" />
225
		<delete dir="${build_dir_html_doc}" failonerror="false" /> 
226
199
		<mkdir dir="${build_dir_html_doc}" />
227
		<delete file="${builds}/imebra_${fileVersion}.zip" failonerror="false" /> 
200
		<copy todir="${build_dir}">
201
			 <fileset dir="project_files"/>
202
		</copy>
228
203
	</target>
229
204
230
205
	<!-- Initialize the version number -->