<?xml version="1.0" encoding="UTF-8"?>
<!--
	ANT
	
	Copyright 2018-2023 IS2T. All rights reserved.
	Modification and distribution is permitted under certain conditions.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

<project name="heapDumper" default="run">

		
	<fail unless="platform.dir"/>
	<property name="scripts.dir" value="${platform.dir}/scripts"/>
	<property name="tools.dir" location="${platform.dir}/tools"/>
	
	<fail unless="output.name"/>
	<fail unless="output.dir"/>
	<fail unless="application.filename"/>
	<fail unless="additional.application.filenames"/>
	<fail unless="heap.filename"/>
		
	<import file="${scripts.dir}/activity.xml"/>
	<import file="${scripts.dir}/heapDumperPathDefinition.xml"/>

	<loadproperties srcfile="${platform.dir}/scripts/core.properties"/>
	<fail unless="arch.symbol.prefix"/>
	

	<taskdef name="heapDumper" classname="com.is2t.tool.heap.dumper.HeapDumperTask" classpathref="heapDumper.classpath.path"/>

	<target name="init">	
		<start.activity
			activity.id="heapDumper"
			message="Heap Dumper"
		/>
		<mkdir dir="${output.dir}"/>
	</target>
	
	<target name="heapDumper/run" depends="init">
		<condition property="heapDumper.verbose.level" value="9" else="1">
			<isset property="execution.verbose"/>
		</condition>
		<property name="object.headers.validation.file" value=""/>
		<property name="heap.first.address" value=""/>
		<property name="heap.dump.memory.representation" value="false"/>
		<property name="additional.memory.filenames" value=""/>
		<heapDumper 
			applicationFile="${application.filename}" 
			additionalApplicationFiles="${additional.application.filenames}" 
			additionalMemoryFiles="${additional.memory.filenames}" 
			memoryHeapFile="${heap.filename}" 
			outputDir="${output.dir}" 
			outputName="${output.name}"
			endianness="${arch.endianness}"
			verboseLevel="${heapDumper.verbose.level}"
			objectHeadersValidationFile="${object.headers.validation.file}"
			firstObjectAddress="${heap.first.address}"
			symbolPrefix="${arch.symbol.prefix}"
			dumpHeapMemoryFile="${heap.dump.memory.representation}"
		/>		
	</target>
	
	<target name="clean" if="clean.extrafiles">
	</target>

	<target name="run" depends="heapDumper/run,clean"/>

</project>