#!/usr/bin/make -f
# -*- makefile-gmake -*-
#
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
# This has to be exported to make some magic below work.
export DH_OPTIONS

export DEB_BUILD_MAINT_OPTIONS=reproducible=-timeless

export ARROW_ABSL_URL=${CURDIR}/dependencies/absl-20211102.0.tar.gz
export ARROW_AWS_C_AUTH_URL=${CURDIR}/dependencies/aws-c-auth-v0.9.0.tar.gz
export ARROW_AWS_C_CAL_URL=${CURDIR}/dependencies/aws-c-cal-v0.9.2.tar.gz
export ARROW_AWS_C_COMMON_URL=${CURDIR}/dependencies/aws-c-common-v0.12.3.tar.gz
export ARROW_AWS_C_COMPRESSION_URL=${CURDIR}/dependencies/aws-c-compression-v0.3.1.tar.gz
export ARROW_AWS_C_EVENT_STREAM_URL=${CURDIR}/dependencies/aws-c-event-stream-v0.5.4.tar.gz
export ARROW_AWS_C_HTTP_URL=${CURDIR}/dependencies/aws-c-http-v0.10.2.tar.gz
export ARROW_AWS_C_IO_URL=${CURDIR}/dependencies/aws-c-io-v0.19.1.tar.gz
export ARROW_AWS_C_MQTT_URL=${CURDIR}/dependencies/aws-c-mqtt-v0.13.1.tar.gz
export ARROW_AWS_C_S3_URL=${CURDIR}/dependencies/aws-c-s3-v0.8.1.tar.gz
export ARROW_AWS_C_SDKUTILS_URL=${CURDIR}/dependencies/aws-c-sdkutils-v0.2.4.tar.gz
export ARROW_AWS_CHECKSUMS_URL=${CURDIR}/dependencies/aws-checksums-v0.2.7.tar.gz
export ARROW_AWS_CRT_CPP_URL=${CURDIR}/dependencies/aws-crt-cpp-v0.32.8.tar.gz
export ARROW_AWS_LC_URL=${CURDIR}/dependencies/aws-lc-v1.52.1.tar.gz
export ARROW_AWSSDK_URL=${CURDIR}/dependencies/aws-sdk-cpp-1.11.587.tar.gz
export ARROW_BOOST_URL=${CURDIR}/dependencies/boost-1.88.0-cmake.tar.gz
export ARROW_BROTLI_URL=${CURDIR}/dependencies/brotli-v1.0.9.tar.gz
export ARROW_BZIP2_URL=${CURDIR}/dependencies/bzip2-1.0.8.tar.gz
export ARROW_CARES_URL=${CURDIR}/dependencies/cares-1.17.2.tar.gz
export ARROW_CRC32C_URL=${CURDIR}/dependencies/crc32c-1.1.2.tar.gz
export ARROW_GBENCHMARK_URL=${CURDIR}/dependencies/gbenchmark-v1.8.3.tar.gz
export ARROW_GFLAGS_URL=${CURDIR}/dependencies/gflags-v2.2.2.tar.gz
export ARROW_GLOG_URL=${CURDIR}/dependencies/glog-v0.5.0.tar.gz
export ARROW_GOOGLE_CLOUD_CPP_URL=${CURDIR}/dependencies/google-cloud-cpp-v2.22.0.tar.gz
export ARROW_GRPC_URL=${CURDIR}/dependencies/grpc-v1.46.3.tar.gz
export ARROW_GTEST_URL=${CURDIR}/dependencies/gtest-1.16.0.tar.gz
export ARROW_JEMALLOC_URL=${CURDIR}/dependencies/jemalloc-5.3.0.tar.bz2
export ARROW_LZ4_URL=${CURDIR}/dependencies/lz4-v1.10.0.tar.gz
export ARROW_MIMALLOC_URL=${CURDIR}/dependencies/mimalloc-v2.2.4.tar.gz
export ARROW_NLOHMANN_JSON_URL=${CURDIR}/dependencies/nlohmann-json-v3.12.0.tar.gz
export ARROW_OPENTELEMETRY_URL=${CURDIR}/dependencies/opentelemetry-cpp-v1.21.0.tar.gz
export ARROW_OPENTELEMETRY_PROTO_URL=${CURDIR}/dependencies/opentelemetry-proto-v1.7.0.tar.gz
export ARROW_ORC_URL=${CURDIR}/dependencies/orc-2.1.2.tar.gz
export ARROW_PROTOBUF_URL=${CURDIR}/dependencies/protobuf-v21.3.tar.gz
export ARROW_RAPIDJSON_URL=${CURDIR}/dependencies/rapidjson-232389d4f1012dddec4ef84861face2d2ba85709.tar.gz
export ARROW_RE2_URL=${CURDIR}/dependencies/re2-2022-06-01.tar.gz
export ARROW_S2N_TLS_URL=${CURDIR}/dependencies/s2n-v1.5.21.tar.gz
export ARROW_SNAPPY_URL=${CURDIR}/dependencies/snappy-1.2.2.tar.gz
export ARROW_SUBSTRAIT_URL=${CURDIR}/dependencies/substrait-v0.44.0.tar.gz
export ARROW_THRIFT_URL=${CURDIR}/dependencies/thrift-0.22.0.tar.gz
export ARROW_UTF8PROC_URL=${CURDIR}/dependencies/utf8proc-v2.10.0.tar.gz
export ARROW_XSIMD_URL=${CURDIR}/dependencies/xsimd-13.0.0.tar.gz
export ARROW_ZLIB_URL=${CURDIR}/dependencies/zlib-1.3.1.tar.gz
export ARROW_ZSTD_URL=${CURDIR}/dependencies/zstd-1.5.7.tar.gz

BUILD_TYPE=relwithdebinfo

%:
	dh $@ --with gir

override_dh_auto_configure:
	code_name="$$(. /etc/os-release &&			\
                        echo $${VERSION_CODENAME})";		\
	dh_auto_configure					\
	  --sourcedirectory=cpp					\
	  --builddirectory=cpp_build				\
	  --buildsystem=cmake+ninja				\
	  --							\
	  -DARROW_BUILD_UTILITIES=ON				\
	  -DARROW_CSV=ON					\
	  -DARROW_GCS=ON					\
	  -DARROW_HDFS=ON					\
	  -DARROW_JSON=ON					\
	  -DARROW_MIMALLOC=ON					\
	  -DARROW_PACKAGE_KIND=deb				\
	  -DARROW_PARQUET=ON					\
	  -DARROW_USE_CCACHE=OFF				\
	  -DARROW_USE_MOLD=ON					\
	  -DARROW_WITH_BROTLI=ON				\
	  -DARROW_WITH_BZ2=ON					\
	  -DARROW_WITH_LZ4=ON					\
	  -DARROW_WITH_SNAPPY=ON				\
	  -DARROW_WITH_ZLIB=ON					\
	  -DARROW_WITH_ZSTD=ON					\
	  -DCMAKE_BUILD_TYPE=$(BUILD_TYPE)			\
	  -DFETCHCONTENT_FULLY_DISCONNECTED=OFF			\
	  -DPARQUET_BUILD_EXECUTABLES=ON			\
	  -DPARQUET_REQUIRE_ENCRYPTION=ON

override_dh_auto_build:
	dh_auto_build				\
	  --sourcedirectory=cpp			\
	  --builddirectory=cpp_build

override_dh_auto_install:
	dh_auto_install				\
	  --sourcedirectory=cpp			\
	  --builddirectory=cpp_build

override_dh_auto_test:
	# TODO: We need Boost 1.64 or later to build tests for
	# Apache Arrow Flight.
	# git clone --depth 1 https://github.com/apache/arrow-testing.git
	# git clone --depth 1 https://github.com/apache/parquet-testing.git
	# cd cpp_build &&								\
	#   env									\
	#     ARROW_TEST_DATA=$(CURDIR)/arrow-testing/data			\
	#     PARQUET_TEST_DATA=$(CURDIR)/parquet-testing/data			\
	#       ctest --exclude-regex 'arrow-cuda-test'

# libarrow.so: avoid failing with "Unknown DWARF DW_OP_172"
# libgandiva.so: avoid failing with "Unknown DWARF DW_OP_255"
# libparquet.so: avoid failing with "Unknown DWARF DW_OP_4"
#   See also: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=949296
override_dh_dwz:
	dh_dwz \
	  --exclude=libarrow.so \
	  --exclude=libparquet.so
