blob: 184ebe97639fa7f313cf544a6ee2f57b7cb9bd88 [file] [log] [blame]
<project name="buildHandlers" default="compileHandlers" basedir="..">
<!--
Compile Handler
-->
<target name="compileTestHandler" if="isHandler">
<mkdir dir="${dir.test.generated}/${test.clientLang}/${test.name}/handlers/${handlerLibraryName}"/>
<if>
<not>
<isset property="aix"/>
</not>
<then>
<cc incremental="false"
outfile="${dir.test.generated}/${test.clientLang}/${test.name}/${handlerLibraryName}"
objdir="${dir.test.generated}/${test.clientLang}/${test.name}/handlers/${handlerLibraryName}" exceptions="true"
failonerror="false" outtype="shared" multithreaded="true">
<compiler refid="VisualC++"/>
<compiler refid="Linuxgcc"/>
<compiler refid="SolarisCC"/>
<compiler refid="HP-UXaC++"/>
<compiler extends="OS400icc">
<compilerarg value="-g"/>
</compiler>
<linker refid="VisualC++Linker"/>
<linker refid="LinuxLinker"/>
<linker refid="SolarisLinker"/>
<linker refid="HP-UXLinker"/>
<linker extends="OS400Linker">
<linkerarg location="end" value="${dir.lib}/lib${clientLibraryName}.so"/>
</linker>
<includepath path="${dir.include}"/>
<fileset dir="${handlerDir}">
<include name="*.cpp"/>
</fileset>
</cc>
</then>
<else>
<cc incremental="false"
outfile="${dir.test.generated}/${test.clientLang}/${test.name}/${libraryPrefix}${handlerLibraryName}${librarySuffix}"
objdir="${dir.test.generated}/${test.clientLang}/${test.name}/handlers/${handlerLibraryName}" exceptions="true"
failonerror="false" multithreaded="true">
<compiler refid="AIXxlc"/>
<linker refid="AIXLinker"/>
<includepath path="${dir.include}"/>
<fileset dir="${handlerDir}">
<include name="*.cpp"/>
</fileset>
</cc>
</else>
</if>
</target>
<target name="setHandlerLibraryName">
<basename file="${handlerDir}" property="handlerLibraryName"/>
<condition property="isHandler">
<not>
<equals arg1="${handlerLibraryName}" arg2="${test.handler.directory}"/>
</not>
</condition>
</target>
<target name="checkIfDebugName" if="debug">
<if>
<and>
<isset property="windows"/>
<equals arg1="${debug}" arg2="true" casesensitive="false"/>
</and>
<then>
<property name="handlerLibraryName_D" value="${handlerLibraryName}_D"/>
<propertycopy property="handlerLibraryName" from="handlerLibraryName_D" override="true"/>
</then>
</if>
</target>
<!--
Builds a test handler
-->
<target name="buildTestHandler" depends="setHandlerLibraryName, checkIfDebugName, compileTestHandler, validateHandlerCompilation, insertEntriesInWSDDFile"/>
<!--
Locate all Handlers needing to be build for this client
-->
<target name="compileTestHandlers" if="HandlersPresent" unless="runOnly">
<path id="serviceHandlers">
<dirset dir="${dir.autotests}/handlers/${test.handler.directory}"/>
</path>
<foreach target="buildTestHandler" param="handlerDir" inheritall="true">
<path refid="serviceHandlers"/>
<param name="test.name" value="${test.name}"/>
<param name="client.wsdd" value="${client.wsdd}"/>
</foreach>
</target>
<!--
Compile Handlers
-->
<target name="compileHandlers" depends="createStartOfWSDDFile, compileTestHandlers, createEndOfWSDDFile, updateConfigurationWithClientWSDDEntry"/>
<!--
If this client has associated handlers, update configuration file with
an client.wsdd entry
-->
<target name="updateConfigurationWithClientWSDDEntry" if="HandlersPresent" unless="runOnly">
<echo file="${axiscpp.conf}" append="true"
message="ClientWSDDFilePath:${client.wsdd}"/>
</target>
<!--
Create start of WSDD File
-->
<target name="createStartOfWSDDFile" if="HandlersPresent">
<property name="client.wsdd" value="${dir.test.generated}/${test.clientLang}/${test.name}/client.wsdd"/>
<copy file="${dir.autotests}/handlers/templ_head.wsdd" tofile="${client.wsdd}" overwrite="true"/>
<replace file="${client.wsdd}" token="XXXX" value="${test.handler.service}"/>
</target>
<!--
Add handler entry into WSDD File
-->
<target name="insertEntriesInWSDDFile" if="successfulHandlerCompilation">
<concat destfile="${client.wsdd}" append="true">
<filelist dir="${dir.autotests}/handlers" files="templ_lib.wsdd"/>
</concat>
<replace file="${client.wsdd}" token="DDDD" value="${dir.test.generated}/${test.clientLang}/${test.name}"/>
<replace file="${client.wsdd}" token="LLLL" value="${handlerLibraryName}"/>
<replace file="${client.wsdd}" token="PPP" value="${libraryPrefix}"/>
<replace file="${client.wsdd}" token="SSS" value="${librarySuffix}"/>
</target>
<!--
Create end of WSDD file
-->
<target name="createEndOfWSDDFile" if="HandlersPresent">
<concat destfile="${client.wsdd}" append="true">
<filelist dir="${dir.autotests}/handlers" files="templ_foot.wsdd"/>
</concat>
</target>
</project>