blob: 142e6e0b377ba93f2af7bd767f2dd4d16b395c91 [file] [log] [blame]
#!/usr/bin/env bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
set -ex
# Set up environment and output directory for C++ libraries
mkdir -p apidocs-dist
export ARROW_BUILD_TYPE=release
export ARROW_HOME=/apidocs-dist
export PARQUET_HOME=/apidocs-dist
export PKG_CONFIG_PATH=/apidocs-dist/lib/pkgconfig:${PKG_CONFIG_PATH}
# For newer GCC per https://arrow.apache.org/docs/python/development.html#known-issues
export CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0"
# Make Java documentation
# Override user.home to cache dependencies outside the Docker container
# NB: this assumes that you have arrow-site cloned in the (gitignored) site directory
pushd arrow/java
mvn -Duser.home=`pwd`/.apidocs-m2 -Drat.skip=true -Dcheckstyle.skip=true install site
mkdir -p ../site/asf-site/docs/java/
rsync -r target/site/apidocs/ ../site/asf-site/docs/java/
popd
# Make Javascript documentation
pushd arrow/js
npm install
npm run doc
rsync -r doc/ ../site/asf-site/docs/js
popd
# Make Python documentation (Depends on C++ )
# Build Arrow C++
export LD_LIBRARY_PATH=/apidocs-dist/lib:${CONDA_PREFIX}/lib:${LD_LIBRARY_PATH}
export PKG_CONFIG_PATH=${CONDA_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}
export PKG_CONFIG_PATH=/apidocs-dist/lib/pkgconfig:${PKG_CONFIG_PATH}
CPP_BUILD_DIR=arrow/cpp/build_apidocs
mkdir -p $CPP_BUILD_DIR
pushd $CPP_BUILD_DIR
cmake -DCMAKE_BUILD_TYPE=$ARROW_BUILD_TYPE \
-DCMAKE_INSTALL_PREFIX=$ARROW_HOME \
-DARROW_PYTHON=ON \
-DARROW_PLASMA=ON \
-DARROW_PARQUET=ON \
-DARROW_ORC=ON \
-DARROW_BUILD_TESTS=OFF \
-GNinja \
..
ninja
ninja install
popd
# Build c_glib documentation
pushd arrow/c_glib
if [ -f Makefile ]; then
# Ensure updating to prevent auto re-configure
touch configure **/Makefile
make distclean
fi
./autogen.sh
mkdir -p build_apidocs
pushd build_apidocs
../configure \
--prefix=${ARROW_HOME} \
--enable-gtk-doc
make -j4 GTK_DOC_V_XREF=": "
mkdir -p ../../site/asf-site/docs/c_glib
rsync -r doc/arrow-glib/html/ ../../site/asf-site/docs/c_glib/arrow-glib
rsync -r doc/parquet-glib/html/ ../../site/asf-site/docs/c_glib/parquet-glib
popd
popd
# Make C++ documentation
pushd arrow/cpp/apidoc
rm -rf html/*
doxygen Doxyfile
mkdir -p ../../site/asf-site/docs/cpp
rsync -r html/ ../../site/asf-site/docs/cpp
popd