COMMENT =		Android debugging tools

V =			35.0.2
DISTNAME =		android-tools-${V}
PKGNAME =		adb-${V}

CATEGORIES =		devel

HOMEPAGE =		https://developer.android.com/tools/help/adb.html

SITES =			https://github.com/nmeum/android-tools/releases/download/${V}/

EXTRACT_SUFX =		.tar.xz

# Apache License v2.0
PERMIT_PACKAGE =	Yes

WANTLIB =  ${COMPILER_LIBCXX} absl_base absl_borrowed_fixup_buffer
WANTLIB += absl_city absl_civil_time absl_cord absl_cord_internal
WANTLIB += absl_cordz_functions absl_cordz_handle absl_cordz_info
WANTLIB += absl_crc32c absl_crc_cord_state absl_crc_cpu_detect
WANTLIB += absl_crc_internal absl_debugging_internal
WANTLIB += absl_decode_rust_punycode absl_demangle_internal
WANTLIB += absl_demangle_rust absl_die_if_null absl_examine_stack
WANTLIB += absl_exponential_biased absl_flags_commandlineflag
WANTLIB += absl_flags_commandlineflag_internal absl_flags_config
WANTLIB += absl_flags_internal absl_flags_marshalling
WANTLIB += absl_flags_private_handle_accessor absl_flags_program_name
WANTLIB += absl_flags_reflection absl_graphcycles_internal absl_hash
WANTLIB += absl_hashtablez_sampler absl_int128
WANTLIB += absl_kernel_timeout_internal absl_leak_check absl_log_entry
WANTLIB += absl_log_globals absl_log_initialize
WANTLIB += absl_log_internal_check_op absl_log_internal_conditions
WANTLIB += absl_log_internal_fnmatch absl_log_internal_format
WANTLIB += absl_log_internal_globals absl_log_internal_log_sink_set
WANTLIB += absl_log_internal_message absl_log_internal_nullguard
WANTLIB += absl_log_internal_proto absl_log_internal_structured_proto
WANTLIB += absl_log_severity absl_log_sink absl_malloc_internal
WANTLIB += absl_random_distributions absl_random_internal_entropy_pool
WANTLIB += absl_random_internal_platform absl_random_internal_randen
WANTLIB += absl_random_internal_randen_hwaes
WANTLIB += absl_random_internal_randen_hwaes_impl
WANTLIB += absl_random_internal_randen_slow
WANTLIB += absl_random_internal_seed_material
WANTLIB += absl_random_seed_gen_exception absl_random_seed_sequences
WANTLIB += absl_raw_hash_set absl_raw_logging_internal
WANTLIB += absl_spinlock_wait absl_stacktrace absl_status absl_statusor
WANTLIB += absl_str_format_internal absl_strerror absl_strings
WANTLIB += absl_strings_internal absl_symbolize absl_synchronization
WANTLIB += absl_throw_delegate absl_time absl_time_zone
WANTLIB += absl_tracing_internal absl_utf8_for_code_point
WANTLIB += absl_vlog_config_internal brotlicommon brotlidec brotlienc c
WANTLIB += fmt lz4 m pcre2-8 protobuf pthread usb-1.0 utf8_validity z zstd

LIB_DEPENDS =		archivers/brotli \
			archivers/lz4 \
			archivers/zstd \
			devel/fmt \
			devel/libusb1 \
			devel/pcre2 \
			devel/protobuf

MODULES =		devel/cmake

BUILD_DEPENDS =		lang/go

RUN_DEPENDS =		lang/python/3

CONFIGURE_ARGS =	-DANDROID_TOOLS_PATCH_VENDOR=OFF \
			-DCMAKE_INSTALL_PREFIX=${PREFIX}

# Go (boringssl err_data_generate.go) needs a writable cache dir
MAKE_ENV +=		GOCACHE=/tmp/adb-gocache

NO_TEST =		Yes

# Copy OpenBSD compat stubs for Linux-specific headers not in the tarball.
post-patch:
	mkdir -p ${WRKSRC}/vendor/compat/sys ${WRKSRC}/vendor/compat/linux
	cp ${FILESDIR}/compat-sysmacros.h ${WRKSRC}/vendor/compat/sys/sysmacros.h
	cp ${FILESDIR}/compat-capability.h ${WRKSRC}/vendor/compat/linux/capability.h
	cp ${FILESDIR}/compat-string.h ${WRKSRC}/vendor/compat/string.h
	cp ${FILESDIR}/fastboot_usb_libusb.cpp \
	    ${WRKSRC}/vendor/core/fastboot/usb_libusb.cpp
	cp ${FILESDIR}/adb_usb_openbsd.cpp \
	    ${WRKSRC}/vendor/adb/client/usb_openbsd.cpp

.include <bsd.port.mk>
