diff --git a/ci/appveyor-cpp-build.bat b/ci/appveyor-cpp-build.bat index 0faac67a14a..b34d00e85ab 100644 --- a/ci/appveyor-cpp-build.bat +++ b/ci/appveyor-cpp-build.bat @@ -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 diff --git a/ci/scripts/python_wheel_windows_build.bat b/ci/scripts/python_wheel_windows_build.bat index d137cd8a985..6a5c994d08b 100644 --- a/ci/scripts/python_wheel_windows_build.bat +++ b/ci/scripts/python_wheel_windows_build.bat @@ -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% diff --git a/dev/tasks/conda-recipes/arrow-cpp/build-pyarrow.sh b/dev/tasks/conda-recipes/arrow-cpp/build-pyarrow.sh index 692ffb7806d..718617ce17b 100644 --- a/dev/tasks/conda-recipes/arrow-cpp/build-pyarrow.sh +++ b/dev/tasks/conda-recipes/arrow-cpp/build-pyarrow.sh @@ -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 diff --git a/docs/source/developers/python.rst b/docs/source/developers/python.rst index 8df095f7c3b..495c5db991c 100644 --- a/docs/source/developers/python.rst +++ b/docs/source/developers/python.rst @@ -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 ============================== diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index a2cf8901bac..55fa1a77ad2 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -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) @@ -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) diff --git a/python/setup.py b/python/setup.py index 4ee397ed4b3..0eab771445d 100755 --- a/python/setup.py +++ b/python/setup.py @@ -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', '') @@ -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( @@ -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')) @@ -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 = []