Menu

[r568]: / branches / multiSCCS / default.build  Maximize  Restore  History

Download this file

187 lines (171 with data), 7.1 kB

<?xml version="1.0"?>
<project name="CommitMonitor" default="help">

  <!-- default configuration is release -->
  <property name="configuration" value="release" />
  <!-- default builds are dev builds -->
  <property name="devrelease" value="-dev" unless="${property::exists('devrelease')}"/>
  <!-- default build for win32 platform -->
  <property name="platform" value="win32" />
  <!-- default build tool is VS.NET2005 -->
  <property name="buildtool" value="devenv.com" />
  <!-- build with VS2010, if there is a 10.0 in the VC path -->
  <property name="studioversion" value="2010" if="${string::contains (environment::get-variable('VCINSTALLDIR'), '10.0')}"/>
  <property name="studioversion" value="2008" if="${string::contains (environment::get-variable('VCINSTALLDIR'), '9.0')}"/>
  <property name="solutionname" value="CommitMonitor.sln" if="${studioversion == '2008'}"/>
  <property name="solutionname" value="CommitMonitor_VS10.sln" if="${studioversion == '2010'}"/>
  <!-- the signinfo.txt file has to contain one line with parameters for signtool.exe,
       for example:
     /t "url/to/timestamp/server" /q
  -->
  <loadfile file="signinfo.txt" property="signinfo" failonerror="false" />

  <include buildfile="default.build.user" />

  <!-- ====================================================================== -->
  <!-- Configuration targets													-->
  <!-- ====================================================================== -->
  <target name="debug">
    <description>
      Sets the environment up to build the debug versions.
    </description>
    <property name="configuration" value="debug" />
  </target>

  <target name="release">
    <description>
      Sets the environment up to build an official release version,
      without the '-dev' markers.
    </description>
    <property name="devrelease" value="" />
  </target>

  <!-- ====================================================================== -->
  <!-- Project targets														-->
  <!-- ====================================================================== -->
  <target name="clean" depends="VSNET">
    <description>
      Cleans every subproject.
    </description>
    <nant target="clean">
      <buildfiles>
        <include name="ext/build/OpenSSL.build" />
        <include name="ext/build/default.build" />
      </buildfiles>
    </nant>
    <exec program="devenv.com" >
      <arg value="${solutionname}" />
      <arg value="/clean" />
      <arg value="${configuration}|${platform}" />
    </exec>
  </target>

  <target name="VersionInfo" depends="VSNET,env">
    <description>
      Sets the version information as properties, env variables
      and sets up the different version specific files.
    </description>
    <nant target="versioninfo">
      <buildfiles>
        <include name="versioninfo.build" />
      </buildfiles>
    </nant>
    <loadfile file="src\version.in" property="versionheaderfile">
      <filterchain>
        <replacetokens begintoken="$" endtoken="$">
          <token key="MajorVersion" value="${environment::get-variable('MajorVersion')}" />
          <token key="MinorVersion" value="${environment::get-variable('MinorVersion')}" />
          <token key="MicroVersion" value="${environment::get-variable('Microversion')}" />
          <token key="WCREV" value="${environment::get-variable('WCREV')}" />
          <token key="WCDATE" value="${environment::get-variable('WCDATE')}" />
          <token key="DEVBUILD" value="${devrelease}" />
        </replacetokens>
      </filterchain>
    </loadfile>
    <echo file="src\version.h" message="${versionheaderfile}" />
  </target>

  <target name="Subversion" depends="VSNET,env,VersionInfo">
    <description>
      Builds all the libraries CommitMonitor depends on:
      Subversion, apr, OpenSSL, ...
    </description>
    <nant target="OpenSSL">
      <buildfiles>
        <include name="ext\build\OpenSSL.build" />
      </buildfiles>
    </nant>
    <nant target="build">
      <buildfiles>
        <include name="ext\build\default.build" />
      </buildfiles>
    </nant>
  </target>

  <target name="SubversionOnly" depends="VSNET,env">
    <description>
      Builds all the libraries CommitMonitor depends on:
      Subversion, apr, ...
    </description>
    <nant target="build">
      <buildfiles>
        <include name="ext\build\default.build" />
      </buildfiles>
    </nant>
  </target>

  <target name="CommitMonitor" depends="VSNET,env,VersionInfo">
    <description>
      Builds CommitMonitor. The libraries must have been built
      before.
    </description>
    <exec program="devenv.com" >
      <arg value="${solutionname}" />
      <arg value="/rebuild" />
      <arg value="${configuration}|${platform}" />
    </exec>
    <exec program="Tools\upx.exe" >
      <arg value="-q" />
      <arg value="bin\${configuration}\CommitMonitor.exe" />
    </exec>
  </target>

  <target name="setup" depends="Subversion,CommitMonitor">
    <description>
      Uses WiX to create an msi installer file.
    </description>
    <nant target="setup">
      <buildfiles>
        <include name="src\Setup\setup.build" />
      </buildfiles>
    </nant>
  </target>

  <target name="msi" depends="VersionInfo">
    <description>
      Builds the msi installer from already built binaries.
    </description>
    <nant target="setup">
      <buildfiles>
        <include name="src\Setup\setup.build" />
      </buildfiles>
    </nant>
  </target>


  <!-- ====================================================================== -->
  <!-- Help target															-->
  <!-- ====================================================================== -->
  <target name="help">
    <echo message="You must specify a target to tell us what you want to build!" />
    <echo />
    <echo message="The following targets are available:" />
    <echo message="clean        : this will clean up previous builds and force a" />
    <echo message="               complete rebuild later" />
    <echo message="Subversion   : builds the Subversion libraries, including its" />
    <echo message="               dependencies" />
    <echo message="CommitMonitor: builds CommitMonitor. You must have build the" />
    <echo message="               Subversion libraries before, or this will fail" />
    <echo message="setup        : creates an msi installer for CommitMonitor" />
    <echo message="msi          : creates the msi, but doesn't build the libs first" />
    <echo />
    <echo message="The following targets can be used to tweak the builds:" />
    <echo message="debug   : if this target is called before other build targets," />
    <echo message="          those targets are built with debug support" />
    <echo message="release : call this if you want to create official releases." />
    <echo message="          It removes the '-dev' string from some builds" />
    <echo />
    <echo message="Please specify the configuration targets BEFORE the main target." />
    <echo message="Examples:" />
    <echo />
    <echo message="nant release setup" />
    <echo />
  </target>
</project>


Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.