2015-12-04 12:18:45 +01:00
<?xml version="1.0" encoding="UTF-8"?>
2016-02-27 02:16:50 +01:00
<project name= "Hal" >
2016-02-28 02:10:45 +01:00
2015-12-04 12:18:45 +01:00
<!-- ________________________ PROPERTIES AND SETTINGS ________________________ -->
2016-02-28 02:10:45 +01:00
2015-12-04 12:18:45 +01:00
<!-- common properties -->
<property name= "gitRoot" value= "." />
<property name= "srcDir" value= "${gitRoot}/src" />
<property name= "testDir" value= "${gitRoot}/test" />
<property name= "libDir" value= "${gitRoot}/lib" />
2016-02-28 02:10:45 +01:00
<property name= "buildRoot" value= "${gitRoot}/build" />
2016-02-27 02:16:50 +01:00
<property name= "buildDir" value= "${buildRoot}/production" />
2016-02-28 02:10:45 +01:00
<property name= "buildTestDir" value= "${buildRoot}/test" />
<property name= "releaseDir" value= "${buildRoot}/release" />
<property name= "reportsDir" value= "${buildRoot}/reports" />
2015-12-04 12:18:45 +01:00
<!-- define standard arduments for javac -->
<presetdef name= "javac" >
<javac includeantruntime= "false" />
</presetdef>
2016-02-28 02:10:45 +01:00
2015-12-04 12:18:45 +01:00
<!-- ________________________ CLASSPATHS ________________________ -->
2016-02-28 02:10:45 +01:00
2015-12-04 12:18:45 +01:00
<!-- classpath included when building -->
<path id= "classpath.build" >
2016-02-28 02:23:32 +01:00
<fileset dir= "${libDir}" >
<include name= "**/*.jar" />
</fileset>
2016-02-27 02:16:50 +01:00
<pathelement location= "${buildDir}" />
2015-12-04 12:18:45 +01:00
</path>
2016-02-27 02:16:50 +01:00
2016-02-28 02:10:45 +01:00
<path id= "classpath.test" >
2016-02-27 02:16:50 +01:00
<pathelement location= "${buildTestDir}" />
2016-02-28 02:10:45 +01:00
<!-- include libraries used for building -->
<path refid= "classpath.build" />
</path>
2016-02-27 02:16:50 +01:00
<!-- ________________________ EXECUTION TARGETS ________________________ -->
<target name= "run" depends= "" >
2016-01-11 18:02:45 +01:00
<java fork= "true" failonerror= "true" classname= "se.hal.HalServer" >
2015-12-04 12:18:45 +01:00
<classpath >
<pathelement path= "${buildDir}/hal.jar" /> <!-- wildcard may not be platform independent, ok? -->
<pathelement path= "${libDir}/*" /> <!-- wildcard may not be platform independent, ok? -->
</classpath>
</java>
</target>
2015-12-11 23:19:17 +01:00
2016-02-28 02:10:45 +01:00
<target name= "test" depends= "build-test" >
<mkdir dir= "${reportsDir}" />
<junit printsummary= "yes" haltonfailure= "false" fork= "true" >
<classpath refid= "classpath.test" />
<formatter type= "plain" usefile= "false" /> <!-- to screen -->
<formatter type= "xml" /> <!-- to file -->
2016-02-27 02:16:50 +01:00
2016-02-28 02:29:46 +01:00
<batchtest todir= "${reportsDir}" skipNonTests= "true" >
2016-02-28 02:10:45 +01:00
<fileset dir= "${buildTestDir}" includes= "**/*Test*.class" />
</batchtest>
</junit>
</target>
2016-02-27 02:16:50 +01:00
2016-02-28 02:10:45 +01:00
<!-- ________________________ BUILD TARGETS ________________________ -->
2016-02-27 02:16:50 +01:00
2015-12-04 12:18:45 +01:00
<!-- clean all build paths -->
<target name= "clean" >
<delete includeemptydirs= "true" failonerror= "false" >
2016-02-27 02:16:50 +01:00
<fileset dir= "${buildRoot}" includes= "**/*" />
2015-12-04 12:18:45 +01:00
</delete>
</target>
2016-02-27 02:16:50 +01:00
2015-12-04 12:18:45 +01:00
<!-- build product code -->
2016-02-28 02:10:45 +01:00
<target name= "release" depends= "build" >
<copy file= "${gitRoot}/hal.conf.example" todir= "${releaseDir}" />
<copy file= "${gitRoot}/hal-default.db" todir= "${releaseDir}" />
<copy file= "${gitRoot}/logging.properties" todir= "${releaseDir}" />
<copy file= "${gitRoot}/run.sh" todir= "${releaseDir}" />
<copydir src= "${libDir}" dest= "${releaseDir}/lib"
excludes="junit-*.jar,hamcrest-*.jar" />
<copydir src= "resource/web" dest= "${releaseDir}/resource/web" />
<jar destfile= "${releaseDir}/hal.jar" basedir= "${buildDir}" />
</target>
2016-02-27 02:16:50 +01:00
2015-12-04 12:18:45 +01:00
<target name= "build" depends= "build-dependencies" >
<mkdir dir= "${buildDir}" />
2016-02-03 10:13:39 +01:00
<javac srcdir= "${srcDir}" destdir= "${buildDir}" debug= "yes" debugLevel= "lines,vars,source" fork= "yes" >
2016-02-28 02:10:45 +01:00
<classpath refid= "classpath.build" />
2015-12-04 12:18:45 +01:00
<include name= "**/*.java" />
2016-01-11 17:48:02 +01:00
<exclude name= "se/hal/tts/GoogleTTSClient.java" />
2015-12-04 12:18:45 +01:00
</javac>
2016-02-28 02:10:45 +01:00
<copy todir= "${buildDir}" >
<fileset dir= "${srcDir}"
excludes="**/*.java" />
</copy>
2015-12-04 12:18:45 +01:00
</target>
2016-02-28 02:10:45 +01:00
2015-12-04 12:18:45 +01:00
<target name= "build-dependencies" >
<mkdir dir= "${buildDir}" />
<get src= "http://repo.koc.se/zutil-java.git/blob/master/Zutil.jar" dest= "${libDir}" verbose= "true" usetimestamp= "true" />
</target>
2016-02-27 02:16:50 +01:00
2016-02-28 02:10:45 +01:00
<target name= "build-test" depends= "build" >
<mkdir dir= "${buildTestDir}" />
<javac srcdir= "${testDir}" destdir= "${buildTestDir}" debug= "yes" debugLevel= "lines,vars,source" fork= "yes" >
<classpath refid= "classpath.test" />
<include name= "**/*.java" />
<exclude name= "se/hal/test/JarvisSyntersizerTest.java" />
</javac>
<copy todir= "${buildTestDir}" >
<fileset dir= "${testDir}"
excludes="**/*.java" />
</copy>
</target>
2016-02-27 02:16:50 +01:00
2016-02-28 02:10:45 +01:00
<!-- ________________________ UTILITY TARGETS ________________________ -->
2016-02-27 02:16:50 +01:00
<target name= "clear-aggr-data-from-db" depends= "" >
<exec executable= "sqlite3" >
<arg line= "hal.db 'DELETE FROM sensor_data_aggr'" />
</exec>
<!-- update all internal sensors aggregation version to indicate for peers that they need to re - sync all data -->
<exec executable= "sqlite3" >
<arg line= "hal.db 'UPDATE sensor SET aggr_version = (aggr_version+1) WHERE id = (SELECT sensor.id FROM user, sensor WHERE user.external == 0 AND sensor.user_id = user.id)'" />
</exec>
</target>
2016-02-28 02:10:45 +01:00
2015-12-07 16:47:48 +01:00
</project>