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

[C++] CMake's find_package(Parquet) does not find Parquet with Arrow 3.0.0

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.0.0
    • 10.0.0
    • C++
    • RHEL 7.6
      Spack environment with CMake 3.15.7

    Description

      Hello,

      I just updated a small utility that converts binary data to Parquet from Arrow 0.15 to 3.0, and noticed that CMake could not resolve find_package(Parquet REQUIRED), as my installation tree of Arrow contained …/share/cmake/arrow/ParquetConfig.cmake, but CMake seems to be expecting …/share/cmake/parquet/ParquetConfig.cmake.

      Creating a symbolic link from the arrow directory to a parquet directory solved CMake's find procedure. Alternatively, I ended up at this work-around that did not require me modifying my local install tree:

      find_package(Arrow REQUIRED)
      get_filename_component(MY_SEARCH_DIR ${Arrow_CONFIG} DIRECTORY)
      find_package(Parquet REQUIRED HINTS ${MY_SEARCH_DIR})
      

      Is this expected behavior? I went through the CMake code and found that there is only one installation directory for all CMake files: ARROW_CMAKE_INSTALL_DIR — I would expect this to be specific to the libraries exported.

      Thanks,
      Matthias

      Attachments

        Issue Links

          Activity

            People

              kou Kouhei Sutou
              matz-e Matthias Wolf
              Votes:
              0 Vote for this issue
              Watchers:
              4 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 - 5h 40m
                  5h 40m