Uploaded image for project: 'Apache Arrow'
  1. Apache Arrow
  2. ARROW-16585

[C++] CMake and pkg-config files are broken when CMAKE_INSTALL_{BIN,INCLUDE,LIB}DIR is absolute

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 9.0.0
    • C++

    Description

      As per title: cpp/src/gandiva/gandiva.pc.in, cpp/src/parquet/parquet.pc.in, cpp/src/plasma/plasma.pc.in, and cpp/src/skyhook/skyhook.pc.in have

      prefix=@CMAKE_INSTALL_PREFIX@
      libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
      includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ # not in plasma.pc.in

      while cpp/src/plasma/PlasmaConfig.cmake.in has

      set(PLASMA_STORE_SERVER "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@/plasma-store-server@CMAKE_EXECUTABLE_SUFFIX@")

      and so they can’t handle absolute paths in CMAKE_INSTALL_{BIN,INCLUDE,LIB}DIR. This leads to broken .pc files on NixOS in particular.

      See “Concatenating paths when building pkg-config files” for a thorough discussion of the problem and a suggested fix, or KDE’s extra-cmake-modules for a simpler approach.

      Attachments

        Issue Links

          Activity

            People

              kou Kouhei Sutou
              alexshpilkin Alexander Shpilkin
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 2h
                  2h