config BR2_PACKAGE_CMAKE_ARCH_SUPPORTS
	bool
	default y
	depends on BR2_arm    || BR2_armeb       || BR2_aarch64  || \
		BR2_m68k      || BR2_mips        || BR2_mips64   || \
		BR2_mipsel    || BR2_mips64el    || BR2_powerpc  || \
		BR2_powerpc64 || BR2_powerpc64le || BR2_sparc    || \
		BR2_i386      || BR2_x86_64      || BR2_xtensa   || \
		BR2_s390x

config BR2_PACKAGE_CMAKE
	bool

config BR2_PACKAGE_CMAKE_CTEST
	bool "ctest"
	depends on BR2_PACKAGE_CMAKE_ARCH_SUPPORTS
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # from jsoncpp
	depends on BR2_USE_WCHAR # libarchive
	depends on BR2_INSTALL_LIBSTDCPP
	depends on !BR2_STATIC_LIBS
	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # libuv
	depends on BR2_USE_MMU # libuv
	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libuv
	select BR2_PACKAGE_CMAKE
	select BR2_PACKAGE_ZLIB
	select BR2_PACKAGE_JSONCPP
	select BR2_PACKAGE_LIBCURL
	select BR2_PACKAGE_LIBARCHIVE
	select BR2_PACKAGE_EXPAT
	select BR2_PACKAGE_BZIP2
	select BR2_PACKAGE_XZ
	select BR2_PACKAGE_LIBUV
	select BR2_PACKAGE_RHASH
	help
	  CTest is a testing tool distributed as a part of CMake. It
	  can be used to automate updating (using CVS for example),
	  configuring, building, testing, performing memory checking,
	  performing coverage, and submitting results to a CDash or
	  Dart dashboard system.

	  http://www.cmake.org/

comment "ctest needs a toolchain w/ C++, wchar, dynamic library, gcc >= 4.7, NPTL"
	depends on BR2_PACKAGE_CMAKE_ARCH_SUPPORTS
	depends on BR2_USE_MMU
	depends on BR2_TOOLCHAIN_HAS_SYNC_4
	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
		BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 || \
		!BR2_TOOLCHAIN_HAS_THREADS_NPTL
