#ifndef BUILD_BUILD_CONFIG_H_
#define BUILD_BUILD_CONFIG_H_
#include "build/buildflag.h"
#if defined(__native_client__)
#define OS_NACL …
#elif defined(ANDROID)
#define OS_ANDROID …
#elif defined(__APPLE__)
#include <TargetConditionals.h>
#if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
#define OS_IOS …
#if defined(TARGET_OS_MACCATALYST) && TARGET_OS_MACCATALYST
#define OS_IOS_MACCATALYST
#endif
#if defined(TARGET_OS_VISION) && TARGET_OS_VISION
#define OS_IOS_VISION …
#endif
#if defined(TARGET_OS_WATCH) && TARGET_OS_WATCH
#define OS_IOS_WATCH …
#endif
#else
#define OS_MAC …
#endif
#elif defined(__linux__)
#if !defined(OS_CHROMEOS)
#define OS_LINUX …
#endif
#include <assert.h>
#if defined(__GLIBC__) && !defined(__UCLIBC__)
#define LIBC_GLIBC …
#endif
#elif defined(_WIN32)
#define OS_WIN …
#elif defined(__Fuchsia__)
#define OS_FUCHSIA …
#elif defined(__FreeBSD__)
#define OS_FREEBSD …
#elif defined(__NetBSD__)
#define OS_NETBSD …
#elif defined(__OpenBSD__)
#define OS_OPENBSD …
#elif defined(__sun)
#define OS_SOLARIS …
#elif defined(__QNXNTO__)
#define OS_QNX …
#elif defined(_AIX)
#define OS_AIX …
#elif defined(__asmjs__) || defined(__wasm__)
#define OS_ASMJS …
#elif defined(__MVS__)
#define OS_ZOS …
#else
#error Please add support for your platform in build/build_config.h
#endif
#if defined(OS_MAC) || defined(OS_IOS)
#define OS_APPLE …
#endif
#if defined(OS_FREEBSD) || defined(OS_NETBSD) || defined(OS_OPENBSD)
#define OS_BSD …
#endif
#if defined(OS_AIX) || defined(OS_ANDROID) || defined(OS_ASMJS) || \
defined(OS_FREEBSD) || defined(OS_IOS) || defined(OS_LINUX) || \
defined(OS_CHROMEOS) || defined(OS_MAC) || defined(OS_NACL) || \
defined(OS_NETBSD) || defined(OS_OPENBSD) || defined(OS_QNX) || \
defined(OS_SOLARIS) || defined(OS_ZOS)
#define OS_POSIX …
#endif
#if defined(OS_AIX)
#define BUILDFLAG_INTERNAL_IS_AIX …
#else
#define BUILDFLAG_INTERNAL_IS_AIX() …
#endif
#if defined(OS_ANDROID)
#define BUILDFLAG_INTERNAL_IS_ANDROID …
#else
#define BUILDFLAG_INTERNAL_IS_ANDROID() …
#endif
#if defined(OS_APPLE)
#define BUILDFLAG_INTERNAL_IS_APPLE …
#else
#define BUILDFLAG_INTERNAL_IS_APPLE() …
#endif
#if defined(OS_ASMJS)
#define BUILDFLAG_INTERNAL_IS_ASMJS …
#else
#define BUILDFLAG_INTERNAL_IS_ASMJS() …
#endif
#if defined(OS_BSD)
#define BUILDFLAG_INTERNAL_IS_BSD …
#else
#define BUILDFLAG_INTERNAL_IS_BSD() …
#endif
#if defined(OS_CHROMEOS)
#define BUILDFLAG_INTERNAL_IS_CHROMEOS …
#else
#define BUILDFLAG_INTERNAL_IS_CHROMEOS() …
#endif
#if defined(OS_FREEBSD)
#define BUILDFLAG_INTERNAL_IS_FREEBSD …
#else
#define BUILDFLAG_INTERNAL_IS_FREEBSD() …
#endif
#if defined(OS_FUCHSIA)
#define BUILDFLAG_INTERNAL_IS_FUCHSIA …
#else
#define BUILDFLAG_INTERNAL_IS_FUCHSIA() …
#endif
#if defined(OS_IOS)
#define BUILDFLAG_INTERNAL_IS_IOS …
#else
#define BUILDFLAG_INTERNAL_IS_IOS() …
#endif
#if defined(OS_IOS_MACCATALYST)
#define BUILDFLAG_INTERNAL_IS_IOS_MACCATALYST …
#else
#define BUILDFLAG_INTERNAL_IS_IOS_MACCATALYST() …
#endif
#if defined(OS_IOS_VISION)
#define BUILDFLAG_INTERNAL_IS_IOS_VISION …
#else
#define BUILDFLAG_INTERNAL_IS_IOS_VISION() …
#endif
#if defined(OS_IOS_WATCH)
#define BUILDFLAG_INTERNAL_IS_IOS_WATCH …
#else
#define BUILDFLAG_INTERNAL_IS_IOS_WATCH() …
#endif
#if defined(OS_LINUX)
#define BUILDFLAG_INTERNAL_IS_LINUX() …
#else
#define BUILDFLAG_INTERNAL_IS_LINUX …
#endif
#if defined(OS_MAC)
#define BUILDFLAG_INTERNAL_IS_MAC …
#else
#define BUILDFLAG_INTERNAL_IS_MAC() …
#endif
#if defined(OS_NACL)
#define BUILDFLAG_INTERNAL_IS_NACL …
#else
#define BUILDFLAG_INTERNAL_IS_NACL() …
#endif
#if defined(OS_NETBSD)
#define BUILDFLAG_INTERNAL_IS_NETBSD …
#else
#define BUILDFLAG_INTERNAL_IS_NETBSD() …
#endif
#if defined(OS_OPENBSD)
#define BUILDFLAG_INTERNAL_IS_OPENBSD …
#else
#define BUILDFLAG_INTERNAL_IS_OPENBSD() …
#endif
#if defined(OS_POSIX)
#define BUILDFLAG_INTERNAL_IS_POSIX() …
#else
#define BUILDFLAG_INTERNAL_IS_POSIX …
#endif
#if defined(OS_QNX)
#define BUILDFLAG_INTERNAL_IS_QNX …
#else
#define BUILDFLAG_INTERNAL_IS_QNX() …
#endif
#if defined(OS_SOLARIS)
#define BUILDFLAG_INTERNAL_IS_SOLARIS …
#else
#define BUILDFLAG_INTERNAL_IS_SOLARIS() …
#endif
#if defined(OS_WIN)
#define BUILDFLAG_INTERNAL_IS_WIN …
#else
#define BUILDFLAG_INTERNAL_IS_WIN() …
#endif
#if defined(USE_OZONE)
#define BUILDFLAG_INTERNAL_IS_OZONE() …
#else
#define BUILDFLAG_INTERNAL_IS_OZONE …
#endif
#if defined(__GNUC__)
#define COMPILER_GCC …
#elif defined(_MSC_VER)
#define COMPILER_MSVC …
#else
#error Please add support for your compiler in build/build_config.h
#endif
#if defined(_M_X64) || defined(__x86_64__)
#define ARCH_CPU_X86_FAMILY …
#define ARCH_CPU_X86_64 …
#define ARCH_CPU_64_BITS …
#define ARCH_CPU_LITTLE_ENDIAN …
#elif defined(_M_IX86) || defined(__i386__)
#define ARCH_CPU_X86_FAMILY …
#define ARCH_CPU_X86 …
#define ARCH_CPU_32_BITS …
#define ARCH_CPU_LITTLE_ENDIAN …
#elif defined(__s390x__)
#define ARCH_CPU_S390_FAMILY …
#define ARCH_CPU_S390X …
#define ARCH_CPU_64_BITS …
#define ARCH_CPU_BIG_ENDIAN …
#elif defined(__s390__)
#define ARCH_CPU_S390_FAMILY …
#define ARCH_CPU_S390 …
#define ARCH_CPU_31_BITS …
#define ARCH_CPU_BIG_ENDIAN …
#elif (defined(__PPC64__) || defined(__PPC__)) && defined(__BIG_ENDIAN__)
#define ARCH_CPU_PPC64_FAMILY …
#define ARCH_CPU_PPC64 …
#define ARCH_CPU_64_BITS …
#define ARCH_CPU_BIG_ENDIAN …
#elif defined(__PPC64__)
#define ARCH_CPU_PPC64_FAMILY …
#define ARCH_CPU_PPC64 …
#define ARCH_CPU_64_BITS …
#define ARCH_CPU_LITTLE_ENDIAN …
#elif defined(__ARMEL__)
#define ARCH_CPU_ARM_FAMILY …
#define ARCH_CPU_ARMEL …
#define ARCH_CPU_32_BITS …
#define ARCH_CPU_LITTLE_ENDIAN …
#elif defined(__aarch64__) || defined(_M_ARM64)
#define ARCH_CPU_ARM_FAMILY …
#define ARCH_CPU_ARM64 …
#define ARCH_CPU_64_BITS …
#define ARCH_CPU_LITTLE_ENDIAN …
#elif defined(__pnacl__) || defined(__asmjs__) || defined(__wasm__)
#define ARCH_CPU_32_BITS …
#define ARCH_CPU_LITTLE_ENDIAN …
#elif defined(__MIPSEL__)
#if defined(__LP64__)
#define ARCH_CPU_MIPS_FAMILY …
#define ARCH_CPU_MIPS64EL …
#define ARCH_CPU_64_BITS …
#define ARCH_CPU_LITTLE_ENDIAN …
#else
#define ARCH_CPU_MIPS_FAMILY …
#define ARCH_CPU_MIPSEL …
#define ARCH_CPU_32_BITS …
#define ARCH_CPU_LITTLE_ENDIAN …
#endif
#elif defined(__MIPSEB__)
#if defined(__LP64__)
#define ARCH_CPU_MIPS_FAMILY …
#define ARCH_CPU_MIPS64 …
#define ARCH_CPU_64_BITS …
#define ARCH_CPU_BIG_ENDIAN …
#else
#define ARCH_CPU_MIPS_FAMILY …
#define ARCH_CPU_MIPS …
#define ARCH_CPU_32_BITS …
#define ARCH_CPU_BIG_ENDIAN …
#endif
#elif defined(__loongarch__)
#define ARCH_CPU_LOONGARCH_FAMILY …
#define ARCH_CPU_LITTLE_ENDIAN …
#if __loongarch_grlen == 64
#define ARCH_CPU_LOONGARCH64 …
#define ARCH_CPU_64_BITS …
#else
#define ARCH_CPU_LOONGARCH32 …
#define ARCH_CPU_32_BITS …
#endif
#elif defined(__riscv) && (__riscv_xlen == 64)
#define ARCH_CPU_RISCV_FAMILY …
#define ARCH_CPU_RISCV64 …
#define ARCH_CPU_64_BITS …
#define ARCH_CPU_LITTLE_ENDIAN …
#else
#error Please add support for your architecture in build/build_config.h
#endif
#if defined(OS_WIN)
#define WCHAR_T_IS_16_BIT
#elif defined(OS_FUCHSIA)
#define WCHAR_T_IS_32_BIT
#elif defined(OS_POSIX) && defined(COMPILER_GCC) && defined(__WCHAR_MAX__) && \
(__WCHAR_MAX__ == 0x7fffffff || __WCHAR_MAX__ == 0xffffffff)
#define WCHAR_T_IS_32_BIT
#elif defined(OS_POSIX) && defined(COMPILER_GCC) && defined(__WCHAR_MAX__) && \
(__WCHAR_MAX__ == 0x7fff || __WCHAR_MAX__ == 0xffff)
#define WCHAR_T_IS_16_BIT
#else
#error Please add support for your compiler in build/build_config.h
#endif
#if defined(OS_ANDROID)
#define STD_STRING_ITERATOR_IS_CHAR_POINTER
#define BASE_STRING16_ITERATOR_IS_CHAR16_POINTER
#endif
#if !defined(CPU_ARM_NEON)
#if defined(__arm__)
#if !defined(__ARMEB__) && !defined(__ARM_EABI__) && !defined(__EABI__) && \
!defined(__VFP_FP__) && !defined(_WIN32_WCE) && !defined(ANDROID)
#error Chromium does not support middle endian architecture
#endif
#if defined(__ARM_NEON__)
#define CPU_ARM_NEON …
#endif
#endif
#endif
#if !defined(HAVE_MIPS_MSA_INTRINSICS)
#if defined(__mips_msa) && defined(__mips_isa_rev) && (__mips_isa_rev >= 5)
#define HAVE_MIPS_MSA_INTRINSICS …
#endif
#endif
#endif