Yue Ni created ARROW-14681: ------------------------------ Summary: [C++] vcpkg arrow port parquet usage Key: ARROW-14681 URL: https://issues.apache.org/jira/browse/ARROW-14681 Project: Apache Arrow Issue Type: Improvement Components: C++ Reporter: Yue Ni
vcpkg arrow port ([https://github.com/microsoft/vcpkg/tree/master/ports/arrow)] installs not only arrow but also other arrow components such as ArrowDataset/ArrowFlight. After installation, I can use `find_package(Arrow)` in CMake/vcpkg to find the arrow package and use it. But I wonder how I can use other components such as ArrowDataset. I tried using it in CMake like below: 1) `find_package(ArrowDataset REQUIRED)` CMake will report error like below: ``` -- _find_package pkg_name=ArrowDataset args=REQUIRED CMake Error at /Users/ss/dev/tools/vcpkg/scripts/buildsystems/vcpkg.cmake:789 (_find_package): By not providing "FindArrowDataset.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "ArrowDataset", but CMake did not find one. Could not find a package configuration file provided by "ArrowDataset" with any of the following names: ArrowDatasetConfig.cmake arrowdataset-config.cmake Add the installation prefix of "ArrowDataset" to CMAKE_PREFIX_PATH or set "ArrowDataset_DIR" to a directory containing one of the above files. If "ArrowDataset" provides a separate development package or SDK, be sure it has been installed. ``` 2) `find_package(Arrow CONFIGS ArrowDatasetConfig.cmake REQUIRED)` The ArrowDatasetConfig.cmake can be found, however, it tries to find Parquet internally and still failed with error like below: ``` -- _find_package pkg_name=Arrow args=CONFIGS;ArrowDatasetConfig.cmake;REQUIRED -- _find_package pkg_name=Arrow args=REQUIRED -- _find_package pkg_name=Threads args=REQUIRED -- _find_package pkg_name=Snappy args=REQUIRED -- _find_package pkg_name=PkgConfig args=QUIET -- _find_package pkg_name=Threads args=REQUIRED -- _find_package pkg_name=Thrift args=REQUIRED -- Found thrift: /Users/ss/dev/tools/vcpkg/installed/x64-osx -- _find_package pkg_name=Threads args=QUIET -- _find_package pkg_name=lz4 args=REQUIRED -- _find_package pkg_name=zstd args=REQUIRED -- _find_package pkg_name=re2Alt args=REQUIRED -- _find_package pkg_name=re2 args= -- _find_package pkg_name=BZip2 args=REQUIRED -- _find_package pkg_name=unofficial-utf8proc args=REQUIRED -- _find_package pkg_name=c-ares args= -- _find_package pkg_name=c-ares args=CONFIG -- _find_package pkg_name=absl args=CONFIG -- _find_package pkg_name=Threads args= -- _find_package pkg_name=upb args=CONFIG;REQUIRED -- _find_package pkg_name=Parquet args=REQUIRED CMake Error at /Users/ss/dev/tools/vcpkg/scripts/buildsystems/vcpkg.cmake:789 (_find_package): By not providing "FindParquet.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Parquet", but CMake did not find one. Could not find a package configuration file provided by "Parquet" with any of the following names: ParquetConfig.cmake parquet-config.cmake Add the installation prefix of "Parquet" to CMAKE_PREFIX_PATH or set "Parquet_DIR" to a directory containing one of the above files. If "Parquet" provides a separate development package or SDK, be sure it has been installed. Call Stack (most recent call first): /usr/local/Cellar/cmake/3.21.3_1/share/cmake/Modules/CMakeFindDependencyMacro.cmake:47 (find_package) /Users/ss/dev/tools/vcpkg/installed/x64-osx/share/arrow/ArrowDatasetConfig.cmake:55 (find_dependency) /Users/ss/dev/tools/vcpkg/scripts/buildsystems/vcpkg.cmake:789 (_find_package) ``` Is there any instruction describing how this could be done? Thanks. -- This message was sent by Atlassian Jira (v8.20.1#820001)