Commit 6c4c7235 authored by Bolea Sanchez, Vicente Adolfo's avatar Bolea Sanchez, Vicente Adolfo
Browse files

Use CMake features; add unit test

parent b9dec1e2
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -102,10 +102,12 @@ function(GenerateADIOSHeaderConfig)
")
    if(ADIOS2_HAVE_${OPT})
      set(ADIOS2_HAVE_${OPT_UPPER} 1)
      string(APPEND ADIOS2_CONFIG_FEATURE_LIST "\"${OPT_UPPER}\",")
    else()
      set(ADIOS2_HAVE_${OPT_UPPER})
    endif()
  endforeach()
  string(APPEND ADIOS2_CONFIG_FEATURE_LIST "nullptr")

  configure_file(
    ${ADIOS2_SOURCE_DIR}/source/adios2/common/ADIOSConfig.h.in
+3 −3
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ add_library(adios2_core
  core/VariableBase.cpp
  core/Span.cpp core/Span.tcc
  core/Group.cpp core/Group.tcc
  core/adios2_libinfo.cpp
  core/Info.cpp

#operator
  operator/callback/Signature1.cpp
@@ -405,10 +405,10 @@ install(FILES common/ADIOSMacros.h common/ADIOSTypes.h common/ADIOSTypes.inl
install(DIRECTORY core/
  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/adios2/core COMPONENT adios2_core-development
  FILES_MATCHING PATTERN "*.h"
  PATTERN "adios2_libinfo.h" EXCLUDE
  PATTERN "Info.h" EXCLUDE
)

install(FILES core/adios2_libinfo.h
install(FILES core/Info.h
  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT adios2_core-development
)

+2 −0
Original line number Diff line number Diff line
@@ -31,6 +31,8 @@

@ADIOS2_CONFIG_DEFINES@

#define ADIOS2_FEATURE_LIST @ADIOS2_CONFIG_FEATURE_LIST@

/* Everything between here and the note above is programatically generated */

#ifndef ADIOS2_USE_MPI
+113 −0
Original line number Diff line number Diff line
@@ -2,13 +2,13 @@
 * Distributed under the OSI-approved Apache License, Version 2.0.  See
 * accompanying file Copyright.txt for details.
 *
 * adios2_libinfo.h
 * Info.h
 *
 *  Created on: June 22, 2023
 *      Author: Norbert Podhorszki pnorbert@ornl.gov
 */

#include "adios2_libinfo.h"
#include "Info.h"
#include "adios2/common/ADIOSConfig.h"

#include <stdio.h>
@@ -21,9 +21,9 @@ extern "C" {
const int adios2_version_major = ADIOS2_VERSION_MAJOR;
const int adios2_version_minor = ADIOS2_VERSION_MINOR;
const int adios2_version_patch = ADIOS2_VERSION_PATCH;
const char *const adios2_version_str = ADIOS2_VERSION_STR;
const char adios2_version_str[] = ADIOS2_VERSION_STR;

static const char *aae[] = {"BP3",
static const char *const engines[] = {"BP3",
                                      "BP4",
#ifdef ADIOS2_HAVE_BP5
                                      "BP5",
@@ -57,17 +57,13 @@ static const char *aae[] = {"BP3",
                                      "Skeleton",
                                      nullptr};

void adios2_available_engines(int *nentries, char const *const **list)
void adios2_available_engines(size_t *nentries, const char *const **list)
{
    int ne = 0;
    while (aae[ne] != nullptr)
        ++ne;
    *nentries = ne;
    *list = aae;
    return;
    *nentries = (sizeof(engines) / sizeof(const char *)) - 1;
    *list = engines;
}

static const char *aao[] = {
static const char *const operators[] = {
#ifdef ADIOS2_HAVE_BZIP2
    "BZip2",
#endif
@@ -96,66 +92,20 @@ static const char *aao[] = {
    "Sodium plugin",
#endif
#endif
    "None",
    nullptr};

void adios2_available_operators(int *nentries, char const *const **list)
void adios2_available_operators(size_t *nentries, const char *const **list)
{
    int no = 0;
    while (aao[no] != nullptr)
        ++no;
    *nentries = no;
    *list = aao;
    return;
    *nentries = (sizeof(operators) / sizeof(const char *)) - 1;
    *list = operators;
}

static const char *aaf[] = {
#ifdef ADIOS2_HAVE_MPI
    "MPI",
#endif
#ifdef ADIOS2_HAVE_FORTRAN
    "Fortran",
#endif
#ifdef ADIOS2_HAVE_PYTHON
    "Python",
#endif
#ifdef ADIOS2_HAVE_IME
    "IME",
#endif
#ifdef ADIOS2_HAVE_UCX
    "UCX",
#endif
#ifdef ADIOS2_HAVE_AWSSDK
    "AWSSDK",
#endif

#ifdef ADIOS2_HAVE_KOKKOS
    "Kokkos (Host"
#ifdef ADIOS2_HAVE_KOKKOS_CUDA
    ", CUDA"
#endif
#ifdef ADIOS2_HAVE_KOKKOS_HIP
    ", HIP"
#endif
#ifdef ADIOS2_HAVE_KOKKOS_SYCL
    ", SYCL"
#endif
    ")",
#endif // ADIOS2_HAVE_KOKKOS

#ifdef ADIOS2_HAVE_CUDA
    "CUDA",
#endif
    nullptr};
const char *adios2_feature_list[] = {ADIOS2_FEATURE_LIST};

void adios2_available_features(int *nentries, char const *const **list)
void adios2_available_features(size_t *nentries, const char *const **list)
{
    int nf = 0;
    while (aaf[nf] != nullptr)
        ++nf;
    *nentries = nf;
    *list = aaf;
    return;
    *nentries = (sizeof(adios2_feature_list) / sizeof(const char *)) - 1;
    *list = adios2_feature_list;
}

#ifdef __cplusplus
+10 −8
Original line number Diff line number Diff line
@@ -2,14 +2,16 @@
 * Distributed under the OSI-approved Apache License, Version 2.0.  See
 * accompanying file Copyright.txt for details.
 *
 * adios2_libinfo.h
 * Info.h
 *
 *  Created on: June 22, 2023
 *      Author: Norbert Podhorszki pnorbert@ornl.gov
 */

#ifndef ADIOS2_LIBINFO_H_
#define ADIOS2_LIBINFO_H_
#ifndef ADIOS2_INFO_H_
#define ADIOS2_INFO_H_

#include <stddef.h>

#ifdef __cplusplus
extern "C" {
@@ -18,19 +20,19 @@ extern "C" {
extern const int adios2_version_major;
extern const int adios2_version_minor;
extern const int adios2_version_patch;
extern const char *const adios2_version_str;
extern const char adios2_version_str[];

/** Return the list of available Engines in the installed adios2 library */
void adios2_available_engines(int *nentries, char const *const **list);
void adios2_available_engines(size_t *nentries, const char *const **list);

/** Return the list of available Engines in the installed adios2 library */
void adios2_available_operators(int *nentries, char const *const **list);
void adios2_available_operators(size_t *nentries, const char *const **list);

/** Return the list of available features in the installed adios2 library */
void adios2_available_features(int *nentries, char const *const **list);
void adios2_available_features(size_t *nentries, const char *const **list);

#ifdef __cplusplus
} // end extern C
#endif

#endif /* ADIOS2_LIBINFO_H_ */
#endif /* ADIOS2_INFO_H_ */
Loading