You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@arrow.apache.org by "Wes McKinney (JIRA)" <ji...@apache.org> on 2019/02/06 01:34:00 UTC

[jira] [Commented] (ARROW-4383) [C++] Use the CMake's standard find features

    [ https://issues.apache.org/jira/browse/ARROW-4383?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16761354#comment-16761354 ] 

Wes McKinney commented on ARROW-4383:
-------------------------------------

What do you think about trying to find the {{cmake/package-config.cmake}} file in our FindPACKAGE.cmake files and then fall back on the existing logic if the cmake files are not found? We are already using these for double-conversion, for example, but it would be good to do so consistently. 

> [C++] Use the CMake's standard find features
> --------------------------------------------
>
>                 Key: ARROW-4383
>                 URL: https://issues.apache.org/jira/browse/ARROW-4383
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: C++
>            Reporter: Kouhei Sutou
>            Priority: Major
>
> From https://github.com/apache/arrow/pull/3469#discussion_r250862542
> We implement our custom find codes to find libraries by {{find_library()}}/{{find_path()}} with {{NO_DEFAULT_PATH}}. So we need to handle {{lib64/}} (on Red Hat) and {{lib/x86_64-linux-gnu/}} (on Debian) paths manually.
> If we use the CMake's standard find features such as {{CMAKE_PREFIX_PATH}} https://cmake.org/cmake/help/v3.13/variable/CMAKE_PREFIX_PATH.html#variable:CMAKE_PREFIX_PATH , we can remove our custom find codes.
> CMake has package specific find path feature by {{<PackageName}_ROOT}} since 3.12. It's equivalent of our {{<PackageName}_HOME}}.
> https://cmake.org/cmake/help/v3.12/command/find_library.html
> {quote}
> If called from within a find module loaded by {{find_package(<PackageName>)}}, search prefixes unique to the current package being found. Specifically look in the {{<PackageName>_ROOT}} CMake variable and the {{<PackageName>_ROOT}} environment variable. The package root variables are maintained as a stack so if called from nested find modules, root paths from the parent’s find module will be searched after paths from the current module, i.e. {{<CurrentPackage>_ROOT}}, {{ENV\{<CurrentPackage>_ROOT}}}, {{<ParentPackage>_ROOT}}, {{ENV\{<ParentPackage>_ROOT}}}, etc.
> {quote}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)