/* ----------------------------------------------------------------- * Programmer(s): Cody J. Balos, Aaron Collier and Radu Serban @ LLNL * ----------------------------------------------------------------- * SUNDIALS Copyright Start * Copyright (c) 2002-2024, Lawrence Livermore National Security * and Southern Methodist University. * All rights reserved. * * See the top-level LICENSE and NOTICE files for details. * * SPDX-License-Identifier: BSD-3-Clause * SUNDIALS Copyright End * ----------------------------------------------------------------- * SUNDIALS configuration header file. * -----------------------------------------------------------------*/ #ifndef _SUNDIALS_CONFIG_H #define _SUNDIALS_CONFIG_H #include "sundials/sundials_export.h" /* Indicates that the function will not report an error via last_err, a return code. In C++, it is just defined as noexcept. */ #if defined(__cplusplus) #define SUNDIALS_NOEXCEPT noexcept #else #define SUNDIALS_NOEXCEPT #endif #ifndef SUNDIALS_DEPRECATED_MSG # define SUNDIALS_DEPRECATED_MSG(msg) @SUNDIALS_DEPRECATED_MSG_MACRO@ #endif #ifndef SUNDIALS_DEPRECATED_EXPORT_MSG # define SUNDIALS_DEPRECATED_EXPORT_MSG(msg) SUNDIALS_EXPORT SUNDIALS_DEPRECATED_MSG(msg) #endif #ifndef SUNDIALS_DEPRECATED_NO_EXPORT_MSG # define SUNDIALS_DEPRECATED_NO_EXPORT_MSG(msg) SUNDIALS_NO_EXPORT SUNDIALS_DEPRECATED_MSG(msg) #endif /* ------------------------------------------------------------------ * Define SUNDIALS version numbers * -----------------------------------------------------------------*/ #define SUNDIALS_VERSION "@PACKAGE_VERSION@" #define SUNDIALS_VERSION_MAJOR @PACKAGE_VERSION_MAJOR@ #define SUNDIALS_VERSION_MINOR @PACKAGE_VERSION_MINOR@ #define SUNDIALS_VERSION_PATCH @PACKAGE_VERSION_PATCH@ #define SUNDIALS_VERSION_LABEL "@PACKAGE_VERSION_LABEL@" #define SUNDIALS_GIT_VERSION "@SUNDIALS_GIT_VERSION@" /* ------------------------------------------------------------------ * SUNDIALS build information * -----------------------------------------------------------------*/ #cmakedefine SUNDIALS_C_COMPILER_HAS_BUILTIN_EXPECT #cmakedefine SUNDIALS_C_COMPILER_HAS_ATTRIBUTE_ASSUME #cmakedefine SUNDIALS_C_COMPILER_HAS_BUILTIN_ASSUME #cmakedefine SUNDIALS_C_COMPILER_HAS_ASSUME #cmakedefine SUNDIALS_C_COMPILER_HAS_ATTRIBUTE_UNUSED /* Define precision of SUNDIALS data type 'sunrealtype' * Depending on the precision level, one of the following * three macros will be defined: * #define SUNDIALS_SINGLE_PRECISION 1 * #define SUNDIALS_DOUBLE_PRECISION 1 * #define SUNDIALS_EXTENDED_PRECISION 1 */ @PRECISION_LEVEL@ /* Define type of vector indices in SUNDIALS 'sunindextype'. * Depending on user choice of index type, one of the following * two macros will be defined: * #define SUNDIALS_INT64_T 1 * #define SUNDIALS_INT32_T 1 */ @INDEX_TYPE@ /* Define the type of vector indices in SUNDIALS 'sunindextype'. * The macro will be defined with a type of the appropriate size. */ #define SUNDIALS_INDEX_TYPE @SUNDIALS_CINDEX_TYPE@ /* Use POSIX timers if available. * #define SUNDIALS_HAVE_POSIX_TIMERS */ #cmakedefine SUNDIALS_HAVE_POSIX_TIMERS /* BUILD CVODE with fused kernel functionality */ #cmakedefine SUNDIALS_BUILD_PACKAGE_FUSED_KERNELS /* BUILD SUNDIALS with monitoring functionalities */ #cmakedefine SUNDIALS_BUILD_WITH_MONITORING /* BUILD SUNDIALS with profiling functionalities */ #cmakedefine SUNDIALS_BUILD_WITH_PROFILING /* Enable error checking within SUNDIALS */ #cmakedefine SUNDIALS_ENABLE_ERROR_CHECKS /* BUILD SUNDIALS with logging functionalities */ #define SUNDIALS_LOGGING_LEVEL @SUNDIALS_LOGGING_LEVEL@ /* Build metadata */ #define SUN_C_COMPILER "@CMAKE_C_COMPILER_ID@" #define SUN_C_COMPILER_VERSION "@CMAKE_C_COMPILER_VERSION@" #define SUN_C_COMPILER_FLAGS "@CMAKE_C_FLAGS@" #define SUN_CXX_COMPILER "@CMAKE_CXX_COMPILER_ID@" #define SUN_CXX_COMPILER_VERSION "@CMAKE_CXX_COMPILER_VERSION@" #define SUN_CXX_COMPILER_FLAGS "@CMAKE_CXX_FLAGS@" #define SUN_FORTRAN_COMPILER "@CMAKE_FORTRAN_COMPILER_ID@" #define SUN_FORTRAN_COMPILER_VERSION "@CMAKE_FORTRAN_COMPILER_VERSION@" #define SUN_FORTRAN_COMPILER_FLAGS "@CMAKE_FORTRAN_FLAGS@" #define SUN_BUILD_TYPE "@CMAKE_BUILD_TYPE@" #define SUN_JOB_ID "@JOB_ID@" #define SUN_JOB_START_TIME "@JOB_START_TIME@" #define SUN_TPL_LIST "@SUNDIALS_TPL_LIST@" #define SUN_TPL_LIST_SIZE "@SUNDIALS_TPL_LIST_SIZE@" #define SUNDIALS_SPACK_VERSION "@SPACK_VERSION@" /* ------------------------------------------------------------------ * SUNDIALS TPL macros * -----------------------------------------------------------------*/ /* Caliper */ #cmakedefine SUNDIALS_CALIPER_ENABLED /* Adiak */ #cmakedefine SUNDIALS_ADIAK_ENABLED /* Ginkgo */ #cmakedefine SUNDIALS_GINKGO_ENABLED #define SUN_GINKGO_VERSION "@Ginkgo_VERSION@" /* HYPRE */ #cmakedefine SUNDIALS_HYPRE_ENABLED #define SUN_HYPRE_VERSION "@HYPRE_VERSION@" /* KLU */ #cmakedefine SUNDIALS_KLU_ENABLED #define SUN_KLU_VERSION "@KLU_VERSION@" /* KOKKOS */ #cmakedefine SUNDIALS_KOKKOS_ENABLED #define SUN_KOKKOS_VERSION "@Kokkos_VERSION@" /* KOKKOS_KERNELS */ #cmakedefine SUNDIALS_KOKKOS_KERNELS_ENABLED #define SUN_KOKKOS_KERNELS_VERSION "@KokkosKernels_VERSION@" /* LAPACK */ #cmakedefine SUNDIALS_BLAS_LAPACK_ENABLED #define SUN_LAPACK_VERSION "@LAPACK_VERSION@" /* MAGMA */ #cmakedefine SUNDIALS_MAGMA_ENABLED #define SUN_MAGMA_VERSION "@MAGMA_VERSION@" /* MPI */ #define SUN_MPI_C_COMPILER "@MPI_C_COMPILER@" #define SUN_MPI_C_VERSION "@MPI_C_VERSION@" #define SUN_MPI_CXX_COMPILER "@MPI_CXX_COMPILER@" #define SUN_MPI_CXX_VERSION "@MPI_CXX_VERSION@" #define SUN_MPI_FORTRAN_COMPILER "@MPI_FORTRAN_COMPILER@" #define SUN_MPI_FORTRAN_VERSION "@MPI_FORTRAN_VERSION@" /* ONEMKL */ #cmakedefine SUNDIALS_ONEMKL_ENABLED #define SUN_ONEMKL_VERSION "@MKL_VERSION@" /* OpenMP */ #cmakedefine SUNDIALS_OPENMP_ENABLED #define SUN_OPENMP_VERSION "@OpenMP_VERSION@" /* PETSC */ #cmakedefine SUNDIALS_PETSC_ENABLED #define SUN_PETSC_VERSION "@PETSC_VERSION@" /* PTHREADS */ #cmakedefine SUNDIALS_PTHREADS_ENABLED #define SUN_PTHREADS_VERSION "@Threads_VERSION@" /* RAJA */ #cmakedefine SUNDIALS_RAJA_ENABLED #define SUN_RAJA_VERSION "@RAJA_VERSION@" /* SUPERLUDIST */ #cmakedefine SUNDIALS_SUPERLUDIST_ENABLED #define SUN_SUPERLUDIST_VERSION "@SUPERLUDIST_VERSION@" /* SUPERLUMT */ #cmakedefine SUNDIALS_SUPERLUMT_ENABLED #define SUN_SUPERLUMT_VERSION "@SUPERLUMT_VERSION@" /* TRILLINOS */ #cmakedefine SUNDIALS_TRILLINOS_ENABLED #define SUN_TRILLINOS_VERSION "@Trillinos_VERSION@" /* XBRAID */ #cmakedefine SUNDIALS_XBRAID_ENABLED #define SUN_XBRAID_VERSION "@XBRAID_VERSION@" /* RAJA backends */ #cmakedefine SUNDIALS_RAJA_BACKENDS_CUDA #cmakedefine SUNDIALS_RAJA_BACKENDS_HIP #cmakedefine SUNDIALS_RAJA_BACKENDS_SYCL /* Ginkgo backends */ #cmakedefine SUNDIALS_GINKGO_BACKENDS_CUDA #cmakedefine SUNDIALS_GINKGO_BACKENDS_HIP #cmakedefine SUNDIALS_GINKGO_BACKENDS_OMP #cmakedefine SUNDIALS_GINKGO_BACKENDS_REF #cmakedefine SUNDIALS_GINKGO_BACKENDS_SYCL /* MAGMA backends */ #cmakedefine SUNDIALS_MAGMA_BACKENDS_CUDA #cmakedefine SUNDIALS_MAGMA_BACKENDS_HIP /* Set if SUNDIALS is built with MPI support, then * #define SUNDIALS_MPI_ENABLED 1 * otherwise * #define SUNDIALS_MPI_ENABLED 0 */ #cmakedefine01 SUNDIALS_MPI_ENABLED /* oneMKL interface options */ #cmakedefine SUNDIALS_ONEMKL_USE_GETRF_LOOP #cmakedefine SUNDIALS_ONEMKL_USE_GETRS_LOOP /* SUPERLUMT threading type */ #define SUNDIALS_SUPERLUMT_THREAD_TYPE "@SUPERLUMT_THREAD_TYPE@" /* Trilinos with MPI is available, then * #define SUNDIALS_TRILINOS_HAVE_MPI */ #cmakedefine SUNDIALS_TRILINOS_HAVE_MPI /* ------------------------------------------------------------------ * SUNDIALS language macros * -----------------------------------------------------------------*/ /* CUDA */ #cmakedefine SUNDIALS_CUDA_ENABLED #define SUN_CUDA_VERSION "@CMAKE_CUDA_COMPILER_VERSION@" #define SUN_CUDA_COMPILER "@CMAKE_CUDA_COMPILER@" #define SUN_CUDA_ARCHITECTURES "@CMAKE_CUDA_ARCHITECTURES@" /* HIP */ #cmakedefine SUNDIALS_HIP_ENABLED #define SUN_HIP_VERSION "@HIP_VERSION@" #define SUN_AMDGPU_TARGETS "@AMDGPU_TARGETS@" /* SYCL options */ #cmakedefine SUNDIALS_SYCL_2020_UNSUPPORTED /* ------------------------------------------------------------------ * SUNDIALS modules enabled * -----------------------------------------------------------------*/ @SUNDIALS_CONFIGH_BUILDS@ #endif /* _SUNDIALS_CONFIG_H */