#!/usr/bin/make -f

# We don't want the binaries built in internal/generated/snippets, internal/godocfx, internal/postprocessor
# also disable some tests and internal/aliasgen that required more build-deps.
export DH_GOLANG_EXCLUDES := \
        auth/internal/transport/cert/cmd \
        bigtable/cmd \
        bigtable/internal/testproxy \
        httpreplay/cmd \
        internal/actions/cmd \
        internal/aliasfix/cmd \
        internal/aliasgen/cmd \
        internal/carver/cmd \
        internal/gapicgen/cmd \
        internal/generated/snippets \
        internal/godocfx \
        internal/librariangen \
        internal/postprocessor \
        internal/protoveneer/cmd \
        internal/stategen \
        profiler/busybench \
        pubsub/internal/benchwrapper \
        pubsub/loadtest/cmd \
        pubsub/v2/internal/benchwrapper \
        spanner/benchmarks \
        spanner/internal/benchwrapper \
        spanner/test/cloudexecutor \
        spanner/test/cloudexecutor \
        spanner/test/opentelemetry \
        spanner/test/opentelemetry/test \
        storage/internal/benchmarks \
        vertexai/internal/sentencepiece/internal/cmd

export DH_GOLANG_INSTALL_EXTRA := storage/internal/test

%:
	dh $@ --builddirectory=_build --buildsystem=golang

execute_after_dh_auto_configure:
	# Configure copied files into _build without the 'v2' folder.
	# We move dataproc, recaptcha and vision submodule directory into the 'v2' folder to workaround FTBFS
	# ONLY if it hasn't been done already to avoid errors on autopkgtest
	if [ ! -d _build/src/cloud.google.com/go/dataproc/v2 ]; then \
		mkdir -p _build/src/cloud.google.com/go/dataproc/v2; \
		mv _build/src/cloud.google.com/go/dataproc/apiv1* \
		   _build/src/cloud.google.com/go/dataproc/v2/ || true; \
		mv _build/src/cloud.google.com/go/dataproc/internal \
		   _build/src/cloud.google.com/go/dataproc/v2/ || true; \
	fi
	if [ ! -d _build/src/cloud.google.com/go/recaptchaenterprise/v2 ]; then \
		mkdir -p _build/src/cloud.google.com/go/recaptchaenterprise/v2; \
		mv _build/src/cloud.google.com/go/recaptchaenterprise/apiv1* \
		   _build/src/cloud.google.com/go/recaptchaenterprise/v2/ || true; \
		mv _build/src/cloud.google.com/go/recaptchaenterprise/internal \
		   _build/src/cloud.google.com/go/recaptchaenterprise/v2/ || true; \
	fi
	if [ ! -d _build/src/cloud.google.com/go/vision/v2 ]; then \
		mkdir -p _build/src/cloud.google.com/go/vision/v2; \
		mv _build/src/cloud.google.com/go/vision/apiv1* \
		   _build/src/cloud.google.com/go/vision/v2/ || true; \
		mv _build/src/cloud.google.com/go/vision/internal \
		   _build/src/cloud.google.com/go/vision/v2/ || true; \
	fi

override_dh_auto_test:
ifeq ($(DEB_HOST_ARCH),i386)
# https://github.com/googleapis/google-cloud-go/issues/14220
	rm -fv _build/src/cloud.google.com/go/pubsub/flow_controller_test.go
	rm -fv _build/src/cloud.google.com/go/pubsub/internal/longtest/endtoend_test.go
	rm -fv _build/src/cloud.google.com/go/pubsublite/internal/wire/settings_test.go
	rm -fv _build/src/cloud.google.com/go/spanner/spansql/parser_test.go
	rm -fv _build/src/cloud.google.com/go/pubsub/v2/flow_controller_test.go
	rm -fv _build/src/cloud.google.com/go/pubsub/v2/internal/longtest/endtoend_test.go
endif
	# After our 0005-drop-missing-opentelemetry-contrib-detectors-gcp.patch, storage failed to setup
	# Also disable tests that failed to write
	DH_GOLANG_EXCLUDES="$(DH_GOLANG_EXCLUDES) storage" \
	dh_auto_test -- -short -timeout=30m -skip="\
	TestCountTokens|\
	TestCreateTokenizer|\
	TestDownload|\
	TestLoadModelData|\
	"

IPATH := cloud.google.com/go
PKG1 := golang-google-cloud-dev
PKG2 := golang-google-cloud-compute-metadata-dev
PREFIX := usr/share/gocode/src

override_dh_fixperms:
	dh_fixperms
	# Drop executable bits to make lintian happy
	find debian/$(SOURCE_NAME) -type f -executable -not -name "*.sh" -exec chmod -x {} +

override_dh_install:
	dh_install
	# Move compute/metadata files into separate package.
	mkdir -vp debian/$(PKG2)/$(PREFIX)/$(IPATH)/
	mv -v debian/$(PKG1)/$(PREFIX)/$(IPATH)/compute/ debian/$(PKG2)/$(PREFIX)/$(IPATH)
