
#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H)
#error \
    "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead."
#else
#define KOKKOS_CORE_CONFIG_H
#endif

// KOKKOS_VERSION % 100 is the patch level
// KOKKOS_VERSION / 100 % 100 is the minor version
// KOKKOS_VERSION / 10000 is the major version
#cmakedefine KOKKOS_VERSION @KOKKOS_VERSION@
// Not using #cmakedefine below because a "0" FOO version number
// yields /* undef KOKKOS_VERSION_FOO */
#define KOKKOS_VERSION_MAJOR @KOKKOS_VERSION_MAJOR@
#define KOKKOS_VERSION_MINOR @KOKKOS_VERSION_MINOR@
#define KOKKOS_VERSION_PATCH @KOKKOS_VERSION_PATCH@

#cmakedefine KOKKOS_IMPL_BUILD_SHARED_LIBS

/* Execution Spaces */
#cmakedefine KOKKOS_ENABLE_SERIAL
#cmakedefine KOKKOS_ENABLE_OPENMP
#cmakedefine KOKKOS_ENABLE_OPENACC
#cmakedefine KOKKOS_ENABLE_THREADS
#cmakedefine KOKKOS_ENABLE_CUDA
#cmakedefine KOKKOS_ENABLE_HIP
#cmakedefine KOKKOS_ENABLE_HPX
#cmakedefine KOKKOS_ENABLE_SYCL

/* General Settings */
#cmakedefine KOKKOS_ENABLE_CXX20
#cmakedefine KOKKOS_ENABLE_CXX23
#cmakedefine KOKKOS_ENABLE_CXX26

#cmakedefine KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE
#cmakedefine KOKKOS_ENABLE_CUDA_UVM  // deprecated
#cmakedefine KOKKOS_ENABLE_CUDA_LAMBDA  // deprecated
#cmakedefine KOKKOS_ENABLE_CUDA_CONSTEXPR
#cmakedefine KOKKOS_ENABLE_IMPL_CUDA_MALLOC_ASYNC
#cmakedefine KOKKOS_ENABLE_IMPL_CUDA_UNIFIED_MEMORY
#cmakedefine KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE
#cmakedefine KOKKOS_ENABLE_HIP_MULTIPLE_KERNEL_INSTANTIATIONS
#cmakedefine KOKKOS_ENABLE_IMPL_HIP_MALLOC_ASYNC
#cmakedefine KOKKOS_ENABLE_SYCL_RELOCATABLE_DEVICE_CODE
#cmakedefine KOKKOS_ENABLE_IMPL_SYCL_OUT_OF_ORDER_QUEUES
#cmakedefine KOKKOS_IMPL_SYCL_DEVICE_GLOBAL_SUPPORTED
#cmakedefine KOKKOS_ENABLE_OPENACC_FORCE_HOST_AS_DEVICE
#cmakedefine KOKKOS_ENABLE_IMPL_HPX_ASYNC_DISPATCH
#cmakedefine KOKKOS_ENABLE_DEBUG
#cmakedefine KOKKOS_ENABLE_DEBUG_DUALVIEW_MODIFY_CHECK  // deprecated
#cmakedefine KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK
#cmakedefine KOKKOS_ENABLE_TUNING
#cmakedefine KOKKOS_ENABLE_DEPRECATED_CODE_4
#cmakedefine KOKKOS_ENABLE_DEPRECATED_CODE_5
#cmakedefine KOKKOS_ENABLE_DEPRECATION_WARNINGS
#cmakedefine KOKKOS_ENABLE_LARGE_MEM_TESTS
#cmakedefine KOKKOS_ENABLE_COMPLEX_ALIGN
#cmakedefine KOKKOS_OPT_RANGE_AGGRESSIVE_VECTORIZATION  // deprecated
#cmakedefine KOKKOS_ENABLE_AGGRESSIVE_VECTORIZATION
#cmakedefine KOKKOS_ENABLE_EXPERIMENTAL_CXX20_MODULES
#cmakedefine KOKKOS_ENABLE_IMPL_MDSPAN
#cmakedefine KOKKOS_ENABLE_IMPL_VIEW_LEGACY
#cmakedefine KOKKOS_ENABLE_IMPL_REF_COUNT_BRANCH_UNLIKELY
#cmakedefine KOKKOS_ENABLE_IMPL_VIEW_OF_VIEWS_DESTRUCTOR_PRECONDITION_VIOLATION_WORKAROUND
#cmakedefine KOKKOS_ENABLE_ATOMICS_BYPASS
#cmakedefine KOKKOS_ENABLE_IMPL_CHECK_POSSIBLY_BREAKING_LAYOUTS
#cmakedefine KOKKOS_ENABLE_BENCHMARKS_HEAVY

/* TPL Settings */
#cmakedefine KOKKOS_ENABLE_HWLOC
#cmakedefine KOKKOS_ENABLE_LIBDL
#cmakedefine KOKKOS_ENABLE_LIBQUADMATH
#cmakedefine KOKKOS_ENABLE_ONEDPL
#cmakedefine KOKKOS_ENABLE_ROCTHRUST

/* Embedded dependencies */
#define KOKKOS_IMPL_DESUL_VERSION "@KOKKOS_DESUL_VERSION@"
#define KOKKOS_IMPL_MDSPAN_VERSION "@KOKKOS_MDSPAN_VERSION@"

#cmakedefine KOKKOS_ARCH_ARMV80
#cmakedefine KOKKOS_ARCH_ARMV8_THUNDERX
#cmakedefine KOKKOS_ARCH_ARMV81
#cmakedefine KOKKOS_ARCH_ARMV8_THUNDERX2
#cmakedefine KOKKOS_ARCH_ARMV9_GRACE
#cmakedefine KOKKOS_ARCH_ARMV84
#cmakedefine KOKKOS_ARCH_ARMV84_SVE
#cmakedefine KOKKOS_ARCH_ARM_NEON
#cmakedefine KOKKOS_ARCH_ARM_SVE
#cmakedefine KOKKOS_ARCH_A64FX
#cmakedefine KOKKOS_ARCH_AVX
#cmakedefine KOKKOS_ARCH_AVX2
#cmakedefine KOKKOS_ARCH_AVX512XEON
#cmakedefine KOKKOS_ARCH_KNC
#cmakedefine KOKKOS_ARCH_AVX512MIC
#cmakedefine KOKKOS_ARCH_POWER7
#cmakedefine KOKKOS_ARCH_POWER8
#cmakedefine KOKKOS_ARCH_POWER9
#cmakedefine KOKKOS_ARCH_RISCV_SG2042
#cmakedefine KOKKOS_ARCH_RISCV_RVA22V
#cmakedefine KOKKOS_ARCH_RISCV_U74MC
#cmakedefine KOKKOS_ARCH_INTEL_GEN
#cmakedefine KOKKOS_ARCH_INTEL_DG1
#cmakedefine KOKKOS_ARCH_INTEL_DG2
#cmakedefine KOKKOS_ARCH_INTEL_GEN9
#cmakedefine KOKKOS_ARCH_INTEL_GEN11
#cmakedefine KOKKOS_ARCH_INTEL_GEN12LP
#cmakedefine KOKKOS_ARCH_INTEL_XEHP
#cmakedefine KOKKOS_ARCH_INTEL_PVC
#cmakedefine KOKKOS_ARCH_INTEL_GPU
#cmakedefine KOKKOS_ARCH_KEPLER
#cmakedefine KOKKOS_ARCH_KEPLER30
#cmakedefine KOKKOS_ARCH_KEPLER32
#cmakedefine KOKKOS_ARCH_KEPLER35
#cmakedefine KOKKOS_ARCH_KEPLER37
#cmakedefine KOKKOS_ARCH_MAXWELL
#cmakedefine KOKKOS_ARCH_MAXWELL50
#cmakedefine KOKKOS_ARCH_MAXWELL52
#cmakedefine KOKKOS_ARCH_MAXWELL53
#cmakedefine KOKKOS_ARCH_PASCAL
#cmakedefine KOKKOS_ARCH_PASCAL60
#cmakedefine KOKKOS_ARCH_PASCAL61
#cmakedefine KOKKOS_ARCH_VOLTA
#cmakedefine KOKKOS_ARCH_VOLTA70
#cmakedefine KOKKOS_ARCH_VOLTA72
#cmakedefine KOKKOS_ARCH_TURING75
#cmakedefine KOKKOS_ARCH_AMPERE
#cmakedefine KOKKOS_ARCH_AMPERE80
#cmakedefine KOKKOS_ARCH_AMPERE86
#cmakedefine KOKKOS_ARCH_AMPERE87
#cmakedefine KOKKOS_ARCH_ADA89
#cmakedefine KOKKOS_ARCH_HOPPER
#cmakedefine KOKKOS_ARCH_HOPPER90
#cmakedefine KOKKOS_ARCH_BLACKWELL
#cmakedefine KOKKOS_ARCH_BLACKWELL100
#cmakedefine KOKKOS_ARCH_BLACKWELL120
#cmakedefine KOKKOS_ARCH_AMD_ZEN
#cmakedefine KOKKOS_ARCH_AMD_ZEN2
#cmakedefine KOKKOS_ARCH_AMD_ZEN3
#cmakedefine KOKKOS_ARCH_AMD_ZEN4
#cmakedefine KOKKOS_ARCH_AMD_ZEN5
#cmakedefine KOKKOS_ARCH_AMD_GFX906
#cmakedefine KOKKOS_ARCH_AMD_GFX908
#cmakedefine KOKKOS_ARCH_AMD_GFX90A
#cmakedefine KOKKOS_ARCH_AMD_GFX940
#cmakedefine KOKKOS_ARCH_AMD_GFX942
#cmakedefine KOKKOS_ARCH_AMD_GFX942_APU
#cmakedefine KOKKOS_ARCH_AMD_GFX1030
#cmakedefine KOKKOS_ARCH_AMD_GFX1100
#cmakedefine KOKKOS_ARCH_AMD_GFX1103
#cmakedefine KOKKOS_ARCH_AMD_GFX1201
#cmakedefine KOKKOS_ARCH_AMD_GPU "@KOKKOS_ARCH_AMD_GPU@"
#cmakedefine KOKKOS_ARCH_VEGA // deprecated
#cmakedefine KOKKOS_ARCH_VEGA906 // deprecated
#cmakedefine KOKKOS_ARCH_VEGA908 // deprecated
#cmakedefine KOKKOS_ARCH_VEGA90A // deprecated
#cmakedefine KOKKOS_ARCH_NAVI // deprecated
#cmakedefine KOKKOS_ARCH_NAVI1030 // deprecated
#cmakedefine KOKKOS_ARCH_NAVI1100 // deprecated

#cmakedefine KOKKOS_IMPL_32BIT
