Skip to content

Commit

Permalink
ARROW-17575: [Docs][C++] Update build document to follow new CMake pa…
Browse files Browse the repository at this point in the history
…ckage
  • Loading branch information
raulcd committed Sep 12, 2022
1 parent 75d2bfd commit 1baab6a
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 4 deletions.
50 changes: 47 additions & 3 deletions docs/source/cpp/build_system.rst
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ file into an executable linked with the Arrow C++ shared library:
find_package(Arrow REQUIRED)
add_executable(my_example my_example.cc)
target_link_libraries(my_example PRIVATE arrow_shared)
target_link_libraries(my_example PRIVATE Arrow::arrow_shared)
Available variables and targets
-------------------------------
Expand All @@ -67,11 +67,55 @@ CMake variables:
In addition, it will have created some targets that you can link against
(note these are plain strings, not variables):

* ``arrow_shared`` links to the Arrow shared libraries
* ``arrow_static`` links to the Arrow static libraries
* ``Arrow::arrow_shared`` links to the Arrow shared libraries
* ``Arrow::arrow_static`` links to the Arrow static libraries

For backwards compatibility purposes the ``arrow_shared`` and ``arrow_static``
targets are also available but we recomend using ``Arrow::arrow_shared`` and
``Arrow::arrow_static`` respectively.

In most cases, it is recommended to use the Arrow shared libraries.

If Arrow is installed on a custom path instead of a common system one you
will have to add the path where Arrow is installed to ``CMAKE_PREFIX_PATH``.

.. note::
The usage of ``COMPONENTS`` on our ``find_package`` implementation is
currently not supported.

Other available packages
------------------------

There are other available packages, they can also be used with the `find_package
<https://cmake.org/cmake/help/latest/command/find_package.html>`_ directive.
This is the list of available ones and the respective targets created:

+-----------------------------------------------+----------------------------------------------------+-------------------------------------------------+
| find_package usage | shared target | static target |
+===============================================+====================================================+=================================================+
| ``find_package(ArrowCUDA REQUIRED)`` | ArrowCUDA::arrow_cuda_shared | ArrowCUDA::arrow_cuda_static |
+-----------------------------------------------+----------------------------------------------------+-------------------------------------------------+
| ``find_package(ArrowDataset REQUIRED)`` | ArrowDataset::arrow_dataset_shared | ArrowDataset::arrow_dataset_static |
+-----------------------------------------------+----------------------------------------------------+-------------------------------------------------+
| ``find_package(ArrowFlight REQUIRED)`` | ArrowFlight::arrow_flight_shared | ArrowFlight::arrow_flight_static |
+-----------------------------------------------+----------------------------------------------------+-------------------------------------------------+
| ``find_package(ArrowFlightSql REQUIRED)` | ArrowFlightSql::arrow_flight_sql_shared | ArrowFlightSql::arrow_flight_sql_static |
+-----------------------------------------------+----------------------------------------------------+-------------------------------------------------+
| ``find_package(ArrowFlightTesting REQUIRED)`` | ArrowFlightTesting::arrow_flight_testing_shared | ArrowFlightTesting::arrow_flight_testing_static |
+-----------------------------------------------+----------------------------------------------------+-------------------------------------------------+
| ``find_package(ArrowSubstrait REQUIRED)`` | ArrowSubstrait::arrow_substrait_shared | ArrowSubstrait::arrow_substrait_static |
+-----------------------------------------------+----------------------------------------------------+-------------------------------------------------+
| ``find_package(ArrowTesting REQUIRED)`` | ArrowTesting::arrow_testing_shared | ArrowTesting::arrow_testing_static |
+-----------------------------------------------+----------------------------------------------------+-------------------------------------------------+
| ``find_package(Gandiva REQUIRED)`` | Gandiva::gandiva_shared | Gandiva::gandiva_static |
+-----------------------------------------------+----------------------------------------------------+-------------------------------------------------+
| ``find_package(Parquet REQUIRED)`` | Parquet::parquet_shared | Parquet::parquet_static |
+-----------------------------------------------+----------------------------------------------------+-------------------------------------------------+
| ``find_package(Plasma REQUIRED)`` | Plasma::plasma_shared | Plasma::plasma_static |
+-----------------------------------------------+----------------------------------------------------+-------------------------------------------------+

``Plasma`` will also expose ``Plasma::plasma-store-server`` for the Plasma store server executable.

.. note::
CMake is case-sensitive. The names and variables listed above have to be
spelt exactly that way!
Expand Down
2 changes: 1 addition & 1 deletion docs/source/java/cdata.rst
Original file line number Diff line number Diff line change
Expand Up @@ -438,7 +438,7 @@ CMakeLists.txt definition file:
include_directories(${JNI_INCLUDE_DIRS})
set(CMAKE_CXX_STANDARD 11)
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(cdatacpptojava PRIVATE arrow_shared)
target_link_libraries(cdatacpptojava PRIVATE Arrow::arrow_shared)
target_link_libraries(cdatacpptojava PRIVATE ${JNI_LIBRARIES})
**Result**
Expand Down

0 comments on commit 1baab6a

Please sign in to comment.