You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Kouhei Sutou (Jira)" <ji...@apache.org> on 2020/12/15 02:12:00 UTC

[jira] [Created] (ARROW-10911) [C++] Improve *_SOURCE CMake variables naming

Kouhei Sutou created ARROW-10911:
------------------------------------

             Summary: [C++] Improve *_SOURCE CMake variables naming
                 Key: ARROW-10911
                 URL: https://issues.apache.org/jira/browse/ARROW-10911
             Project: Apache Arrow
          Issue Type: Improvement
          Components: C++
            Reporter: Kouhei Sutou
            Assignee: Kouhei Sutou


https://github.com/apache/arrow/pull/8908#issuecomment-744780934

{quote}
> This change also renamed our Boost dependency name to "Boost" from
"BOOST". It means that users need to use -DBoost_SOURCE not
-DBOOST_SOURCE. To keep backward compatibility, -DBOOST_SOURCE is
still accepted when -DBoost_SOURCE isn't specified.

> Users also need to use -Dre2_SOURCE not -DRE2_SOURCE. To keep backward
compatibility, -DRE2_SOURCE is still accepted when -Dre2_SOURCE isn't
specified.

I would love to have this kind of case-insensitive handling for all dependencies. This has tripped me up many times and it is difficult to explain to others why everything else is ALL_CAPS but these dependencies are a mix.
{quote}

https://github.com/apache/arrow/pull/8908#issuecomment-744898897

{quote}
OK. How about using `ARROW_${UPPERCASE_DEPENDENCY_NAME}_SOURCE` CMake variables for them like `ARROW_*_USE_SHARED`?

If it sounds reasonable, we can work on it as a separated task.
{quote}

https://github.com/apache/arrow/pull/8908#issuecomment-744954917

{quote}
Why does it need the `ARROW_` namespace prefix?

I'm fine with anything that is intuitive and trivial to document.
{quote}

https://github.com/apache/arrow/pull/8908#issuecomment-745005158

{quote}
Because of consistency.
If we use `ARROW_${UPPERCASE_DEPENDENCY_NAME}_SOURCE` not `${UPPERCASE_DEPENDENCY_NAME}_SOURCE`,  we can explain that you can customize how to use `${DEPENDENCY}` by `ARROW_${UPPERCASE_DEPENDENCY_NAME}_{SOURCE,USE_SHARED}` CMake variables. It'll more intuitive than using `${UPPERCASE_DEPENDENCY_NAME}_SOURCE` and `ARROW_${UPPERCASE_DEPENDENCY_NAME}_USE_SHARED`.
{quote}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)