|  | 
| 312 | 312 |  <macrodef name="dex"> | 
| 313 | 313 |  <attribute name="destfile" default="classes.dex"/> | 
| 314 | 314 |  <attribute name="src"/> | 
| 315 |  | - <attribute name="checkupdated" default="true"/> | 
| 316 | 315 |  <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> | 
| 319 | 328 |  <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}"> | 
| 322 | 331 |  <arg value="--dex"/> | 
| 323 | 332 |  <arg value="--output"/> | 
| 324 | 333 |  <arg value="@{destfile}"/> | 
|  | 
| 371 | 380 |  <attribute name="outputproperty" default=""/> | 
| 372 | 381 |  <attribute name="resultproperty" default=""/> | 
| 373 | 382 |  <attribute name="failonerror" default="true"/> | 
| 374 |  | - <element name="args"/> | 
|  | 383 | + <element name="args" implicit="yes" /> | 
| 375 | 384 |  <sequential> | 
| 376 | 385 |  <echo taskname="adb" message="Running @{command}: @{description}"/> | 
| 377 | 386 |  <exec taskname="adb" executable="${adb.exe}" failonerror="@{failonerror}" | 
|  | 
| 418 | 427 |  <dex src="${dir.test.lib}/android/dexmaker-1.1.jar" destfile="${dir.test.android.dexedLibs}/dexmaker-1.1-dexed.jar"/> | 
| 419 | 428 |  <dex src="${dir.test.lib}/android/dexmaker-mockito-1.1.jar" destfile="${dir.test.android.dexedLibs}/dexmaker-mockito-1.1-dexed.jar"/> | 
| 420 | 429 |  <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"/> | 
| 423 | 433 | 
 | 
| 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"> | 
| 431 | 435 |  <fileset dir="${dir.test.resources}"/> | 
| 432 | 436 |  </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> | 
| 439 | 454 |  </sequential> | 
| 440 | 455 |  </target> | 
| 441 | 456 | 
 | 
|  | 
| 444 | 459 |  <property name="project.app.package" value="uk.co.real_logic.sbe.android.test"/> | 
| 445 | 460 |  <property name="test.runner" value="com.uphyca.testing.JUnit4XMLInstrumentationTestRunner"/> | 
| 446 | 461 |  <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}"/> | 
| 451 | 464 |  </adb> | 
| 452 | 465 |  <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}"/> | 
| 456 | 467 |  </adb> | 
| 457 | 468 |  <!-- trying to get the test-results.xml file from one of the 2 possible locations--> | 
| 458 | 469 |  <!-- /data/data/${project.app.package}/files/test-results.xml --> | 
| 459 | 470 |  <!-- $EXTERNAL_STORAGE/Android/data/uk.co.real_logic.sbe.android.test/files/test-results.xml -->  | 
| 460 | 471 |  <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"/> | 
| 464 | 473 |  </adb> | 
| 465 | 474 |  <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>&1 && 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>&1 && echo true || echo false"/> | 
| 469 | 476 |  </adb> | 
| 470 | 477 |  <property name="test-results" | 
| 471 | 478 |  value="${EXTERNAL_STORAGE}/Android/data/uk.co.real_logic.sbe.android.test/files/test-results.xml" | 
|  | 
| 474 | 481 |  value="/data/data/uk.co.real_logic.sbe.android.test/files/test-results.xml" | 
| 475 | 482 |  unless:true="${FILE_ON_EXTERNAL_STORAGE}"/> | 
| 476 | 483 |  <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}"/> | 
| 480 | 485 |  </adb> | 
| 481 | 486 |  <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"/> | 
| 486 | 489 |  </adb> | 
| 487 | 490 |  <adb command="uninstall"> | 
| 488 |  | - <args> | 
| 489 |  | - <arg value="${project.app.package}"/> | 
| 490 |  | - </args> | 
|  | 491 | + <arg value="${project.app.package}"/> | 
| 491 | 492 |  </adb> | 
| 492 | 493 |  </sequential> | 
| 493 | 494 |  </target> | 
|  | 
| 567 | 568 |  </jar> | 
| 568 | 569 | 
 | 
| 569 | 570 |  <!-- 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"/> | 
| 571 | 572 |  </target> | 
| 572 | 573 | 
 | 
| 573 | 574 |  <target name="android:dist" depends="android:build, android:javadoc" description="Generate the distribution"> | 
|  | 
| 607 | 608 |  </fileset> | 
| 608 | 609 |  </path> | 
| 609 | 610 | 
 | 
|  | 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 | + | 
| 610 | 634 |  <target name="generate:java:sbeir-stubs" | 
| 611 | 635 |  depends="dist" | 
| 612 | 636 |  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"> | 
| 617 | 638 |  <arg value="${dir.main.resources}/sbe-ir.xml"/> | 
| 618 |  | - </java> | 
|  | 639 | + </sbetool> | 
| 619 | 640 |  </target> | 
| 620 | 641 | 
 | 
| 621 | 642 |  <target name="generate:cpp98:sbeir-stubs" | 
| 622 | 643 |  depends="dist" | 
| 623 | 644 |  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"> | 
| 628 | 646 |  <arg value="${dir.main.resources}/sbe-ir.xml"/> | 
| 629 |  | - </java> | 
|  | 647 | + </sbetool> | 
| 630 | 648 |  </target> | 
| 631 | 649 | 
 | 
| 632 | 650 |  <target name="generate:csharp:sbeir-stubs" | 
| 633 | 651 |  depends="dist" | 
| 634 | 652 |  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"> | 
| 640 | 655 |  <arg value="${dir.main.resources}/sbe-ir.xml"/> | 
| 641 |  | - </java> | 
|  | 656 | + </sbetool> | 
| 642 | 657 |  </target> | 
| 643 | 658 | 
 | 
| 644 | 659 |  <target name="generate:sbeir-stubs" | 
|  | 
| 669 | 684 |  depends="dist"> | 
| 670 | 685 |  <mkdir dir="${dir.gen.java}"/> | 
| 671 | 686 |  <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"> | 
| 678 | 689 |  <arg value="${dir.examples.resources}/example-schema.xml"/> | 
| 679 | 690 |  <arg value="${dir.examples.resources}/example-extension-schema.xml"/> | 
| 680 |  | - </java> | 
|  | 691 | + </sbetool> | 
| 681 | 692 |  <javac srcdir="${dir.gen.java}" destdir="${dir.examples.build}" includeAntRuntime="false" debug="true"> | 
| 682 | 693 |  <classpath refid="examples.classpath"/> | 
| 683 | 694 |  </javac> | 
|  | 
| 699 | 710 |  depends="dist" | 
| 700 | 711 |  description="Generate and run C++ generated code example"> | 
| 701 | 712 |  <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"> | 
| 706 | 714 |  <arg value="${dir.examples.resources}/example-schema.xml"/> | 
| 707 |  | - </java> | 
|  | 715 | + </sbetool> | 
| 708 | 716 |  <cc outtype="executable" | 
| 709 | 717 |  debug="true" | 
| 710 | 718 |  subsystem="console" | 
|  | 
| 755 | 763 |  <fileset dir="${dir.main.cpp.build}" includes="*.o*"/> | 
| 756 | 764 |  <fileset dir="${dir.examples.cpp98.src}" includes="SbeOtfDecoder.cpp"/> | 
| 757 | 765 |  </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"> | 
| 763 | 767 |  <arg value="${dir.examples.resources}/example-schema.xml"/> | 
| 764 |  | - </java> | 
|  | 768 | + </sbetool> | 
| 765 | 769 |  <java classname="uk.co.real_logic.sbe.examples.ExampleUsingGeneratedStub" failonerror="true" fork="true"> | 
| 766 | 770 |  <classpath refid="examples.classpath"/> | 
| 767 | 771 |  <sysproperty key="sbe.encoding.filename" value="${dir.gen.cpp98}/Car.data"/> | 
|  | 
| 851 | 855 |  <target name="cpp:test:codegen" depends="dist"> | 
| 852 | 856 |  <sequential> | 
| 853 | 857 |  <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"> | 
| 859 | 859 |  <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"/> | 
| 867 | 860 |  <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"/> | 
| 875 | 861 |  <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}"/> | 
| 877 | 865 |  <copy file="${dir.gen.cpp98}/message-block-length-test.sbeir" todir="${dir.exec.test.cpp}"/> | 
| 878 | 866 |  </sequential> | 
| 879 | 867 |  </target> | 
|  | 
0 commit comments