~nunit-core/nunitv2/2.5

« back to all changes in this revision

Viewing changes to src/nunit.build

  • Committer: charliepoole
  • Date: 2008-02-23 03:26:05 UTC
  • Revision ID: vcs-imports@canonical.com-20080223032605-y413yp2ckipdsd1s
Move non-source files like scripts to the root directory

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?xml version="1.0"?>
2
 
<project name="NUnit" default="help" basedir=".">
3
 
 
4
 
<!-- ***************************************************************** -->
5
 
<!-- This script has been tested using NAnt 0.85. At least             -->
6
 
<!-- one of the supported runtimes and sdk must be installed. In       -->
7
 
<!-- order to build the msi, WiX 2.0 and the WiX tasks for NAnt        -->
8
 
<!-- are required. To run the test coverage target, NCover is          -->
9
 
<!-- required.                                                         -->
10
 
<!--                                                                   -->
11
 
<!-- Limitations:                                                      -->
12
 
<!-- 1. Currently, the .NET 1.0 builds of the GUI runner cannot be     -->
13
 
<!--    run successfully. The .NET 1.1 builds may be run under         -->
14
 
<!--    .NET 1.0, however.                                             -->
15
 
<!--                                                                   -->
16
 
<!-- 2. Running the GUI under Mono is still experimental. We have      -->
17
 
<!--    tested under Mono 1.2.2 and seen some stability issues.        -->
18
 
<!--    Later releases of Mono may resolve these problems.             -->
19
 
<!-- ***************************************************************** -->
20
 
 
21
 
<!-- ***************************************************************** -->
22
 
<!-- ***                 Default Help Target                       *** -->
23
 
<!-- ***************************************************************** -->
24
 
 
25
 
<target name="help" description="Displays additional help information">
26
 
  <echo>
27
 
    This build file will build NUnitLite for any of the supported
28
 
    runtime frameworks which are actually installed. To add or
29
 
    support for a framework, edit this script
30
 
 
31
 
    Running on the current system, the following runtime frameworks
32
 
    are available for building and testing NUnit:
33
 
  </echo>
34
 
 
35
 
  <foreach item="String" delim="," 
36
 
      property="framework" in="${installed.frameworks}">
37
 
    <echo message="        ${string::pad-right(framework,15,' ')}${framework::get-description(framework)}"/>
38
 
  </foreach>
39
 
 
40
 
  <echo>
41
 
    The default build target is the ${default.runtime} debug config.
42
 
    Generic runtime targets use the following defaults:
43
 
        net           ${default.net.runtime}
44
 
        mono          ${default.mono.runtime}
45
 
 
46
 
    Note that targets that set the build configuration or runtime
47
 
    to be used must come before action targets. For example:
48
 
 
49
 
        nant net-1.1 release build
50
 
        nant build-all
51
 
        nant debug clean build
52
 
 
53
 
    Use   nant -projecthelp to see a full list of targets.
54
 
  </echo>
55
 
</target>
56
 
 
57
 
<!-- ***************************************************************** -->
58
 
<!-- ********* Common properties that control the build ************** -->
59
 
<!-- ***************************************************************** -->
60
 
 
61
 
  <!-- Project name - used as a prefix for packages -->
62
 
  <property name="project.name" value="NUnit"/>
63
 
 
64
 
  <!-- NUnit version for packaging -->
65
 
  <property name="package.version" value="2.5"/>
66
 
 
67
 
  <!-- Root of the package file name. Add -beta or other
68
 
       suffix as necessary -->
69
 
  <property name="package.name" 
70
 
    value="${project.name}-${package.version}"/>
71
 
 
72
 
  <!-- Nominal version used for install directory and program
73
 
       files menu. Normally the same as the package version, 
74
 
       but may differ when we are in alpha or beta. -->
75
 
  <property name="nominal.version" value="2.5" />
76
 
 
77
 
  <!-- Frameworks supported by this build script. The first
78
 
         installed framework found is the default for builds. 
79
 
         The first .NET and Mono frameworks found are the
80
 
         respective net and mono defaults. -->
81
 
  <property name="supported.frameworks" 
82
 
    value="net-1.1,net-2.0,net-1.0,mono-1.0,mono-2.0"/>
83
 
 
84
 
  <!-- Framework versions for which packages are normally created -->
85
 
  <property name="standard.packages"
86
 
    value="net-1.1,net-2.0" />
87
 
 
88
 
  <property name="nunit.options" value=""/>
89
 
 
90
 
  <!-- Additional internal properties are set in the include file -->
91
 
  <include buildfile="nunit.build.include"/>
92
 
 
93
 
<!-- ***************************************************************** -->
94
 
<!-- ***          Targets that set the build configuration         *** -->
95
 
<!-- ***     These must come before actions like build or test     *** -->
96
 
<!-- ***************************************************************** -->
97
 
 
98
 
  <target name="debug" depends="set-debug-build-config"
99
 
    description="Set config to debug for commands that follow"/>
100
 
 
101
 
  <target name="release" depends="set-release-build-config"
102
 
    description="Set config to release for commands that follow"/>
103
 
 
104
 
<!-- ***************************************************************** -->
105
 
<!-- ***         Targets that set the runtime configuration        *** -->
106
 
<!-- ***     These must come before actions like build or test     *** -->
107
 
<!-- ***************************************************************** -->
108
 
 
109
 
  <target name="net" depends="set-default-dot-net-runtime-config"
110
 
    description="Set runtime to .NET 1.1 for commands that follow"/>
111
 
 
112
 
  <target name="net-1.0" depends="set-net-1.0-runtime-config"
113
 
    description="Set runtime to .NET 1.0 for commands that follow"/>
114
 
 
115
 
  <target name="net-1.1" depends="set-net-1.1-runtime-config"
116
 
    description="Set runtime to .NET 1.1 for commands that follow"/>
117
 
      
118
 
  <target name="net-2.0" depends="set-net-2.0-runtime-config"
119
 
    description="Set runtime to .NET 2.0 for commands that follow"/>
120
 
      
121
 
  <target name="mono" depends="set-default-mono-runtime-config"
122
 
    description="Set runtime to Mono 1.0 for commands that follow"/>
123
 
 
124
 
  <target name="mono-1.0" depends="set-mono-1.0-runtime-config"
125
 
    description="Set runtime to Mono 1.0 for commands that follow"/>
126
 
  
127
 
  <target name="mono-2.0" depends="set-mono-2.0-runtime-config"
128
 
    description="Set runtime to Mono 2.0 for commands that follow"/>
129
 
 
130
 
<!-- ***************************************************************** -->
131
 
<!-- ***             Targets that clean directories                *** -->
132
 
<!-- ***************************************************************** -->
133
 
 
134
 
  <target name="clean" depends="set-build-dir"
135
 
      description="Removes the current build directory">
136
 
    <delete dir="${current.build.dir}" 
137
 
      if="${directory::exists( current.build.dir )}"/>
138
 
  </target>
139
 
 
140
 
  <target name="clean-all" description="Removes all build directories">
141
 
    <delete dir="${project.build.dir}" 
142
 
      if="${directory::exists( project.build.dir )}"/>
143
 
  </target>
144
 
 
145
 
  <target name="clean-package-dir"
146
 
    description="Removes the current package working directory">
147
 
        <delete dir="${package.working.dir}" 
148
 
            if="${directory::exists( package.working.dir )}"/>
149
 
  </target>
150
 
 
151
 
  <target name="clean-source-dirs">
152
 
    <delete>
153
 
      <fileset>
154
 
        <include name="*/*/obj/**/*"/>
155
 
        <include name="*/*/bin/**/*"/>
156
 
      </fileset>
157
 
    </delete>
158
 
  </target>
159
 
.
160
 
<!-- ***************************************************************** -->
161
 
<!-- ***              Targets that perform builds                  *** -->
162
 
<!-- ***************************************************************** -->
163
 
 
164
 
 
165
 
  <target name="rebuild" depends="clean,build"
166
 
    description="Rebuild NUnit for default runtime version and config"/>
167
 
 
168
 
  <target name="build" depends="make-build-dir"
169
 
    description="Build NUnit for default runtime version and config">
170
 
 
171
 
    <echo message="*"/>
172
 
    <echo message="* Starting ${runtime.config} ${build.config} build"/>
173
 
    <echo message="*"/>
174
 
 
175
 
    <!-- Copy key file to base directory, so build can access it -->
176
 
    <copy file="nunit.snk" todir="${project.base.dir}"/>
177
 
 
178
 
    <!-- Copy external libraries -->
179
 
    <copy todir="${current.build.dir}">
180
 
      <fileset basedir="${project.base.dir}/lib">
181
 
        <include name="log4net.dll"/>
182
 
      </fileset>
183
 
    </copy>
184
 
 
185
 
    <!-- Build NUnit components and tests -->
186
 
    <nant target="build">
187
 
      <buildfiles refid="project.buildfiles" />
188
 
    </nant>
189
 
 
190
 
    <!-- Copy files for running tests -->
191
 
    <copy todir="${current.build.dir}">
192
 
      <fileset>
193
 
        <include name="NUnitTests.nunit" />
194
 
        <include name="NUnitTests.config" />
195
 
        <include name="NUnitFitTests.html" />
196
 
        <include name="clr.bat" />
197
 
      </fileset>
198
 
    </copy>
199
 
 
200
 
  </target>
201
 
 
202
 
  <target name="rebuild-all" depends="clean-all,build-all"
203
 
      description="Rebuild current config for all available runtimes"/>
204
 
 
205
 
  <target name="build-all"
206
 
      description="Build current config for all available runtime">
207
 
 
208
 
    <foreach item="String" delim="," 
209
 
        property="framework" in="${installed.frameworks}">
210
 
 
211
 
      <call target="set-${framework}-runtime-config"/>
212
 
      <call target="build"/>
213
 
 
214
 
    </foreach>
215
 
 
216
 
  </target>
217
 
 
218
 
<!-- ***************************************************************** -->
219
 
<!-- ***                 Targets for running tests                 *** -->
220
 
<!-- ***************************************************************** -->
221
 
 
222
 
  <target name="test" depends="build,run-test"
223
 
    description="Build and run tests for selected config and runtime"/>
224
 
 
225
 
  <target name="run-test"
226
 
      description="Run tests for selected config and runtime (no rebuild)">
227
 
 
228
 
    <echo message="*"/>
229
 
    <echo message="* Testing ${runtime.config} ${build.config} build"/>
230
 
    <echo message="*    Running under ${nant.settings.currentframework}"/>
231
 
    <echo message="*"/>
232
 
 
233
 
    <!-- We use exec rather than the nunit2 task because we are testing
234
 
         a new build of NUnit which is likely not to be included in the Nant build -->
235
 
    <!-- Mono currently has a SIGSEGV fault if we run in a single AppDomain -->
236
 
 
237
 
    <property name="result.file" 
238
 
      value="TestResult-${nant.settings.currentframework}"/>
239
 
    <exec basedir="${current.build.dir}"
240
 
      workingdir="${current.build.dir}" 
241
 
          program="nunit-console.exe" 
242
 
      useruntimeengine="true"
243
 
          commandline="NUnitTests.nunit ${nunit.options} /xml:${result.file}.xml" />
244
 
 
245
 
  </target>
246
 
 
247
 
  <target name="test-coverage" depends="build"
248
 
    description="Run tests for a build under NCover to get coverage results">
249
 
 
250
 
    <echo message="*"/>
251
 
    <echo message="* Starting ${runtime.config} ${build.config} test coverage run"/>
252
 
    <echo message="*"/>
253
 
 
254
 
    <property name="ncover.options" 
255
 
      value="//a nunit.framework;nunit.core;nunit.extensions;nunit.util;nunit.console;nunit.uikit;nunit-gui-runner"/>
256
 
 
257
 
    <!-- We use exec rather than the nunit2 task because we are testing
258
 
         a new build of NUnit which is likely not to be included in the Nant build -->
259
 
    <exec basedir="${ncover.dir}"
260
 
          workingdir="${current.build.dir}" 
261
 
          program="NCover.Console.exe" 
262
 
      useruntimeengine="true"
263
 
          commandline="nunit-console.exe NUnitTests.nunit ${nunit.options} ${ncover.options}"
264
 
        if="${build.win32}" />
265
 
 
266
 
    <!-- Mono currently has a SIGSEGV fault if we run in a single AppDomain -->
267
 
         a new build of NUnit which is likely not to be included in the Nant build -->
268
 
    <exec basedir="${ncover.dir}"
269
 
          workingdir="${current.build.dir}" 
270
 
          program="NCover.Console.exe" 
271
 
          useruntimeengine="true"
272
 
          commandline="nunit-console.exe NUnitTests.nunit ${nunit.options}"
273
 
        unless="${build.win32}" />
274
 
 
275
 
  </target>
276
 
 
277
 
  <target name="test-all"
278
 
      description="Build and test all runtimes for current config">
279
 
 
280
 
    <foreach item="String" delim="," 
281
 
        property="framework" in="${installed.frameworks}">
282
 
 
283
 
      <call target="set-${framework}-runtime-config"/>
284
 
      <call target="test" />
285
 
 
286
 
    </foreach>
287
 
 
288
 
  </target>
289
 
 
290
 
  <target name="test-each-runtime" depends="build"
291
 
      description="Run tests for the current build under each runtime">
292
 
 
293
 
    <foreach item="String" delim=","
294
 
        property="framework" in="${supported.test.platforms}">
295
 
 
296
 
      <if test="${framework::exists( framework )}">
297
 
        <property name="nant.settings.currentframework"
298
 
            value="${framework}" />
299
 
        <call target="run-test" failonerror="false" />
300
 
      </if>
301
 
 
302
 
    </foreach>
303
 
 
304
 
    <property name="nant.settings.currentframework" value="${runtime.config}" />
305
 
 
306
 
    <echo message="*" />
307
 
    <echo message="* Restored runtime to ${nant.settings.currentframework}" />
308
 
    <echo message="*" />
309
 
 
310
 
  </target>
311
 
 
312
 
  <target name="test-all-under-each"
313
 
      description="Build all runtimes and test the builds under each runtime.">
314
 
 
315
 
    <call target="set-release-build-config"/>
316
 
 
317
 
    <foreach item="String" delim="," 
318
 
        property="framework" in="${installed.frameworks}">
319
 
 
320
 
      <call target="set-${framework}-runtime-config"/>
321
 
      <call target="test-each-runtime" failonerror="false"/>
322
 
 
323
 
    </foreach>
324
 
 
325
 
  </target>
326
 
 
327
 
  <target name="nunit2-test" depends="build"
328
 
    description="Run tests for a build using the nunit2 task">
329
 
 
330
 
    <echo message="*"/>
331
 
    <echo message="* Starting ${runtime.config} ${build.config} test run"/>
332
 
    <echo message="*"/>
333
 
 
334
 
    <nunit2>
335
 
      <formatter type="Plain"/>
336
 
      <test assemblyname="${current.build.dir}/nunit.framework.tests.dll"/>
337
 
    </nunit2>
338
 
  </target>
339
 
 
340
 
  <target name="timing-test" depends="build"
341
 
    description="Run timing tests (long)">
342
 
 
343
 
    <echo message="*"/>
344
 
    <echo message="* Starting ${runtime.config} ${build.config} timing tests"/>
345
 
    <echo message="*"/>
346
 
    <echo message="* WARNING: Test may take some time to run"/>
347
 
    <echo message="*"/>
348
 
 
349
 
    <exec basedir="${current.build.dir}" 
350
 
      workingdir="${current.build.dir}" 
351
 
      program="nunit-console.exe" 
352
 
      commandline="timing-tests.dll"/>
353
 
 
354
 
  </target>
355
 
 
356
 
  <target name="gui-test" depends="build"
357
 
    description="Run tests for a build using gui runner">
358
 
 
359
 
    <echo message="*"/>
360
 
    <echo message="* Starting ${runtime.config} ${build.config} gui test run"/>
361
 
    <echo message="*"/>
362
 
 
363
 
    <exec basedir="${current.build.dir}" 
364
 
      workingdir="${current.build.dir}" 
365
 
      program="nunit.exe" 
366
 
      useruntimeengine="true"
367
 
      commandline="NUnitTests.nunit -run"/>
368
 
 
369
 
  </target>
370
 
 
371
 
  <target name="fit-tests" depends="build"
372
 
    description="Run Fit Acceptance tests on the build">
373
 
 
374
 
    <echo message="*"/>
375
 
    <echo message="* Starting ${runtime.config} ${build.config} Fit Tests"/>
376
 
    <echo message="*"/>
377
 
 
378
 
    <exec basedir="${current.build.dir}" 
379
 
      workingdir="${current.build.dir}" 
380
 
      program="runfile.exe" 
381
 
      useruntimeengine="true"
382
 
      commandline="NUnitFitTests.html TestResults.html ." />
383
 
 
384
 
  </target>
385
 
 
386
 
 
387
 
<!-- ***************************************************************** -->
388
 
<!-- *       Build the NUnit samples - not part of normal build    *** -->
389
 
<!-- ***************************************************************** -->
390
 
 
391
 
  <property name="samples.bin.dir"
392
 
    value="${path::combine(project.samples.dir, 'bin')}"/>
393
 
 
394
 
  <target name="clean-samples" description="Removes the samples build directory">
395
 
    <delete dir="${samples.bin.dir}" />
396
 
  </target>
397
 
 
398
 
  <target name="build-samples" depends="build"
399
 
     description="Build the NUnit samples">
400
 
    
401
 
    <mkdir dir="${samples.bin.dir}" unless="${directory::exists(samples.bin.dir)}" />
402
 
 
403
 
    <copy todir="${samples.bin.dir}"
404
 
      file="${path::combine(current.build.dir,'nunit.framework.dll')}" />
405
 
    <copy todir="${samples.bin.dir}"
406
 
      file="${path::combine(current.build.dir,'nunit.core.interfaces.dll')}" />
407
 
    <copy todir="${samples.bin.dir}"
408
 
      file="${path::combine(current.build.dir,'nunit.core.dll')}" />
409
 
 
410
 
    <nant target="build">
411
 
      <buildfiles refid="sample.buildfiles" />
412
 
    </nant>
413
 
 
414
 
  </target>
415
 
 
416
 
  <target name="rebuild-samples" depends="clean-samples,build-samples" 
417
 
      description="Rebuild the NUnit samples"/>
418
 
 
419
 
<!-- ***************************************************************** -->
420
 
<!-- ***         Targets for packaging the NUnit distribution      *** -->
421
 
<!-- ***************************************************************** -->
422
 
 
423
 
  <!-- Produce all the standard packages for a release -->
424
 
  <target name="package-release"
425
 
      description="Create standard packages for distribution">
426
 
      
427
 
    <call target="package-src"/>
428
 
 
429
 
    <call target="package-docs"/>
430
 
 
431
 
    <call target="set-release-build-config"/>
432
 
 
433
 
    <foreach item="String" delim="," 
434
 
        property="framework" in="${standard.packages}">
435
 
 
436
 
      <if test="${framework::sdk-exists( framework )}">
437
 
        <call target="set-${framework}-runtime-config"/>
438
 
        <call target="package"/>
439
 
      </if>
440
 
 
441
 
    </foreach>
442
 
 
443
 
  </target>
444
 
 
445
 
<!-- ***************************************************************** -->
446
 
<!-- ***                    Package binaries                       *** -->
447
 
<!-- ***************************************************************** -->
448
 
 
449
 
  <target name="package" depends="build-install-image"
450
 
      description="Create both binary and msi packages for current build" >
451
 
 
452
 
    <call target="create-zip" />
453
 
 
454
 
    <if test="${platform::is-win32() and build.win32}" >
455
 
      <call target="create-msi" />
456
 
    </if>
457
 
 
458
 
  </target>
459
 
  
460
 
  <!-- Package current config as a zip --> 
461
 
  <target name="package-zip" depends="build-install-image,create-zip"
462
 
    description="Create zip binary distribution package" />
463
 
 
464
 
  <!-- Package current config as an msi --> 
465
 
  <target name="package-msi" depends="build-install-image,create-msi"
466
 
    description="Build msi file and deploy it to the package dir" />
467
 
 
468
 
  <target name="create-zip" description="Create zip from existing image">
469
 
    <!-- Create the zip file -->
470
 
    <property name="zip.file.name" 
471
 
      value="${package.name}-${runtime.config}${build.suffix}.zip"/>
472
 
    <zip ziplevel="9"
473
 
        zipfile="${project.package.dir}/${zip.file.name}">
474
 
      <fileset basedir="${package.working.dir}">
475
 
        <include name="**"/>
476
 
      </fileset>
477
 
    </zip>
478
 
  </target>
479
 
 
480
 
  <target name="create-msi" description="Create msi from existing install image">
481
 
  
482
 
    <fail message="MSI can only be built on the Win32 platform" unless="${platform::is-win32()}"/>
483
 
    <fail message="MSI can only be built for a Win32 runtime" unless="${build.win32}"/>
484
 
 
485
 
    <property name="wix.dir"
486
 
      value="${project.tools.dir}/wix"/>
487
 
    <property name="work.dir"
488
 
      value="${package.working.dir}"/>
489
 
    <property name="install.dir"
490
 
      value="${project.src.dir}/install"/>
491
 
    <property name="msi.file.name"
492
 
      value="${package.name}-${runtime.config}${build.suffix}.msi"/>
493
 
 
494
 
    <candle out="${work.dir}/" exedir="${wix.dir}">
495
 
      <defines>
496
 
        <define name="ProductVersion" value="${package.version}" />
497
 
        <define name="NominalVersion" value="${nominal.version}" />
498
 
        <define name="RuntimeVersion" value="${runtime.version}" />
499
 
      </defines>
500
 
      <sources basedir="${install.dir}">
501
 
        <include name="bin.wxs" />
502
 
        <include name="nunit-gui.wxs" />
503
 
        <include name="doc.wxs" />
504
 
        <include name="tests.wxs" />
505
 
        <include name="samples.wxs" />
506
 
        <include name="NUnit.wxs" />
507
 
      </sources>
508
 
    </candle>
509
 
 
510
 
    <light exedir="${wix.dir}"
511
 
      out="${project.package.dir}/${msi.file.name}" 
512
 
      locfile="${wix.dir}/WixUI_en-us.wxl">
513
 
      <sources>
514
 
        <include name="${work.dir}/NUnit.wixobj" />
515
 
        <include name="${work.dir}/bin.wixobj" />
516
 
        <include name="${work.dir}/nunit-gui.wixobj" />
517
 
        <include name="${work.dir}/doc.wixobj" />
518
 
        <include name="${work.dir}/samples.wixobj" />
519
 
        <include name="${work.dir}/tests.wixobj" />
520
 
        <include name="${wix.dir}/wixui.wixlib" />
521
 
      </sources>
522
 
    </light>
523
 
 
524
 
  </target>
525
 
 
526
 
<!-- ***************************************************************** -->
527
 
<!-- ***                  Package source files                     *** -->
528
 
<!-- ***************************************************************** -->
529
 
 
530
 
  <target name="package-src" depends="clean-package-dir"
531
 
    description="Create full source package for developer use">
532
 
 
533
 
    <call target="copy-docs"/>
534
 
    <call target="copy-samples"/>
535
 
    <call target="copy-src"/>
536
 
    <call target="copy-tools" />
537
 
 
538
 
    <copy file="../license.txt" todir="${package.working.dir}" />
539
 
 
540
 
    <!-- Create the zip file -->
541
 
    <zip  ziplevel="9"
542
 
        zipfile="${project.package.dir}/${package.name}-src.zip">
543
 
      <fileset basedir="${package.working.dir}">
544
 
        <include name="**"/>
545
 
      </fileset>
546
 
    </zip>
547
 
  </target>
548
 
 
549
 
<!-- ***************************************************************** -->
550
 
<!-- ***                      Package docs                         *** -->
551
 
<!-- ***************************************************************** -->
552
 
 
553
 
  <target name="package-docs" depends="clean-package-dir">
554
 
 
555
 
    <call target="copy-docs"/>
556
 
 
557
 
    <!-- Create the zip file -->
558
 
    <zip ziplevel="9"
559
 
        zipfile="${project.package.dir}/${package.name}-docs.zip">
560
 
      <fileset basedir="${package.working.dir}">
561
 
        <include name="**"/>
562
 
      </fileset>
563
 
    </zip>
564
 
    
565
 
  </target>
566
 
  
567
 
<!-- ***************************************************************** -->
568
 
<!-- ***                    Package resources                      *** -->
569
 
<!-- ***************************************************************** -->
570
 
 
571
 
  <target name="package-resources" depends="clean-package-dir">
572
 
 
573
 
    <copy todir="${package.resource.dir}/nunit-gui-runner">
574
 
      <fileset basedir="GuiRunner/nunit-gui/obj/Release">
575
 
        <include name="*.resources"/>
576
 
      </fileset>
577
 
    </copy>
578
 
 
579
 
    <copy todir="${package.resource.dir}/nunit.uikit">
580
 
      <fileset basedir="GuiComponents/UiKit/obj/Release">
581
 
        <include name="NUnit.UiKit.AddConfigurationDialog.resources"/>
582
 
        <include name="NUnit.UiKit.AssemblyPathDialog.resources"/>
583
 
        <include name="NUnit.UiKit.ConfigurationEditor.resources"/>
584
 
        <include name="NUnit.UiKit.RenameConfigurationDialog.resources"/>
585
 
        <include name="NUnit.UiKit.TestPropertiesDialog.resources"/>
586
 
        <include name="NUnit.UiKit.TestTree.resources"/>
587
 
      </fileset>
588
 
    </copy>
589
 
 
590
 
    <copy todir="${package.working.dir}">
591
 
      <fileset basedir="../tools/localization">
592
 
        <include name="*.*"/>
593
 
      </fileset>
594
 
    </copy>
595
 
 
596
 
    <if test="${property::exists('localize')}">
597
 
    <foreach property="culture" item="String" delim="," 
598
 
        in="${localize}">
599
 
    <foreach property="folder" item="Folder" 
600
 
        in="${package.working.dir}/resources">
601
 
      <property name="proj" 
602
 
        value="${path::get-file-name(folder)}"/>
603
 
      <property name="projdir" 
604
 
        value="${package.working.dir}/${culture}/${proj}"/>
605
 
    <foreach property="file" item="File" in="${folder}">
606
 
      <property name="filename"
607
 
        value="${path::get-file-name-without-extension(file)}"/>
608
 
      <copy file="${file}" 
609
 
        tofile="${projdir}/${filename}.${culture}.resources"/>"/>
610
 
    </foreach>
611
 
    </foreach>
612
 
    </foreach>   
613
 
    </if>
614
 
 
615
 
    <zip  ziplevel="9"
616
 
        zipfile="${project.package.dir}/${package.name}-resources.zip">
617
 
      <fileset basedir="${package.working.dir}">
618
 
        <include name="**"/>
619
 
      </fileset>
620
 
    </zip>
621
 
 
622
 
  </target>
623
 
 
624
 
<!-- ***************************************************************** -->
625
 
<!-- ***            Helper targets used for packaging              *** -->
626
 
<!-- ***************************************************************** -->
627
 
 
628
 
  <target name="build-install-image" depends="clean-package-dir">
629
 
 
630
 
    <call target="copy-bins" />
631
 
    <call target="copy-docs" />
632
 
    <call target="copy-samples" />
633
 
 
634
 
    <copy file="../license.txt" todir="${package.working.dir}" />
635
 
    <copy file="../tools/fit/license.txt"
636
 
          tofile="${package.working.dir}/fit-license.txt" />
637
 
    <copy file="GuiRunner/nunit-gui/Logo.ico" todir="${package.working.dir}" />
638
 
    <copy file="NUnitFitTests.html" todir="${package.bin.dir}" />
639
 
 
640
 
  </target>
641
 
 
642
 
  <target name="copy-bins" depends="build">
643
 
    <mkdir dir="${package.bin.dir}"/>
644
 
    <copy todir="${package.bin.dir}">
645
 
      <fileset basedir="${current.build.dir}">
646
 
        <include name="*"/>
647
 
        <exclude name="*.wixobj"/>
648
 
        <exclude name="nunit-server.*"/>
649
 
        <exclude name="nunit-test-server.*"/>
650
 
      </fileset>
651
 
    </copy>
652
 
  </target>
653
 
  
654
 
  <target name="copy-docs">
655
 
    <mkdir dir="${package.doc.dir}"/>
656
 
    <copy todir="${package.doc.dir}">
657
 
      <fileset basedir="${project.doc.dir}">
658
 
        <include name="*.html"/>
659
 
        <include name="nunit.css"/>
660
 
        <include name="codeFuncs.js"/>
661
 
        <include name="favicon.ico"/>
662
 
        <include name="files/*"/>
663
 
        <include name="img/*"/>
664
 
        <exclude name="img/thumbs.db"/>
665
 
      </fileset>
666
 
    </copy>
667
 
  </target>
668
 
 
669
 
  <target name="copy-samples">
670
 
 
671
 
    <mkdir dir="${package.samples.dir}"/>
672
 
 
673
 
    <!-- Copy files that are not part of an individual project -->
674
 
    <copy todir="${package.samples.dir}">
675
 
      <fileset basedir="${project.samples.dir}">
676
 
        <include name="ReadMe.txt" />
677
 
        <include name="csharp/CSharp.sln" />
678
 
        <include name="jsharp/jsharp.sln" />
679
 
        <include name="vb/vb-samples.sln" />
680
 
        <include name="cpp/managed/managed-cpp.sln" />
681
 
        <include name="cpp/cpp-cli/cpp-cli.sln" />
682
 
        <include name="Extensibility/Core/CoreExtensibility.sln" />
683
 
        <include name="Extensibility/Core/Install.bat" />
684
 
      </fileset>
685
 
    </copy>
686
 
 
687
 
    <!-- Copy each project's files -->
688
 
    <nant target="package">
689
 
      <buildfiles refid="sample.buildfiles" />
690
 
    </nant>
691
 
 
692
 
  </target>
693
 
 
694
 
  <target name="copy-src">
695
 
    <delete dir="${package.src.dir}" />
696
 
    <mkdir dir="${package.src.dir}"/>
697
 
 
698
 
    <!-- Copy top level src files -->
699
 
    <copy todir="${package.src.dir}">
700
 
      <fileset basedir=".">
701
 
        <include name="license.rtf"/>
702
 
        <include name="nunit.build"/>
703
 
        <include name="nunit.build.include"/>
704
 
        <include name="nunit.sln"/>
705
 
        <include name="nunit_VS2005.sln"/>
706
 
        <include name="nunit.snk"/>
707
 
        <include name="nunit20under21.config"/>
708
 
        <include name="nunit20under22.config"/>
709
 
        <include name="nunit21under22.config"/>
710
 
        <include name="NUnitBinTests.config"/>
711
 
        <include name="NUnitBinTests.nunit"/>
712
 
        <include name="NUnitDevTests.config"/>
713
 
        <include name="NUnitDevTests.nunit"/>
714
 
        <include name="NUnitFitTests.html"/>
715
 
        <include name="CommonAssemblyInfo.cs"/>
716
 
        <include name="clr.bat"/>
717
 
        <include name="install/bin.wxs" />
718
 
        <include name="install/nunit-gui.wxs" />
719
 
        <include name="install/doc.wxs" />
720
 
        <include name="install/tests.wxs" />
721
 
        <include name="install/samples.wxs" />
722
 
        <include name="install/NUnit.wxs"/>
723
 
      </fileset>
724
 
    </copy>
725
 
 
726
 
    <!-- Copy individual projects -->
727
 
    <nant target="package" inheritrefs="true">
728
 
      <buildfiles refid="project.buildfiles" />
729
 
    </nant>
730
 
 
731
 
  </target>
732
 
 
733
 
  <target name="copy-tools">
734
 
 
735
 
    <mkdir dir="${package.tools.dir}" />
736
 
 
737
 
    <copy todir="${package.tools.dir}">
738
 
      <fileset basedir="${project.tools.dir}">
739
 
        <include name="fit/fit.dll"/>
740
 
        <include name="fit/runFile.exe"/>
741
 
        <include name="fit/runFile.exe.config"/>
742
 
        <include name="fit/license.txt"/>
743
 
      </fileset>
744
 
    </copy>
745
 
 
746
 
  </target>
747
 
 
748
 
<!-- ***************************************************************** -->
749
 
<!-- ***        Targets for installing the NUnit distribution      *** -->
750
 
<!-- ***************************************************************** -->
751
 
 
752
 
  <target name="install" depends="build-install-image"
753
 
      description="Install NUnit directly from the build">
754
 
 
755
 
  </target>
756
 
 
757
 
<!-- ***************************************************************** -->
758
 
<!-- *********      FileSets Used by Various Targets       *********** -->
759
 
<!-- ***************************************************************** -->
760
 
 
761
 
  <!-- Buildfiles for all NUnit components - in build order -->
762
 
  <fileset id="project.buildfiles">
763
 
 
764
 
    <!-- NUnit Base -->
765
 
    <include name="NUnitFramework/framework/nunit.framework.build" />
766
 
    <include name="NUnitCore/interfaces/nunit.core.interfaces.build" />
767
 
    <include name="NUnitCore/core/nunit.core.build" />
768
 
    <include name="NUnitExtensions/framework/nunit.framework.extensions.build" />
769
 
    <include name="NUnitExtensions/core/nunit.core.extensions.build" />
770
 
    <include name="NUnitMocks/mocks/nunit.mocks.build" />
771
 
    <include name="ClientUtilities/util/nunit.util.build" />
772
 
 
773
 
    <!-- Console Runner -->
774
 
    <include name="ConsoleRunner/nunit-console/nunit-console.build" />
775
 
    <include name="ConsoleRunner/nunit-console-exe/nunit-console.exe.build" />
776
 
 
777
 
    <!-- Gui Runner -->
778
 
    <include name="GuiComponents/UiKit/nunit.uikit.build" />
779
 
    <include name="GuiRunner/nunit-gui/nunit-gui.build" />
780
 
    <include name="GuiRunner/nunit-gui-exe/nunit-gui.exe.build" />
781
 
 
782
 
    <!-- Test Server -->
783
 
    <include name="NUnitTestServer/nunit-server-exe/nunit-server.exe.build" />
784
 
    <include name="NUnitTestServer/nunit-agent-exe/nunit-agent.exe.build" />
785
 
 
786
 
    <!-- Test Utilities and Dummy Projects -->
787
 
    <include name="tests/mock-assembly/mock-assembly.build" />
788
 
    <include name="tests/nonamespace-assembly/nonamespace-assembly.build" />
789
 
    <include name="tests/notestfixtures-assembly/notestfixtures-assembly.build" />
790
 
    <include name="tests/test-assembly/test-assembly.build" />
791
 
    <include name="tests/test-utilities/test-utilities.build" />
792
 
    <include name="tests/timing-tests/timing-tests.build" />
793
 
 
794
 
    <!-- NUnit Base Tests -->
795
 
    <include name="NUnitFramework/tests/nunit.framework.tests.build" />
796
 
    <include name="NUnitCore/tests/nunit.core.tests.build" />
797
 
    <include name="NUnitExtensions/tests/nunit.extensions.tests.build" />
798
 
    <include name="NUnitMocks/tests/nunit.mocks.tests.build" />
799
 
    <include name="ClientUtilities/tests/nunit.util.tests.build" />
800
 
 
801
 
    <!-- Console Runner Tests -->
802
 
    <include name="ConsoleRunner/tests/nunit-console.tests.build" />
803
 
 
804
 
    <!-- GUI Tests -->
805
 
    <include name="GuiComponents/tests/nunit.uikit.tests.build" />
806
 
    <include name="GuiRunner/tests/nunit-gui.tests.build" />
807
 
 
808
 
    <!-- FIT Tests -->
809
 
    <include name="NUnitFixtures/fixtures/nunit.fixtures.build" />
810
 
    <include name="NUnitFixtures/tests/nunit.fixtures.tests.build" />
811
 
  </fileset>
812
 
 
813
 
  <!-- BuildFiles for Samples -->
814
 
  <fileset id="sample.buildfiles" basedir="../samples">
815
 
 
816
 
    <!-- CSharp Samples -->
817
 
    <include name="csharp/failures/cs-failures.build" />
818
 
    <include name="csharp/money/cs-money.build" />
819
 
    <include name="csharp/money-port/cs-money-port.build" />
820
 
    <include name="csharp/syntax/cs-syntax.build" />
821
 
 
822
 
    <!-- JSharp Samples -->
823
 
    <include name="jsharp/failures/jsharp-failures.build"
824
 
      if="${task::exists('vjc')}" />
825
 
 
826
 
    <!-- VB Samples -->
827
 
    <include name="vb/failures/vb-failures.build"
828
 
      if="${task::exists('vbc')}" />
829
 
    <include name="vb/money/vb-money.build"
830
 
      if="${task::exists('vbc')}" />
831
 
    <include name="vb/syntax/vb-syntax.build"
832
 
      if="${task::exists('vbc')}" />
833
 
 
834
 
    <!-- Managed C++ Samples -->
835
 
    <include name="cpp/managed/failures/cpp-managed-failures.build"/>
836
 
 
837
 
    <!-- C++/CLI Samples -->
838
 
    <include name="cpp/cpp-cli/failures/cpp-cli-failures.build"/>
839
 
    <include name="cpp/cpp-cli/syntax/cpp-cli-syntax.build"/>
840
 
 
841
 
    <!-- Extensibility Samples -->
842
 
    <include name="Extensibility/Core/Minimal/Minimal.build" />
843
 
    <include name="Extensibility/Core/SampleFixtureExtension/SampleFixtureExtension.build" />
844
 
    <include name="Extensibility/Core/SampleSuiteExtension/SampleSuiteExtension.build" />
845
 
    <include name="Extensibility/Core/MaxTimeDecorator/MaxTimeDecorator.build" />
846
 
  </fileset>
847
 
 
848
 
  <!-- Files to be copied to source directories -->
849
 
  <fileset id="source-files" >
850
 
        <include name="**/*.sln" />
851
 
        <include name="**/*.csproj" />
852
 
        <include name="**/*.config" />
853
 
        <include name="**/*.build" />
854
 
        <include name="**/*.cs" />
855
 
        <include name="**/*.xsd" />
856
 
        <include name="**/*.xslt" />
857
 
        <include name="**/*.resx" />
858
 
        <include name="**/*.jpg" />
859
 
        <include name="**/*.gif" />
860
 
        <include name="**/*.ico" />
861
 
        <include name="**/*.txt" />
862
 
        <include name="**/resources/*" />
863
 
 
864
 
        <exclude name="**/CVS/**" />
865
 
        <exclude name="**/bin/**" />
866
 
        <exclude name="**/obj/**" />
867
 
        <exclude name="**/Debug/**" />
868
 
        <exclude name="**/Release/**" />
869
 
  </fileset>
870
 
 
871
 
</project>