Hi,

Could you remove CONFIG from find_package(Arrow)?

Thanks,
-- 
kou

In <CANCoaU6N7207bQBLKa8Ut4BL-nQiUa8VnH_QkqvKFM4J=4r...@mail.gmail.com>
  "Cmake FindArrow variables not set properly" on Wed, 8 Sep 2021 16:31:51 
-0400,
  Niranda Perera <niranda.per...@gmail.com> wrote:

> Hi all,
> 
> I am trying to use cmake find_package in my project (inside a conda env). I
> have the following in the cmake file.
> 
>     message("Finding Arrow from SYSTEM")
>     find_package(Arrow ${CYLON_ARROW_VERSION} CONFIG REQUIRED)
>     message(STATUS "Arrow found: ${ARROW_FOUND}")
>     message(STATUS "Arrow ver: ${ARROW_FULL_SO_VERSION}")
>     message(STATUS "Arrow include dir: ${ARROW_INCLUDE_DIR}")
>     message(STATUS "Arrow lib dir: ${ARROW_LIB_DIR}")
> 
>     find_library(ARROW_SO arrow ${CYLON_ARROW_VERSION})
>     message(STATUS "Arrow lib: ${ARROW_SO}")
> 
>     find_library(ARROW_PY_SO arrow_python ${CYLON_ARROW_VERSION})
>     message(STATUS "Arrow py lib: ${ARROW_PY_SO}")
> 
> Following is my output.
> 
> Finding Arrow from SYSTEM
> -- Arrow found:
> -- Arrow ver: 400.1.0
> -- Arrow include dir:
> -- Arrow lib dir:
> -- Arrow lib: /aux/miniconda/envs/cylon_dev/lib/libarrow.so
> -- Arrow py lib: /aux/miniconda/envs/cylon_dev/lib/libarrow_python.so
> 
> It seems to be that the CMake variables like, ARROW_FOUND,
> ARROW_INCLUDE_DIR, etc are not set properly. But cmake can still locate the
> .so files without a problem.
> 
> When I explicitly call the FindArrow.cmake file in the
> ${CONDA_PREFIX}/lib/cmake/arrow dir,
> find_package(Arrow CONFIG REQUIRED CONFIGS FindArrow.cmake HINTS
> ${CONDA_PREFIX}/lib/cmake/arrow)
> 
> I get the following cmake warning, but then all variables are set properly.
> Finding Arrow from SYSTEM
> CMake Warning (dev) at
> /aux/miniconda/envs/cylon_dev/share/cmake-3.21/Modules/FindPackageHandleStandardArgs.cmake:438
> (message):
>   The package name passed to `find_package_handle_standard_args` (PkgConfig)
>   does not match the name of the calling package (Arrow).  This can lead to
>   problems in calling code that expects `find_package` result variables
>   (e.g., `_FOUND`) to follow a certain pattern.
> Call Stack (most recent call first):
> 
> /aux/miniconda/envs/cylon_dev/share/cmake-3.21/Modules/FindPkgConfig.cmake:70
> (find_package_handle_standard_args)
>   /aux/miniconda/envs/cylon_dev/lib/cmake/arrow/FindArrow.cmake:39 (include)
>   CMakeLists.txt:243 (find_package)
> This warning is for project developers.  Use -Wno-dev to suppress it.
> 
> -- Arrow version: 4.0.1 (CMake package configuration: Arrow)
> -- Arrow SO and ABI version: 400
> -- Arrow full SO version: 400.1.0
> -- Found the Arrow core shared library:
> /aux/miniconda/envs/cylon_dev/lib/libarrow.so
> -- Found the Arrow core import library:
> -- Found the Arrow core static library:
> -- Arrow found: TRUE
> -- Arrow ver: 400.1.0
> -- Arrow include dir: /aux/miniconda/envs/cylon_dev/include
> -- Arrow lib dir: /aux/miniconda/envs/cylon_dev/lib
> -- Arrow lib: /aux/miniconda/envs/cylon_dev/lib/libarrow.so
> -- Arrow py lib: /aux/miniconda/envs/cylon_dev/lib/libarrow_python.so
> 
> When we are using Arrow in an external project, should I copy the
> FindArrow.cmake file to that project explicitly, and then use it?
> 
> https://github.com/apache/arrow/blob/master/cpp/cmake_modules/FindArrow.cmake
> -- 
> Niranda Perera
> https://niranda.dev/
> @n1r44 <https://twitter.com/N1R44>

Reply via email to