[jira] [Commented] (ARROW-16751) [C++] Unify target include directories
[ https://issues.apache.org/jira/browse/ARROW-16751?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17554854#comment-17554854 ] Yibo Cai commented on ARROW-16751: -- I tried cmake 3.5. Looks Arrow itself is okay with cmake-3.5 (except the ucx target mentioned in this card). But many third party tools need newer cmake versions, e.g. googletest, grpc. > [C++] Unify target include directories > -- > > Key: ARROW-16751 > URL: https://issues.apache.org/jira/browse/ARROW-16751 > Project: Apache Arrow > Issue Type: Improvement > Components: C++ >Reporter: Yibo Cai >Priority: Major > Fix For: 9.0.0 > > > Context: [https://github.com/apache/arrow/pull/13244#discussion_r889780669] > {{target_include_directories()}} in cmake 3.10 or earlier doesn't support > {{INTERFACE}} against {{IMPORTED}} target, so we have to check cmake version > like below: > {code:java} > if(CMAKE_VERSION VERSION_LESS 3.11) > set_target_properties(xsimd PROPERTIES INTERFACE_INCLUDE_DIRECTORIES > "${XSIMD_INCLUDE_DIR}") > else() > target_include_directories(xsimd INTERFACE "${XSIMD_INCLUDE_DIR}") > endif() > {code} > Above code is duplicated for some targets. There are also some targets (e.g. > ucx::ucx) missed the check. > We can add a function > {{arrow_imported_target_interface_include_directories()}} to make it simpler. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Commented] (ARROW-16751) [C++] Unify target include directories
[ https://issues.apache.org/jira/browse/ARROW-16751?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17552718#comment-17552718 ] Jacob Wujciak-Jens commented on ARROW-16751: +1 for bumping the minimum since 3.5 a lot of [useful functionality|https://cliutils.gitlab.io/modern-cmake/chapters/intro/newcmake.html] was introduced. Side note: do we have CI jobs that use 3.5 to make sure that we are actually supporting it? > [C++] Unify target include directories > -- > > Key: ARROW-16751 > URL: https://issues.apache.org/jira/browse/ARROW-16751 > Project: Apache Arrow > Issue Type: Improvement > Components: C++ >Reporter: Yibo Cai >Priority: Major > Fix For: 9.0.0 > > > Context: [https://github.com/apache/arrow/pull/13244#discussion_r889780669] > {{target_include_directories()}} in cmake 3.10 or earlier doesn't support > {{INTERFACE}} against {{IMPORTED}} target, so we have to check cmake version > like below: > {code:java} > if(CMAKE_VERSION VERSION_LESS 3.11) > set_target_properties(xsimd PROPERTIES INTERFACE_INCLUDE_DIRECTORIES > "${XSIMD_INCLUDE_DIR}") > else() > target_include_directories(xsimd INTERFACE "${XSIMD_INCLUDE_DIR}") > endif() > {code} > Above code is duplicated for some targets. There are also some targets (e.g. > ucx::ucx) missed the check. > We can add a function > {{arrow_imported_target_interface_include_directories()}} to make it simpler. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Commented] (ARROW-16751) [C++] Unify target include directories
[ https://issues.apache.org/jira/browse/ARROW-16751?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17550659#comment-17550659 ] Kouhei Sutou commented on ARROW-16751: -- I think that we can require CMake 3.16 or later when Ubuntu 18.04 LTS stops security update (April 2023, see also: https://wiki.ubuntu.com/Releases ) because Ubuntu 20.04 LTS ships 3.16 and EPEL for CentOS 7 provides CMake 3.17. > [C++] Unify target include directories > -- > > Key: ARROW-16751 > URL: https://issues.apache.org/jira/browse/ARROW-16751 > Project: Apache Arrow > Issue Type: Improvement > Components: C++ >Reporter: Yibo Cai >Priority: Major > Fix For: 9.0.0 > > > Context: [https://github.com/apache/arrow/pull/13244#discussion_r889780669] > {{target_include_directories()}} in cmake 3.10 or earlier doesn't support > {{INTERFACE}} against {{IMPORTED}} target, so we have to check cmake version > like below: > {code:java} > if(CMAKE_VERSION VERSION_LESS 3.11) > set_target_properties(xsimd PROPERTIES INTERFACE_INCLUDE_DIRECTORIES > "${XSIMD_INCLUDE_DIR}") > else() > target_include_directories(xsimd INTERFACE "${XSIMD_INCLUDE_DIR}") > endif() > {code} > Above code is duplicated for some targets. There are also some targets (e.g. > ucx::ucx) missed the check. > We can add a function > {{arrow_imported_target_interface_include_directories()}} to make it simpler. -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Commented] (ARROW-16751) [C++] Unify target include directories
[ https://issues.apache.org/jira/browse/ARROW-16751?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17550360#comment-17550360 ] Antoine Pitrou commented on ARROW-16751: We should also give some thought to bumping up the minimum CMake version. For example Ubuntu 18.04 has CMake 3.10.2, while 20.04 has 3.16.3. [~kou] What do you think? > [C++] Unify target include directories > -- > > Key: ARROW-16751 > URL: https://issues.apache.org/jira/browse/ARROW-16751 > Project: Apache Arrow > Issue Type: Improvement > Components: C++ >Reporter: Yibo Cai >Priority: Major > Fix For: 9.0.0 > > > Context: [https://github.com/apache/arrow/pull/13244#discussion_r889780669] > {{target_include_directories()}} in cmake 3.10 or earlier doesn't support > {{INTERFACE}} against {{IMPORTED}} target, so we have to check cmake version > like below: > {code:java} > if(CMAKE_VERSION VERSION_LESS 3.11) > set_target_properties(xsimd PROPERTIES INTERFACE_INCLUDE_DIRECTORIES > "${XSIMD_INCLUDE_DIR}") > else() > target_include_directories(xsimd INTERFACE "${XSIMD_INCLUDE_DIR}") > endif() > {code} > Above code is duplicated for some targets. There are also some targets (e.g. > ucx::ucx) missed the check. > We can add a function > {{arrow_imported_target_interface_include_directories()}} to make it simpler. -- This message was sent by Atlassian Jira (v8.20.7#820007)