Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion ci/appveyor-cpp-build.bat
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,6 @@ popd

pushd python

set PYARROW_BUNDLE_BOOST=OFF
set PYARROW_CMAKE_GENERATOR=%GENERATOR%
set PYARROW_CXXFLAGS=%ARROW_CXXFLAGS%
set PYARROW_PARALLEL=2
Expand Down
1 change: 0 additions & 1 deletion ci/scripts/python_wheel_windows_build.bat
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,6 @@ popd
echo "=== (%PYTHON_VERSION%) Building wheel ==="
set PYARROW_BUILD_TYPE=%CMAKE_BUILD_TYPE%
set PYARROW_BUNDLE_ARROW_CPP=ON
set PYARROW_BUNDLE_BOOST=OFF
set PYARROW_CMAKE_GENERATOR=%CMAKE_GENERATOR%
set PYARROW_INSTALL_TESTS=ON
set PYARROW_WITH_DATASET=%ARROW_DATASET%
Expand Down
1 change: 0 additions & 1 deletion dev/tasks/conda-recipes/arrow-cpp/build-pyarrow.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ export ARROW_HOME=$PREFIX
export PARQUET_HOME=$PREFIX
export SETUPTOOLS_SCM_PRETEND_VERSION=$PKG_VERSION
export PYARROW_BUILD_TYPE=release
export PYARROW_BUNDLE_ARROW_CPP_HEADERS=0
export PYARROW_WITH_DATASET=1
export PYARROW_WITH_FLIGHT=1
export PYARROW_WITH_GANDIVA=1
Expand Down
77 changes: 77 additions & 0 deletions docs/source/developers/python.rst
Original file line number Diff line number Diff line change
Expand Up @@ -586,6 +586,83 @@ Caveats

The Plasma component is not supported on Windows.

Relevant components and environment variables
=============================================

List of relevant Arrow CMake flags and corresponding environment variables
to be used when building PyArrow are:

.. list-table::
:widths: 30 30
:header-rows: 1

* - Arrow flags/options
- Corresponding environment variables for PyArrow
* - ``CMAKE_BUILD_TYPE``
- ``PYARROW_BUILD_TYPE`` (release, debug or relwithdebinfo)
* - ``ARROW_GCS``
- ``PYARROW_WITH_GCS``
* - ``ARROW_S3``
- ``PYARROW_WITH_S3``
* - ``ARROW_HDFS``
- ``PYARROW_WITH_HDFS``
* - ``ARROW_CUDA``
- ``PYARROW_WITH_CUDA``
* - ``ARROW_SUBSTRAIT``
- ``PYARROW_WITH_SUBSTRAIT``
* - ``ARROW_FLIGHT``
- ``PYARROW_WITH_FLIGHT``
* - ``ARROW_DATASET``
- ``PYARROW_WITH_DATASET``
* - ``ARROW_PARQUET``
- ``PYARROW_WITH_PARQUET``
* - ``PARQUET_REQUIRE_ENCRYPTION``
- ``PYARROW_WITH_PARQUET_ENCRYPTION``
* - ``ARROW_TENSORFLOW``
- ``PYARROW_WITH_TENSORFLOW``
* - ``ARROW_ORC``
- ``PYARROW_WITH_ORC``
* - ``ARROW_GANDIVA``
- ``PYARROW_WITH_GANDIVA``

List of relevant environment variables that can also be used to build
PyArrow are:

.. list-table::
:widths: 20 20 20
:header-rows: 1

* - PyArrow environment variable
- Description
- Default value
* - ``PYARROW_CMAKE_GENERATOR``
- Example: ``'Visual Studio 15 2017 Win64'``
- ``''``
* - ``PYARROW_CMAKE_OPTIONS``
- Extra CMake and Arrow options (ex. ``"-DARROW_SIMD_LEVEL=NONE -DCMAKE_OSX_ARCHITECTURES=x86_64;arm64"``)
- ``''``
* - ``PYARROW_CXXFLAGS``
- Extra C++ compiler flags
- ``''``
* - ``PYARROW_GENERATE_COVERAGE``
- Setting ``Xlinetrace`` flag to true for the Cython compiler
- ``false``
* - ``PYARROW_BUNDLE_ARROW_CPP``
- Bundle the Arrow C++ libraries
- ``0`` (``OFF``)
* - ``PYARROW_BUNDLE_CYTHON_CPP``
- Bundle the C++ files generated by Cython
- ``0`` (``OFF``)
* - ``PYARROW_INSTALL_TESTS``
- Add the test to the python package
- ``1`` (``ON``)
* - ``PYARROW_BUILD_VERBOSE``
- Enable verbose output from Makefile builds
- ``0`` (``OFF``)
* - ``PYARROW_PARALLEL``
- Number of processes used to compile PyArrow’s C++/Cython components
- ``''``

Deleting stale build artifacts
==============================

Expand Down
6 changes: 1 addition & 5 deletions python/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -116,16 +116,12 @@ if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
option(PYARROW_BUILD_DATASET "Build the PyArrow Dataset integration" OFF)
option(PYARROW_BUILD_GANDIVA "Build the PyArrow Gandiva integration" OFF)
option(PYARROW_BUILD_PARQUET "Build the PyArrow Parquet integration" OFF)
option(PYARROW_PARQUET_USE_SHARED "Rely on parquet shared libraries where relevant" ON)
option(PYARROW_BUILD_PARQUET_ENCRYPTION
"Build the PyArrow Parquet encryption integration" OFF)
option(PYARROW_BOOST_USE_SHARED
"Rely on Boost shared libraries on linking static parquet" ON)
option(PYARROW_BUILD_PLASMA "Build the PyArrow Plasma integration" OFF)
option(PYARROW_USE_TENSORFLOW "Build PyArrow with TensorFlow support" OFF)
option(PYARROW_BUILD_ORC "Build the PyArrow ORC integration" OFF)
option(PYARROW_BUNDLE_ARROW_CPP "Bundle the Arrow C++ libraries" OFF)
option(PYARROW_BUNDLE_BOOST "Bundle the Boost libraries when we bundle Arrow C++" OFF)
option(PYARROW_BUNDLE_CYTHON_CPP "Bundle the C++ files generated by Cython" OFF)
option(PYARROW_BUNDLE_PLASMA_EXECUTABLE "Bundle the plasma-store-server" ON)
option(PYARROW_GENERATE_COVERAGE "Build with Cython code coverage enabled" OFF)
Expand Down Expand Up @@ -585,7 +581,7 @@ if(PYARROW_BUILD_PARQUET)
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
endif()

if(PYARROW_PARQUET_USE_SHARED)
if(ARROW_BUILD_SHARED)
if(PYARROW_BUNDLE_ARROW_CPP)
bundle_arrow_lib(${PARQUET_SHARED_LIB} SO_VERSION ${PARQUET_SO_VERSION})
if(MSVC)
Expand Down
20 changes: 0 additions & 20 deletions python/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,8 +144,6 @@ def initialize_options(self):
self.extra_cmake_args = os.environ.get('PYARROW_CMAKE_OPTIONS', '')
self.build_type = os.environ.get('PYARROW_BUILD_TYPE',
'release').lower()
self.boost_namespace = os.environ.get('PYARROW_BOOST_NAMESPACE',
'boost')

self.cmake_cxxflags = os.environ.get('PYARROW_CXXFLAGS', '')

Expand All @@ -171,12 +169,8 @@ def initialize_options(self):
os.environ.get('PYARROW_WITH_DATASET', '0'))
self.with_parquet = strtobool(
os.environ.get('PYARROW_WITH_PARQUET', '0'))
self.with_static_parquet = strtobool(
os.environ.get('PYARROW_WITH_STATIC_PARQUET', '0'))
self.with_parquet_encryption = strtobool(
os.environ.get('PYARROW_WITH_PARQUET_ENCRYPTION', '0'))
self.with_static_boost = strtobool(
os.environ.get('PYARROW_WITH_STATIC_BOOST', '0'))
self.with_plasma = strtobool(
os.environ.get('PYARROW_WITH_PLASMA', '0'))
self.with_tensorflow = strtobool(
Expand All @@ -191,10 +185,6 @@ def initialize_options(self):
os.environ.get('PYARROW_BUNDLE_ARROW_CPP', '0'))
self.bundle_cython_cpp = strtobool(
os.environ.get('PYARROW_BUNDLE_CYTHON_CPP', '0'))
self.bundle_boost = strtobool(
os.environ.get('PYARROW_BUNDLE_BOOST', '0'))
self.bundle_arrow_cpp_headers = strtobool(
os.environ.get('PYARROW_BUNDLE_ARROW_CPP_HEADERS', '1'))
self.bundle_plasma_executable = strtobool(
os.environ.get('PYARROW_BUNDLE_PLASMA_EXECUTABLE', '1'))

Expand Down Expand Up @@ -297,26 +287,16 @@ def append_cmake_bool(value, varname):
append_cmake_bool(self.with_tensorflow, 'PYARROW_USE_TENSORFLOW')
append_cmake_bool(self.bundle_arrow_cpp,
'PYARROW_BUNDLE_ARROW_CPP')
append_cmake_bool(self.bundle_boost,
'PYARROW_BUNDLE_BOOST')
append_cmake_bool(self.bundle_cython_cpp,
'PYARROW_BUNDLE_CYTHON_CPP')
append_cmake_bool(self.bundle_plasma_executable,
'PYARROW_BUNDLE_PLASMA_EXECUTABLE')
append_cmake_bool(self.generate_coverage,
'PYARROW_GENERATE_COVERAGE')
append_cmake_bool(not self.with_static_boost,
'PYARROW_BOOST_USE_SHARED')
append_cmake_bool(not self.with_static_parquet,
'PYARROW_PARQUET_USE_SHARED')

cmake_options.append(
f'-DCMAKE_BUILD_TYPE={self.build_type.lower()}')

if self.boost_namespace != 'boost':
cmake_options.append(
f'-DBoost_NAMESPACE={self.boost_namespace}')

extra_cmake_args = shlex.split(self.extra_cmake_args)

build_tool_args = []
Expand Down