#pragma once

#cmakedefine NVSHMEM_COMPLEX_SUPPORT
#cmakedefine NVSHMEM_DEBUG
#cmakedefine NVSHMEM_DEVEL
#cmakedefine NVSHMEM_TRACE
#cmakedefine NVSHMEM_DEFAULT_PMI2
#cmakedefine NVSHMEM_DEFAULT_PMIX
#cmakedefine NVSHMEM_DEFAULT_UCX
#cmakedefine NVSHMEM_GPU_COLL_USE_LDST
#cmakedefine NVSHMEM_IBDEVX_SUPPORT
#cmakedefine NVSHMEM_IBRC_SUPPORT
#cmakedefine NVSHMEM_LIBFABRIC_SUPPORT
#cmakedefine NVSHMEM_MPI_SUPPORT
#cmakedefine NVSHMEM_NVTX
#cmakedefine NVSHMEM_PMIX_SUPPORT
#cmakedefine NVSHMEM_SHMEM_SUPPORT
#cmakedefine NVSHMEM_TEST_STATIC_LIB
#cmakedefine NVSHMEM_TIMEOUT_DEVICE_POLLING
#cmakedefine NVSHMEM_UCX_SUPPORT
#cmakedefine NVSHMEM_USE_DLMALLOC
#cmakedefine NVSHMEM_USE_NCCL
#cmakedefine NVSHMEM_USE_GDRCOPY
#cmakedefine NVSHMEM_VERBOSE
#cmakedefine NVSHMEM_BUILD_TESTS
#cmakedefine NVSHMEM_BUILD_EXAMPLES
#cmakedefine NVSHMEM_IBGDA_SUPPORT
#cmakedefine NVSHMEM_IBGDA_SUPPORT_GPUMEM_ONLY
#cmakedefine NVSHMEM_ENABLE_ALL_DEVICE_INLINING

#if defined __clang_llvm_bitcode_lib__ || defined NVSHMEM_BITCODE_APPLICATION
#undef NVSHMEM_IBGDA_SUPPORT
#undef NVSHMEM_IBGDA_SUPPORT_GPUMEM_ONLY
#define NVSHMEM_ENABLE_ALL_DEVICE_INLINING
#endif
