Tuscany
  1. Tuscany
  2. TUSCANY-1438

Change TuscanySCA Native build system to use ant

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: C++-SCA-Next
    • Fix Version/s: None
    • Component/s: C++ SCA
    • Labels:
      None
    • Environment:
      all platforms
    • Patch Info:
      Patch Available

      Description

      In an effort to simplify the build process, I would like to propose switching over to use ant instead of automake. It will be much easier to maintain, and is used by many more developers today than automake.

      Per a request by Pete Robbins to show what the build scripts would look like for cpp/sca/runtime/core, I will attach a patch with the build infrastructure to build, link, and install said library.

      --------------------
      Brady Johnson
      Lead Software Developer - HydraSCA
      Rogue Wave Software - brady.johnson@roguewave.com

      1. tuscany_patch_update10_jira1438.corrected
        5 kB
        Brady Johnson
      2. tuscany_patch_update10_jira1438
        5 kB
        Brady Johnson
      3. tuscany_patch_update9_jira1438
        16 kB
        Brady Johnson
      4. README_ANT_INSTALL.txt
        2 kB
        Brady Johnson
      5. tuscany_patch_update8_jira1438
        10 kB
        Brady Johnson
      6. tuscany_patch_update7_jira1438
        14 kB
        Brady Johnson
      7. samples.CppBigBank.build.xml
        8 kB
        Brady Johnson
      8. TuscanySCANative.ant.display.system
        4 kB
        Brady Johnson
      9. tuscany_patch_update6_jira1438
        48 kB
        Brady Johnson
      10. tuscany_patch_update5_jira1438
        17 kB
        Brady Johnson
      11. tuscany_patch_update4_jira1438
        37 kB
        Brady Johnson
      12. tuscany_patch_update3_jira1438
        66 kB
        Brady Johnson
      13. tuscany_patch_update2_jira1438
        26 kB
        Brady Johnson
      14. tuscanySCAnative_ant_update1.tar.gz
        4 kB
        Brady Johnson
      15. tuscanySCAnative_ant.tar.gz
        3 kB
        Brady Johnson

        Activity

        Hide
        Jean-Sebastien Delfino added a comment -

        Closing resolved issues.

        Show
        Jean-Sebastien Delfino added a comment - Closing resolved issues.
        Hide
        Brady Johnson added a comment -

        I think enough patches have been applied to warrant resolving this issue.

        Any additional issues related to the ant build system should be dealt with in new JIRAs.

        --------------------
        Brady Johnson
        Lead Software Developer - HydraSCA
        Rogue Wave Software - brady.johnson@roguewave.com

        Show
        Brady Johnson added a comment - I think enough patches have been applied to warrant resolving this issue. Any additional issues related to the ant build system should be dealt with in new JIRAs. -------------------- Brady Johnson Lead Software Developer - HydraSCA Rogue Wave Software - brady.johnson@roguewave.com
        Hide
        Brady Johnson added a comment -

        Uploading corrected patch made from the latest trunk version.

        Show
        Brady Johnson added a comment - Uploading corrected patch made from the latest trunk version.
        Hide
        Adriano Crestani added a comment -

        The patch tuscany_patch_update10_jira1438 seems to be generated from a old trunk version, somehow my tortoiseSVN is reporting "The patch seems outdated".

        Regards,
        Adriano Crestani

        Show
        Adriano Crestani added a comment - The patch tuscany_patch_update10_jira1438 seems to be generated from a old trunk version, somehow my tortoiseSVN is reporting "The patch seems outdated". Regards, Adriano Crestani
        Hide
        Brady Johnson added a comment -

        Uploading patch with the following changes:

        • Added new wsdl xsd's to core/build.xml
        • Added possibility to specify the sdo implementation library name to be able to link against
          SDO implementations other than Tuscany.
        • extending the base linker is not working well on Linux with syslibset, so I moved the dl lib to the g++ linker

        --------------------
        Brady Johnson
        Lead Software Developer - HydraSCA
        Rogue Wave Software - brady.johnson@roguewave.com

        Show
        Brady Johnson added a comment - Uploading patch with the following changes: Added new wsdl xsd's to core/build.xml Added possibility to specify the sdo implementation library name to be able to link against SDO implementations other than Tuscany. extending the base linker is not working well on Linux with syslibset, so I moved the dl lib to the g++ linker -------------------- Brady Johnson Lead Software Developer - HydraSCA Rogue Wave Software - brady.johnson@roguewave.com
        Hide
        Brady Johnson added a comment -

        Adding the ability to compile in debug mode. Debug is turned on by one of the following:

        • ant -Ddebug=true # true, on, yes turns on debug, anything else turns it off
        • set platform.properties platform.debug.compile property to true, on, or yes

        Adding ability to specify additional ant targets/definitions, which would be useful for
        defining more compilers/linkers for compiling on additional platforms. Just set the
        platform.properties platform.external.definitions.file property to the path of the
        external definitions file.

        --------------------
        Brady Johnson
        Lead Software Developer - HydraSCA
        Rogue Wave Software - brady.johnson@roguewave.com

        Show
        Brady Johnson added a comment - Adding the ability to compile in debug mode. Debug is turned on by one of the following: ant -Ddebug=true # true, on, yes turns on debug, anything else turns it off set platform.properties platform.debug.compile property to true, on, or yes Adding ability to specify additional ant targets/definitions, which would be useful for defining more compilers/linkers for compiling on additional platforms. Just set the platform.properties platform.external.definitions.file property to the path of the external definitions file. -------------------- Brady Johnson Lead Software Developer - HydraSCA Rogue Wave Software - brady.johnson@roguewave.com
        Hide
        Brady Johnson added a comment -

        Uploading a README that explains how to install ANT to compile Tuscany.

        Show
        Brady Johnson added a comment - Uploading a README that explains how to install ANT to compile Tuscany.
        Hide
        Brady Johnson added a comment -

        Added macro cpp-clean-lib to compile-targets.xml which takes care of deleting
        on unix and windows. For windows it deletes both bin/<library>.dll and lib/<library>.dll
        and on unix, it just deletes lib/<library>.$

        {lib.ext}
        Show
        Brady Johnson added a comment - Added macro cpp-clean-lib to compile-targets.xml which takes care of deleting on unix and windows. For windows it deletes both bin/<library>.dll and lib/<library>.dll and on unix, it just deletes lib/<library>.$ {lib.ext}
        Hide
        Brady Johnson added a comment -

        Uploading patch 7 which includes the following:

        • scagen.jar is now built/installed/cleaned when the cpp extension is built. So it will be
          built/installed/cleaned when corresponding ant targets are executed from the tuscany root dir.
        • Fixed formatting issues with the cpp/tools/scagen/build.xml build file.

        --------------------
        Brady Johnson
        Lead Software Developer - HydraSCA
        Rogue Wave Software - brady.johnson@roguewave.com

        Show
        Brady Johnson added a comment - Uploading patch 7 which includes the following: scagen.jar is now built/installed/cleaned when the cpp extension is built. So it will be built/installed/cleaned when corresponding ant targets are executed from the tuscany root dir. Fixed formatting issues with the cpp/tools/scagen/build.xml build file. -------------------- Brady Johnson Lead Software Developer - HydraSCA Rogue Wave Software - brady.johnson@roguewave.com
        Hide
        Brady Johnson added a comment -

        Uploading the build.xml file for the CppBigBank sample

        Show
        Brady Johnson added a comment - Uploading the build.xml file for the CppBigBank sample
        Hide
        Brady Johnson added a comment -

        Attaching a utility target to display all system properties.

        Show
        Brady Johnson added a comment - Attaching a utility target to display all system properties.
        Hide
        Brady Johnson added a comment -

        Uploading patch update 6 which includes the following:

        • compile_targets.xml added <cpp-install-lib/> which calls <cpp-install-file/>.
          This fixes the case for windows where *.lib needs to go in lib/ and *.dll in bin/
        • system.xml added targets:
          <check.ws/>, <check.php/>, <check.python/>, <check.rest/>, <check.ruby/>
          These are called by the extension compile, link, and install targets to check
          if the respective extensions have been enabled.
        • Added export definitions for Windows extension compilations.
        • Added dependant libraries to extension link targets.
        Show
        Brady Johnson added a comment - Uploading patch update 6 which includes the following: compile_targets.xml added <cpp-install-lib/> which calls <cpp-install-file/>. This fixes the case for windows where *.lib needs to go in lib/ and *.dll in bin/ system.xml added targets: <check.ws/>, <check.php/>, <check.python/>, <check.rest/>, <check.ruby/> These are called by the extension compile, link, and install targets to check if the respective extensions have been enabled. Added export definitions for Windows extension compilations. Added dependant libraries to extension link targets.
        Hide
        Brady Johnson added a comment -

        Uploading patch update 5 which includes:

        • runtime/extensions/php/build.xml
        • minor change to php code so that it compiles
        • compile-targets.xml added cpp-link-core which does not link in the tuscany_sca lib and changed cpp-link so that it does link it in.
        Show
        Brady Johnson added a comment - Uploading patch update 5 which includes: runtime/extensions/php/build.xml minor change to php code so that it compiles compile-targets.xml added cpp-link-core which does not link in the tuscany_sca lib and changed cpp-link so that it does link it in.
        Hide
        Brady Johnson added a comment -

        Attaching update4 which includes the following new build.xml files:

        • runtime/extensions/python
        • runtime/extensions/rest
        • runtime/extensions/ruby

        I'm working on php (which is the only one left for the source code) now, but its giving me
        problems, so it might take a while.

        --------------------
        Brady Johnson
        Lead Software Developer - HydraSCA
        Rogue Wave Software - brady.johnson@roguewave.com

        Show
        Brady Johnson added a comment - Attaching update4 which includes the following new build.xml files: runtime/extensions/python runtime/extensions/rest runtime/extensions/ruby I'm working on php (which is the only one left for the source code) now, but its giving me problems, so it might take a while. -------------------- Brady Johnson Lead Software Developer - HydraSCA Rogue Wave Software - brady.johnson@roguewave.com
        Hide
        Brady Johnson added a comment -

        Updating patch that includes the following changes:

        • added build.xml for the following dirs:
          runtime/extensions/build.xml
          runtime/extensions/cpp/build.xml
          runtime/extensions/sca/build.xml
          runtime/extensions/ws/build.xml
        • changed system.xml to check for necessary axis, php, python, rest, and ruby env vars. if they're not
          set in the env, look for them in platform.properties
        • changed compile-targets.xml targets
          <cpp-install-headers/> to <cpp-install-files/>
          <cpp-install-lib/> to <cpp-install-file/>
        • added compile-targets.xml target: <cpp-symlink/>
        Show
        Brady Johnson added a comment - Updating patch that includes the following changes: added build.xml for the following dirs: runtime/extensions/build.xml runtime/extensions/cpp/build.xml runtime/extensions/sca/build.xml runtime/extensions/ws/build.xml changed system.xml to check for necessary axis, php, python, rest, and ruby env vars. if they're not set in the env, look for them in platform.properties changed compile-targets.xml targets <cpp-install-headers/> to <cpp-install-files/> <cpp-install-lib/> to <cpp-install-file/> added compile-targets.xml target: <cpp-symlink/>
        Hide
        Brady Johnson added a comment -

        Pete Robbins has added the necessary ant build files to the svn repository.

        Following is a description of this upload that goes on top of what he added:

        Changed the name of compilers.xml to system.xml.

        This update has better support for a platform.properties file that is completely empty. That is,
        all of the platform dependent items are figured out by ant. If they are set in the platform.properties
        file then they override the ant determination.

        Better directory path management has been added to the root build.xml and runtime/core/src/build.xml
        files.

        The install and clean targets in runtime/core/src have been completed.

        Following is a nice way to test the build files.

        cd <tuscany root dir>
        ant
        <now verify deploy/lib and deploy/include>
        cd runtime/core/src
        ant clean
        <now verify .libs, deploy/lib, and deploy/include/tuscany are empty>
        ant
        <now verify deploy/lib and deploy/include>
        cd <tuscany root dir>
        ant clean
        <do same clean verification>

        Show
        Brady Johnson added a comment - Pete Robbins has added the necessary ant build files to the svn repository. Following is a description of this upload that goes on top of what he added: Changed the name of compilers.xml to system.xml. This update has better support for a platform.properties file that is completely empty. That is, all of the platform dependent items are figured out by ant. If they are set in the platform.properties file then they override the ant determination. Better directory path management has been added to the root build.xml and runtime/core/src/build.xml files. The install and clean targets in runtime/core/src have been completed. Following is a nice way to test the build files. cd <tuscany root dir> ant <now verify deploy/lib and deploy/include> cd runtime/core/src ant clean <now verify .libs, deploy/lib, and deploy/include/tuscany are empty> ant <now verify deploy/lib and deploy/include> cd <tuscany root dir> ant clean <do same clean verification>
        Hide
        Brady Johnson added a comment -

        This version has fixes to work on windows.

        Show
        Brady Johnson added a comment - This version has fixes to work on windows.
        Hide
        Brady Johnson added a comment -

        The attached tar.gz file should just "overlay" onto the tuscany SCA cpp source code directory structure. It consists of the following files:

        <tuscanySca Native Src dir>/

        ---- build.xml
        ---- antscripts/
         
          ---- compilers.xml
          ---- compile-targets.xml
          ---- platform.properties
        ---- runtime/core/src/build.xml

        In order to use it, you will need to modify the platform.properties file. This will later be taken care of by either configure, or maybe just an install script.

        Currently it compiles and links runtime/core/src/tuscany/sca

        {core, extension, model, util}

        and creates libtuscany_sca.so. The install target installs the lib and the headers from those src directories to the install directory specified in platform.properties.

        Show
        Brady Johnson added a comment - The attached tar.gz file should just "overlay" onto the tuscany SCA cpp source code directory structure. It consists of the following files: <tuscanySca Native Src dir>/ ---- build.xml ---- antscripts/     ---- compilers.xml   ---- compile-targets.xml   ---- platform.properties ---- runtime/core/src/build.xml In order to use it, you will need to modify the platform.properties file. This will later be taken care of by either configure, or maybe just an install script. Currently it compiles and links runtime/core/src/tuscany/sca {core, extension, model, util} and creates libtuscany_sca.so. The install target installs the lib and the headers from those src directories to the install directory specified in platform.properties.

          People

          • Assignee:
            Unassigned
            Reporter:
            Brady Johnson
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development