config BR2_PACKAGE_POCO_ARCH_SUPPORTS
	bool
	default y
	depends on !BR2_arc
	depends on !BR2_microblaze
	depends on !BR2_mipsel
	depends on !BR2_or1k
	depends on !BR2_RISCV_32
	depends on !BR2_xtensa

config BR2_PACKAGE_POCO
	bool "poco"
	depends on BR2_INSTALL_LIBSTDCPP
	depends on BR2_USE_WCHAR
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # C++17
	# pthread_condattr_setclock
	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
	depends on !BR2_STATIC_LIBS # dlopen()
	depends on BR2_PACKAGE_POCO_ARCH_SUPPORTS
	select BR2_PACKAGE_PCRE2
	select BR2_PACKAGE_UTF8PROC
	select BR2_PACKAGE_ZLIB
	help
	  The C++ Portable Components Libraries

	  http://pocoproject.org

if BR2_PACKAGE_POCO

comment "poco components"

config BR2_PACKAGE_POCO_ACTIVERECORD
	bool "ActiveRecord"
	select BR2_PACKAGE_POCO_XML

config BR2_PACKAGE_POCO_CPP_PARSER
	bool "CppParser"

config BR2_PACKAGE_POCO_CRYPTO
	bool "Crypto"
	select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL
	select BR2_PACKAGE_OPENSSL

config BR2_PACKAGE_POCO_DATA
	bool

config BR2_PACKAGE_POCO_DATA_MYSQL
	bool "Data/MySQL"
	depends on BR2_USE_MMU # mysql
	select BR2_PACKAGE_MARIADB
	select BR2_PACKAGE_POCO_DATA

config BR2_PACKAGE_POCO_DATA_PGSQL
	bool "Data/PostgreSQL"
	depends on BR2_USE_MMU # postgresql
	depends on !BR2_sparc
	depends on BR2_USE_WCHAR # postgresql
	depends on BR2_ENABLE_LOCALE # postgresql
	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # postgresql
	depends on !BR2_STATIC_LIBS # postgresql
	depends on !BR2_OPTIMIZE_FAST # postgresql
	select BR2_PACKAGE_POCO_DATA
	select BR2_PACKAGE_POSTGRESQL

comment "Data/PostgreSQL can't be built with Optimize for fast"
	depends on BR2_OPTIMIZE_FAST

config BR2_PACKAGE_POCO_DATA_SQLITE
	bool "Data/SQLite"
	select BR2_PACKAGE_POCO_DATA
	select BR2_PACKAGE_SQLITE

config BR2_PACKAGE_POCO_JSON
	bool "JSON"

config BR2_PACKAGE_POCO_JWT
	bool "JWT"
	select BR2_PACKAGE_POCO_CRYPTO
	select BR2_PACKAGE_POCO_JSON

config BR2_PACKAGE_POCO_MONGODB
	bool "MongoDB"
	select BR2_PACKAGE_POCO_NET

config BR2_PACKAGE_POCO_NET
	bool "Net"

config BR2_PACKAGE_POCO_NETSSL_OPENSSL
	bool "NetSSL_OpenSSL"
	select BR2_PACKAGE_OPENSSL
	select BR2_PACKAGE_POCO_CRYPTO
	select BR2_PACKAGE_POCO_NET
	select BR2_PACKAGE_POCO_UTIL

config BR2_PACKAGE_POCO_PDF
	bool "PDF"
	select BR2_PACKAGE_POCO_JSON
	select BR2_PACKAGE_POCO_UTIL
	select BR2_PACKAGE_POCO_XML

config BR2_PACKAGE_POCO_PROMETHEUS
	bool "Prometheus"
	select BR2_PACKAGE_POCO_NET

config BR2_PACKAGE_POCO_REDIS
	bool "Redis"
	select BR2_PACKAGE_POCO_NET

config BR2_PACKAGE_POCO_UTIL
	bool "Util"
	select BR2_PACKAGE_POCO_XML

config BR2_PACKAGE_POCO_XML
	bool "XML"
	select BR2_PACKAGE_EXPAT

config BR2_PACKAGE_POCO_ZIP
	bool "Zip"
	select BR2_PACKAGE_POCO_NET
	select BR2_PACKAGE_POCO_UTIL
	select BR2_PACKAGE_POCO_XML

endif # BR2_PACKAGE_POCO

comment "poco needs a toolchain w/ wchar, NPTL, C++, dynamic library, gcc >= 8"
	depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP \
		|| !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS \
		|| !BR2_TOOLCHAIN_GCC_AT_LEAST_8
	depends on BR2_PACKAGE_POCO_ARCH_SUPPORTS
