# from https://docs.mongodb.com/manual/installation/#supported-platforms
config BR2_PACKAGE_MONGODB_ARCH_SUPPORTS
	bool
	# ARM needs LDREX/STREX, so ARMv6+
	default y if BR2_arm && !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5
	default y if BR2_aarch64 || BR2_x86_64

config BR2_PACKAGE_MONGODB
	bool "mongodb"
	depends on BR2_PACKAGE_MONGODB_ARCH_SUPPORTS
	depends on BR2_TOOLCHAIN_USES_GLIBC # needs glibc malloc_usable_size
	depends on BR2_USE_WCHAR
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_INSTALL_LIBSTDCPP
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17
	select BR2_PACKAGE_BOOST
	select BR2_PACKAGE_BOOST_FILESYSTEM
	select BR2_PACKAGE_BOOST_IOSTREAMS
	select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS
	select BR2_PACKAGE_BOOST_SYSTEM
	select BR2_PACKAGE_PCRE
	select BR2_PACKAGE_PCRE_UTF # runtime
	select BR2_PACKAGE_SNAPPY
	select BR2_PACKAGE_SQLITE
	select BR2_PACKAGE_YAML_CPP
	select BR2_PACKAGE_ZLIB
	help
	  MongoDB is a cross-platform document-oriented database
	  (NoSQL).

	  It uses JSON-like documents with dynamic schemas (BSON),
	  making the integration of data in certain types of
	  applications easier and faster.

	  https://www.mongodb.org/

comment "mongodb needs a glibc toolchain w/ wchar, threads, C++, gcc >= 7"
	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
		!BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_USES_GLIBC || \
		!BR2_TOOLCHAIN_GCC_AT_LEAST_7
	depends on BR2_PACKAGE_MONGODB_ARCH_SUPPORTS
