config BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
	bool
	default y if BR2_i386 || BR2_x86_64 || BR2_arm || BR2_aarch64 || \
		BR2_mips || BR2_mipsel

config BR2_PACKAGE_GOOGLE_BREAKPAD
	bool "google-breakpad"
	depends on BR2_INSTALL_LIBSTDCPP
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17
	depends on BR2_USE_WCHAR
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_TOOLCHAIN_USES_GLIBC
	depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
	depends on BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS
	select BR2_PACKAGE_LINUX_SYSCALL_SUPPORT
	select BR2_PACKAGE_ZLIB
	help
	  Google-Breakpad is a library and tool suite that allows you
	  to distribute an application to users with compiler-provided
	  debugging information removed, record crashes in compact
	  "minidump" files, send them back to your server, and produce
	  C and C++ stack traces from these minidumps. Breakpad can
	  also write minidumps on request for programs that have not
	  crashed.

	  You may want to set BR2_ENABLE_DEBUG, in order to get useful
	  results.

	  This target package installs a static library named
	  libbreakpad_client.a which should be linked into programs
	  willing to use Google Breakpad. A host variant of this
	  package is also available, and provides the different tools
	  needed to extract the debugging symbols from target
	  binaries.

	  https://chromium.googlesource.com/breakpad/breakpad

if BR2_PACKAGE_GOOGLE_BREAKPAD

config BR2_PACKAGE_GOOGLE_BREAKPAD_TOOLS
	bool "Build target tools"
	help
	  Build processor and tools for target: dump_syms,
	  minidump_stackwalk and microdump_stackwalk.

endif

comment "google-breakpad requires a glibc toolchain w/ wchar, threads, C++, gcc >= 7"
	depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
	depends on BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS
	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
		!BR2_TOOLCHAIN_HAS_THREADS || \
		!BR2_TOOLCHAIN_USES_GLIBC || \
		!BR2_TOOLCHAIN_GCC_AT_LEAST_7
