# 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
	depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-filesystem

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
