Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-3231

use pkg-config to link against thirdparty dependencies

    XMLWordPrintable

    Details

    • Type: Story
    • Status: Won't Fix
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: Continuous Integration
    • Labels:
      None

      Description

      A number of the third-party dependencies provide a .pc file which is installed as part of the standard eupspkg build. While not all of these are linked against directly (some are deps of deps), this appears to be reasonable place to start an incremental conversion from sconsUtils .cfg -> pkg-config.

      .pc files which are already present:

      ./Linux64/cfitsio/3360.lsst1/lib/pkgconfig/cfitsio.pc
      ./Linux64/wcslib/4.14+7/lib/pkgconfig/wcslib.pc
      ./Linux64/apr/1.3.3.lsst2/lib/pkgconfig/apr-1.pc
      ./Linux64/libevent/2.0.16-stable-1-g7e53c5e/lib/pkgconfig/libevent.pc
      ./Linux64/libevent/2.0.16-stable-1-g7e53c5e/lib/pkgconfig/libevent_pthreads.pc
      ./Linux64/libevent/2.0.16-stable-1-g7e53c5e/lib/pkgconfig/libevent_openssl.pc
      ./Linux64/fftw/3.3.3/lib/pkgconfig/fftw3.pc
      ./Linux64/anaconda/2.2.0/lib/pkgconfig/cairo-fc.pc
      ...
      ./Linux64/anaconda/2.2.0/lib/pkgconfig/zlib.pc
      ./Linux64/gsl/1.16.lsst1/lib/pkgconfig/gsl.pc
      ./Linux64/apr_util/1.3.4.lsst2/lib/pkgconfig/apr-util-1.pc
      ./Linux64/mysqlproxy/0.8.2+7/lib/pkgconfig/mysql-proxy.pc
      ./Linux64/mysqlproxy/0.8.2+7/lib/pkgconfig/mysql-chassis.pc
      ./Linux64/log4cxx/0.10.0.lsst3/lib/pkgconfig/liblog4cxx.pc
      ./Linux64/protobuf/2.4.1.lsst1+3/lib/pkgconfig/protobuf.pc
      ./Linux64/protobuf/2.4.1.lsst1+3/lib/pkgconfig/protobuf-lite.pc
      ./Linux64/activemqcpp/10.1/lib/pkgconfig/activemq-cpp.pc
      

      The `pkgconfig` package will need to be added to the system deps list. It should be generally present on any linux distro. We should double check that this is also the case with homebrew.

      `pkg-config` uses `$PKG_CONFIG_PATH to search for .pc files. A snippet similar to the following will need to be added to the .table files for eups products which provide a .pc.

      envPrepend(PKG_CONFIG_PATH, ${PRODUCT_DIR}/lib/pkgconfig)
      

      scons has some minimal support for parsing the output from pkg-config but compile flag merging will need to be tested. E.g.

      https://bitbucket.org/scons/scons/wiki/UsingPkgConfig

        Attachments

          Issue Links

            Activity

            Hide
            jhoblitt Joshua Hoblitt added a comment -

            Note that sconUtils ".cfg" files are created for the EUPS boost product but there is no upstream .pc files in that package.

            Show
            jhoblitt Joshua Hoblitt added a comment - Note that sconUtils ".cfg" files are created for the EUPS boost product but there is no upstream .pc files in that package.
            Hide
            ktl Kian-Tat Lim added a comment -

            With the use of conda, this is no longer necessary.

            Show
            ktl Kian-Tat Lim added a comment - With the use of conda, this is no longer necessary.

              People

              Assignee:
              Unassigned Unassigned
              Reporter:
              jhoblitt Joshua Hoblitt
              Watchers:
              Darko Jevremovic, Frossie Economou, Joshua Hoblitt, Kian-Tat Lim, Tim Jenness
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Jenkins

                  No builds found.