Skip to content

Commit b523469

Browse files
committed
Merge pull request aeron-io#202 from csoroiu/master
Build file changes
2 parents e96a016 + decf86f commit b523469

File tree

1 file changed

+87
-99
lines changed

1 file changed

+87
-99
lines changed

build.xml

Lines changed: 87 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -312,13 +312,22 @@
312312
<macrodef name="dex">
313313
<attribute name="destfile" default="classes.dex"/>
314314
<attribute name="src"/>
315-
<attribute name="checkupdated" default="true"/>
316315
<sequential>
317-
<local name="updated"/>
318-
<uptodate property="updated" targetfile="@{destfile}" srcfile="@{src}" if:true="@{checkupdated}"/>
316+
<local name="dexuptodate"/>
317+
<local name="isFile"/>
318+
<local name="isDirectory"/>
319+
<available file="@{src}" type="file" property="isFile"/>
320+
<available file="@{src}" type="dir" property="isDirectory"/>
321+
<uptodate property="dexuptodate" srcfile="@{src}" targetfile="@{destfile}" if:true="${isFile}"/>
322+
<uptodate property="dexuptodate" targetfile="@{destfile}" if:true="${isDirectory}">
323+
<srcresources>
324+
<fileset dir="@{src}"/>
325+
<dirset dir="@{src}"/>
326+
</srcresources>
327+
</uptodate>
319328
<echo taskname="dex" message="@{src} -> @{destfile}"/>
320-
<echo taskname="dex" message="@{destfile} already up to date." if:true="${updated}"/>
321-
<java taskname="dex" fork="yes" jar="${dx.jar}" failonerror="true" unless:true="${updated}">
329+
<echo taskname="dex" message="@{destfile} already up to date." if:true="${dexuptodate}"/>
330+
<java taskname="dex" fork="yes" jar="${dx.jar}" failonerror="true" unless:true="${dexuptodate}">
322331
<arg value="--dex"/>
323332
<arg value="--output"/>
324333
<arg value="@{destfile}"/>
@@ -371,7 +380,7 @@
371380
<attribute name="outputproperty" default=""/>
372381
<attribute name="resultproperty" default=""/>
373382
<attribute name="failonerror" default="true"/>
374-
<element name="args"/>
383+
<element name="args" implicit="yes" />
375384
<sequential>
376385
<echo taskname="adb" message="Running @{command}: @{description}"/>
377386
<exec taskname="adb" executable="${adb.exe}" failonerror="@{failonerror}"
@@ -418,24 +427,30 @@
418427
<dex src="${dir.test.lib}/android/dexmaker-1.1.jar" destfile="${dir.test.android.dexedLibs}/dexmaker-1.1-dexed.jar"/>
419428
<dex src="${dir.test.lib}/android/dexmaker-mockito-1.1.jar" destfile="${dir.test.android.dexedLibs}/dexmaker-mockito-1.1-dexed.jar"/>
420429
<dex src="${dir.test.lib}/objenesis-2.1.jar" destfile="${dir.test.android.dexedLibs}/objenesis-2.1-dexed.jar"/>
421-
<dex checkupdated="false" src="${dir.test.android.build}" destfile="${dir.test.android.dexedLibs}/sbe-test-dexed.jar"/>
422-
<dex checkupdated="false" src="${dir.main.android.build}" destfile="${dir.test.android.dexedLibs}/sbe-main-dexed.jar"/>
430+
<dex src="${dir.test.android.build}" destfile="${dir.test.android.dexedLibs}/sbe-test-dexed.jar"/>
431+
<dex src="${dir.main.android.build}" destfile="${dir.test.android.dexedLibs}/sbe-main-dexed.jar"/>
432+
<dex src="${dir.test.android.dexedLibs}" destfile="${dir.test.android.testpackage}/classes.dex"/>
423433

424-
<local name="dexedLibsSet"/>
425-
<local name="dexedLibsString"/>
426-
<fileset id="dexedLibsSet" dir="${dir.test.android.dexedLibs}" />
427-
<pathconvert pathsep=" " property="dexedLibsString" refid="dexedLibsSet"/>
428-
<dex checkupdated="false" src="${dexedLibsString}" destfile="${dir.test.android.testpackage}/classes.dex"/>
429-
430-
<copy todir="${dir.test.android.testpackage}" failonerror="true">
434+
<copy todir="${dir.test.android.testpackage}" failonerror="true" preservelastmodified="true">
431435
<fileset dir="${dir.test.resources}"/>
432436
</copy>
433-
<aapt apk="${file.test.android.testapk.unsigned}"
434-
srcdir="${dir.test.android.testpackage}"/>
435-
<signjar keystore="${file.test.android.debugkey}" storepass="android" alias="androiddebugkey"
436-
jar="${file.test.android.testapk.unsigned}" signedjar="${file.test.android.testapk.signed}"
437-
verbose="true" sigalg="SHA1withRSA" digestalg="SHA1"/>
438-
<zipalign srcfile="${file.test.android.testapk.signed}" destfile="${file.test.android.testapk.final}"/>
437+
<local name="apkuptodate"/>
438+
<uptodate property="apkuptodate" targetfile="${file.test.android.testapk.final}">
439+
<srcresources>
440+
<fileset file="${file.test.android.manifest}"/>
441+
<fileset dir="${dir.test.android.testpackage}"/>
442+
<dirset dir="${dir.test.android.testpackage}"/>
443+
</srcresources>
444+
</uptodate>
445+
<echo message="${file.test.android.testapk.final} already up to date." if:true="${apkuptodate}"/>
446+
<sequential unless:true="${apkuptodate}">
447+
<aapt apk="${file.test.android.testapk.unsigned}"
448+
srcdir="${dir.test.android.testpackage}"/>
449+
<signjar keystore="${file.test.android.debugkey}" storepass="android" alias="androiddebugkey"
450+
jar="${file.test.android.testapk.unsigned}" signedjar="${file.test.android.testapk.signed}"
451+
verbose="true" sigalg="SHA1withRSA" digestalg="SHA1" preservelastmodified="true"/>
452+
<zipalign srcfile="${file.test.android.testapk.signed}" destfile="${file.test.android.testapk.final}"/>
453+
</sequential>
439454
</sequential>
440455
</target>
441456

@@ -444,28 +459,20 @@
444459
<property name="project.app.package" value="uk.co.real_logic.sbe.android.test"/>
445460
<property name="test.runner" value="com.uphyca.testing.JUnit4XMLInstrumentationTestRunner"/>
446461
<adb command="install">
447-
<args>
448-
<arg value="-r"/>
449-
<arg path="${file.test.android.testapk.final}"/>
450-
</args>
462+
<arg value="-r"/>
463+
<arg path="${file.test.android.testapk.final}"/>
451464
</adb>
452465
<adb command="shell" description="Running tests">
453-
<args>
454-
<arg line="am instrument -w -e xml true ${project.app.package}/${test.runner}"/>
455-
</args>
466+
<arg line="am instrument -w -e xml true ${project.app.package}/${test.runner}"/>
456467
</adb>
457468
<!-- trying to get the test-results.xml file from one of the 2 possible locations-->
458469
<!-- /data/data/${project.app.package}/files/test-results.xml -->
459470
<!-- $EXTERNAL_STORAGE/Android/data/uk.co.real_logic.sbe.android.test/files/test-results.xml -->
460471
<adb command="shell" outputproperty="EXTERNAL_STORAGE" description="Get EXTERNAL_STORAGE property value">
461-
<args>
462-
<arg line="echo $EXTERNAL_STORAGE"/>
463-
</args>
472+
<arg line="echo $EXTERNAL_STORAGE"/>
464473
</adb>
465474
<adb command="shell" outputproperty="FILE_ON_EXTERNAL_STORAGE" description="Check if test-results.xml file is present on the external storage">
466-
<args>
467-
<arg line="ls ${EXTERNAL_STORAGE}/Android/data/uk.co.real_logic.sbe.android.test/files/test-results.xml >/dev/null 2>&amp;1 &amp;&amp; echo true || echo false"/>
468-
</args>
475+
<arg line="ls ${EXTERNAL_STORAGE}/Android/data/uk.co.real_logic.sbe.android.test/files/test-results.xml >/dev/null 2>&amp;1 &amp;&amp; echo true || echo false"/>
469476
</adb>
470477
<property name="test-results"
471478
value="${EXTERNAL_STORAGE}/Android/data/uk.co.real_logic.sbe.android.test/files/test-results.xml"
@@ -474,20 +481,14 @@
474481
value="/data/data/uk.co.real_logic.sbe.android.test/files/test-results.xml"
475482
unless:true="${FILE_ON_EXTERNAL_STORAGE}"/>
476483
<adb command="shell">
477-
<args>
478-
<arg line="run-as ${project.app.package} chmod 644 ${test-results}"/>
479-
</args>
484+
<arg line="run-as ${project.app.package} chmod 644 ${test-results}"/>
480485
</adb>
481486
<adb command="pull" description="Pulling the test results from: ${test-results}">
482-
<args>
483-
<arg value="${test-results}"/>
484-
<arg path="${dir.reports.android.unit}/test-results.xml"/>
485-
</args>
487+
<arg value="${test-results}"/>
488+
<arg path="${dir.reports.android.unit}/test-results.xml"/>
486489
</adb>
487490
<adb command="uninstall">
488-
<args>
489-
<arg value="${project.app.package}"/>
490-
</args>
491+
<arg value="${project.app.package}"/>
491492
</adb>
492493
</sequential>
493494
</target>
@@ -567,7 +568,7 @@
567568
</jar>
568569

569570
<!-- Copying SbeTool to a constant name (without timestamp and version number, which makes life easier for other builds..) -->
570-
<copy file="${jar}" tofile="${dir.dist}/sbe.jar"/>
571+
<copy file="${jar}" tofile="${dir.dist}/sbe.jar" preservelastmodified="true"/>
571572
</target>
572573

573574
<target name="android:dist" depends="android:build, android:javadoc" description="Generate the distribution">
@@ -607,38 +608,52 @@
607608
</fileset>
608609
</path>
609610

611+
<macrodef name="sbetool">
612+
<attribute name="outputdir"/>
613+
<attribute name="targetlanguage" default=""/>
614+
<attribute name="targetnamespace" default=""/>
615+
<attribute name="generatestubs" default=""/>
616+
<attribute name="generateir" default=""/>
617+
<attribute name="validationxsd" default=""/>
618+
<attribute name="stoponerror" default=""/>
619+
<element name="schemafiles" implicit="yes"/>
620+
<sequential>
621+
<java jar="${jar}" failonerror="true" fork="true">
622+
<sysproperty key="sbe.output.dir" value="@{outputdir}"/>
623+
<sysproperty key="sbe.target.language" value="@{targetlanguage}" unless:blank="@{targetlanguage}"/>
624+
<sysproperty key="sbe.target.namespace" value="@{targetnamespace}" unless:blank="@{targetnamespace}"/>
625+
<sysproperty key="sbe.generate.stubs" value="@{generatestubs}" unless:blank="@{generatestubs}"/>
626+
<sysproperty key="sbe.generate.ir" value="@{generateir}" unless:blank="@{generateir}"/>
627+
<sysproperty key="sbe.validation.xsd" value="@{validationxsd}" unless:blank="@{validationxsd}"/>
628+
<sysproperty key="sbe.validation.stop.on.error" value="@{stoponerror}" unless:blank="@{stoponerror}"/>
629+
<schemafiles/>
630+
</java>
631+
</sequential>
632+
</macrodef>
633+
610634
<target name="generate:java:sbeir-stubs"
611635
depends="dist"
612636
description="Generate serialized IR stubs for Java">
613-
<java classname="uk.co.real_logic.sbe.SbeTool" failonerror="true" fork="true">
614-
<classpath refid="sbetool.classpath"/>
615-
<sysproperty key="sbe.output.dir" value="${dir.main.src}"/>
616-
<sysproperty key="sbe.target.language" value="Java"/>
637+
<sbetool outputdir="${dir.main.src}" targetlanguage="Java">
617638
<arg value="${dir.main.resources}/sbe-ir.xml"/>
618-
</java>
639+
</sbetool>
619640
</target>
620641

621642
<target name="generate:cpp98:sbeir-stubs"
622643
depends="dist"
623644
description="Generate serialized IR stubs for C++98">
624-
<java classname="uk.co.real_logic.sbe.SbeTool" failonerror="true" fork="true">
625-
<classpath refid="sbetool.classpath"/>
626-
<sysproperty key="sbe.output.dir" value="${dir.main.cpp.src}"/>
627-
<sysproperty key="sbe.target.language" value="cpp98"/>
645+
<sbetool outputdir="${dir.main.cpp.src}" targetlanguage="cpp98">
628646
<arg value="${dir.main.resources}/sbe-ir.xml"/>
629-
</java>
647+
</sbetool>
630648
</target>
631649

632650
<target name="generate:csharp:sbeir-stubs"
633651
depends="dist"
634652
description="Generate serialized IR stubs for C#">
635-
<java classname="uk.co.real_logic.sbe.SbeTool" failonerror="true" fork="true">
636-
<classpath refid="sbetool.classpath"/>
637-
<sysproperty key="sbe.output.dir" value="${dir.main.csharp.src}"/>
638-
<sysproperty key="sbe.target.language" value="csharp"/>
639-
<sysproperty key="sbe.target.namespace" value="Adaptive.SimpleBinaryEncoding.Ir.Generated"/>
653+
<sbetool outputdir="${dir.main.csharp.src}" targetlanguage="csharp"
654+
targetnamespace="Adaptive.SimpleBinaryEncoding.Ir.Generated">
640655
<arg value="${dir.main.resources}/sbe-ir.xml"/>
641-
</java>
656+
</sbetool>
642657
</target>
643658

644659
<target name="generate:sbeir-stubs"
@@ -669,15 +684,11 @@
669684
depends="dist">
670685
<mkdir dir="${dir.gen.java}"/>
671686
<mkdir dir="${dir.examples.build}"/>
672-
<java classname="uk.co.real_logic.sbe.SbeTool" failonerror="true" fork="true">
673-
<classpath refid="examples.classpath"/>
674-
<sysproperty key="sbe.validation.xsd" value="main/resources/fpl/SimpleBinary1-0.xsd"/>
675-
<sysproperty key="sbe.validation.stop.on.error" value="true"/>
676-
<sysproperty key="sbe.output.dir" value="${dir.gen.java}"/>
677-
<sysproperty key="sbe.target.language" value="Java"/>
687+
<sbetool outputdir="${dir.gen.java}" targetlanguage="Java" stoponerror="true"
688+
validationxsd="main/resources/fpl/SimpleBinary1-0.xsd">
678689
<arg value="${dir.examples.resources}/example-schema.xml"/>
679690
<arg value="${dir.examples.resources}/example-extension-schema.xml"/>
680-
</java>
691+
</sbetool>
681692
<javac srcdir="${dir.gen.java}" destdir="${dir.examples.build}" includeAntRuntime="false" debug="true">
682693
<classpath refid="examples.classpath"/>
683694
</javac>
@@ -699,12 +710,9 @@
699710
depends="dist"
700711
description="Generate and run C++ generated code example">
701712
<mkdir dir="${dir.gen.cpp98}"/>
702-
<java classname="uk.co.real_logic.sbe.SbeTool" failonerror="true" fork="true">
703-
<classpath refid="examples.classpath"/>
704-
<sysproperty key="sbe.output.dir" value="${dir.gen.cpp98}"/>
705-
<sysproperty key="sbe.target.language" value="cpp98"/>
713+
<sbetool outputdir="${dir.gen.cpp98}" targetlanguage="cpp98">
706714
<arg value="${dir.examples.resources}/example-schema.xml"/>
707-
</java>
715+
</sbetool>
708716
<cc outtype="executable"
709717
debug="true"
710718
subsystem="console"
@@ -755,13 +763,9 @@
755763
<fileset dir="${dir.main.cpp.build}" includes="*.o*"/>
756764
<fileset dir="${dir.examples.cpp98.src}" includes="SbeOtfDecoder.cpp"/>
757765
</cc>
758-
<java classname="uk.co.real_logic.sbe.SbeTool" failonerror="true" fork="true">
759-
<classpath refid="examples.classpath"/>
760-
<sysproperty key="sbe.output.dir" value="${dir.gen.cpp98}"/>
761-
<sysproperty key="sbe.generate.stubs" value="false"/>
762-
<sysproperty key="sbe.generate.ir" value="true"/>
766+
<sbetool outputdir="${dir.gen.cpp98}" generatestubs="false" generateir="true">
763767
<arg value="${dir.examples.resources}/example-schema.xml"/>
764-
</java>
768+
</sbetool>
765769
<java classname="uk.co.real_logic.sbe.examples.ExampleUsingGeneratedStub" failonerror="true" fork="true">
766770
<classpath refid="examples.classpath"/>
767771
<sysproperty key="sbe.encoding.filename" value="${dir.gen.cpp98}/Car.data"/>
@@ -851,29 +855,13 @@
851855
<target name="cpp:test:codegen" depends="dist">
852856
<sequential>
853857
<mkdir dir="${dir.gen.cpp98}"/>
854-
<java classname="uk.co.real_logic.sbe.SbeTool" failonerror="true" fork="true">
855-
<classpath refid="examples.classpath"/>
856-
<sysproperty key="sbe.output.dir" value="${dir.gen.cpp98}"/>
857-
<sysproperty key="sbe.target.language" value="cpp98"/>
858-
<sysproperty key="sbe.generate.ir" value="true"/>
858+
<sbetool outputdir="${dir.gen.cpp98}" targetlanguage="cpp98" generateir="true">
859859
<arg value="${dir.test.resources}/code-generation-schema-cpp.xml"/>
860-
</java>
861-
<copy file="${dir.gen.cpp98}/code-generation-schema-cpp.sbeir" todir="${dir.exec.test.cpp}"/>
862-
<java classname="uk.co.real_logic.sbe.SbeTool" failonerror="true" fork="true">
863-
<classpath refid="examples.classpath"/>
864-
<sysproperty key="sbe.output.dir" value="${dir.gen.cpp98}"/>
865-
<sysproperty key="sbe.target.language" value="cpp98"/>
866-
<sysproperty key="sbe.generate.ir" value="true"/>
867860
<arg value="${dir.test.resources}/composite-offsets-schema.xml"/>
868-
</java>
869-
<copy file="${dir.gen.cpp98}/composite-offsets-schema.sbeir" todir="${dir.exec.test.cpp}"/>
870-
<java classname="uk.co.real_logic.sbe.SbeTool" failonerror="true" fork="true">
871-
<classpath refid="examples.classpath"/>
872-
<sysproperty key="sbe.output.dir" value="${dir.gen.cpp98}"/>
873-
<sysproperty key="sbe.target.language" value="cpp98"/>
874-
<sysproperty key="sbe.generate.ir" value="true"/>
875861
<arg value="${dir.test.resources}/message-block-length-test.xml"/>
876-
</java>
862+
</sbetool>
863+
<copy file="${dir.gen.cpp98}/code-generation-schema-cpp.sbeir" todir="${dir.exec.test.cpp}"/>
864+
<copy file="${dir.gen.cpp98}/composite-offsets-schema.sbeir" todir="${dir.exec.test.cpp}"/>
877865
<copy file="${dir.gen.cpp98}/message-block-length-test.sbeir" todir="${dir.exec.test.cpp}"/>
878866
</sequential>
879867
</target>

0 commit comments

Comments
 (0)