# 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_PACKAGE_PYTHON3
	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_6
	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 >= 6"
	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
		!BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_USES_GLIBC || \
		!BR2_TOOLCHAIN_GCC_AT_LEAST_6
	depends on BR2_PACKAGE_MONGODB_ARCH_SUPPORTS
	depends on !BR2_PACKAGE_PYTHON3
