Avro
  1. Avro
  2. AVRO-467

CMake: Complete CMake build system and remove autotools build system

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.3.0
    • Fix Version/s: 1.6.0
    • Component/s: c
    • Labels:

      Description

      Placeholder bug to serve as a parent for all of the various remaining tasks for the CMake build system.

        Activity

        Hide
        Douglas Creager added a comment -

        Committed this to SVN trunk so that it's in place for the 1.6.0 release.

        Show
        Douglas Creager added a comment - Committed this to SVN trunk so that it's in place for the 1.6.0 release.
        Hide
        Douglas Creager added a comment -

        Thanks for the sanity check, Scott, I've removed the reference to the Swanson language. That's what I get for copy/pasting too liberally!

        I also updated the top-level BUILD.txt file to mention cmake instead of the autotools, and put the cmake URL into the C library's INSTALL file.

        Show
        Douglas Creager added a comment - Thanks for the sanity check, Scott, I've removed the reference to the Swanson language. That's what I get for copy/pasting too liberally! I also updated the top-level BUILD.txt file to mention cmake instead of the autotools, and put the cmake URL into the C library's INSTALL file.
        Hide
        Doug Cutting added a comment -

        lang/c/build.sh seems to work correctly for me after applying the patch.

        cmake is already required by the C++ build and is listed in the top-level BUILD.txt as a requirement. We should probably add it to the C requirements there too. I have traditionally used Ubuntu package names in that file, since that's what I install.

        Show
        Doug Cutting added a comment - lang/c/build.sh seems to work correctly for me after applying the patch. cmake is already required by the C++ build and is listed in the top-level BUILD.txt as a requirement. We should probably add it to the C requirements there too. I have traditionally used Ubuntu package names in that file, since that's what I install.
        Hide
        Scott Carey added a comment -

        OK, the patch is applied. My mistake.

        The INSTALL file says

        Building from source
        --------------------

        The swanson language uses cmake as its build manager. In most cases,
        you should be able to build the source code using the following:

        Swanson? That doesn't sound right.

        cd lang/c
        ./build.sh

        Fails – I don't have cmake installed. The README and/or INSTALL in lang/c does not tell me where to get it.
        The BUILD.txt in the root dir also lists improper build requirements for C:

        • C: gcc, autoconf, automake, libtool, asciidoc, source-highlight

        We need to make sure the build instructions and requirements are correct.

        Show
        Scott Carey added a comment - OK, the patch is applied. My mistake. The INSTALL file says Building from source -------------------- The swanson language uses cmake as its build manager. In most cases, you should be able to build the source code using the following: Swanson? That doesn't sound right. cd lang/c ./build.sh Fails – I don't have cmake installed. The README and/or INSTALL in lang/c does not tell me where to get it. The BUILD.txt in the root dir also lists improper build requirements for C: C: gcc, autoconf, automake, libtool, asciidoc, source-highlight We need to make sure the build instructions and requirements are correct.
        Hide
        Douglas Creager added a comment -

        You're using the newer patch file, right? That one works for me on my mac:

        $ cd ~/svn/avro/
        $ patch -p1 --dry-run < 0001-AVRO-467.-C-Switch-from-autotools-to-CMake.patch 
        patching file lang/c/.gitignore
        patching file lang/c/Makefile.am
        patching file lang/c/build.sh
        patching file lang/c/config/.gitignore
        patching file lang/c/configure.in
        patching file lang/c/docs/Makefile.am
        patching file lang/c/examples/Makefile.am
        patching file lang/c/jansson/.gitignore
        patching file lang/c/m4/.gitignore
        patching file lang/c/src/Makefile.am
        patching file lang/c/tests/Makefile.am
        
        Show
        Douglas Creager added a comment - You're using the newer patch file, right? That one works for me on my mac: $ cd ~/svn/avro/ $ patch -p1 --dry-run < 0001-AVRO-467.-C-Switch-from-autotools-to-CMake.patch patching file lang/c/.gitignore patching file lang/c/Makefile.am patching file lang/c/build.sh patching file lang/c/config/.gitignore patching file lang/c/configure.in patching file lang/c/docs/Makefile.am patching file lang/c/examples/Makefile.am patching file lang/c/jansson/.gitignore patching file lang/c/m4/.gitignore patching file lang/c/src/Makefile.am patching file lang/c/tests/Makefile.am
        Hide
        Scott Carey added a comment -

        I'd test the above patch if I knew how to apply it. 'patch' on a mac is confused and I'm checked out with svn. Can you generate a patch that is less git specialized?

        Show
        Scott Carey added a comment - I'd test the above patch if I knew how to apply it. 'patch' on a mac is confused and I'm checked out with svn. Can you generate a patch that is less git specialized?
        Hide
        Douglas Creager added a comment -

        Here's an updated version of the patch that applies to SVN trunk.

        Show
        Douglas Creager added a comment - Here's an updated version of the patch that applies to SVN trunk.
        Hide
        Douglas Creager added a comment -

        Apart from adding some documentation for AVRO-468, I'd argue that we're in a good spot to dump autotools in favor of CMake for 1.6.0.

        Here's a patch that actually removes the autotools files, and updates build.sh to use the CMake scripts. I've verified that running build.sh from within the lang/c directory has the same results as before.

        Show
        Douglas Creager added a comment - Apart from adding some documentation for AVRO-468 , I'd argue that we're in a good spot to dump autotools in favor of CMake for 1.6.0. Here's a patch that actually removes the autotools files, and updates build.sh to use the CMake scripts. I've verified that running build.sh from within the lang/c directory has the same results as before.

          People

          • Assignee:
            Douglas Creager
            Reporter:
            Bruce Mitchener
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development