You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@arrow.apache.org by Niranda Perera <ni...@gmail.com> on 2021/09/08 20:31:51 UTC
Cmake FindArrow variables not set properly
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>
Re: Cmake FindArrow variables not set properly
Posted by Niranda Perera <ni...@gmail.com>.
Hi Sutou,
I think this is a problem with my IDE. When I am running inside a terminal,
it seems to be working fine. :-/
On Wed, Sep 8, 2021 at 5:17 PM Sutou Kouhei <ko...@clear-code.com> wrote:
> Hi,
>
> Could you remove CONFIG from find_package(Arrow)?
>
> Thanks,
> --
> kou
>
> In <CA...@mail.gmail.com>
> "Cmake FindArrow variables not set properly" on Wed, 8 Sep 2021 16:31:51
> -0400,
> Niranda Perera <ni...@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>
>
--
Niranda Perera
https://niranda.dev/
@n1r44 <https://twitter.com/N1R44>
Re: Cmake FindArrow variables not set properly
Posted by Sutou Kouhei <ko...@clear-code.com>.
Hi,
Could you remove CONFIG from find_package(Arrow)?
Thanks,
--
kou
In <CA...@mail.gmail.com>
"Cmake FindArrow variables not set properly" on Wed, 8 Sep 2021 16:31:51 -0400,
Niranda Perera <ni...@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>