Commit 2cfe548a authored by Bolea Sanchez, Vicente Adolfo's avatar Bolea Sanchez, Vicente Adolfo Committed by Bolea Sanchez, Vicente Adolfo
Browse files

Merge pull request #3676 from pnorbert/c_version2

Version constants plus functions to retrieve list of ...

(cherry picked from commit 490bed59)
parent eb3609ac
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -99,10 +99,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
+6 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ add_library(adios2_core
  core/VariableBase.cpp
  core/Span.cpp core/Span.tcc
  core/Group.cpp core/Group.tcc
  core/Info.cpp

#operator
  operator/callback/Signature1.cpp
@@ -398,6 +399,11 @@ 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 "Info.h" EXCLUDE
)

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

install(DIRECTORY engine/
+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
/*
 * Distributed under the OSI-approved Apache License, Version 2.0.  See
 * accompanying file Copyright.txt for details.
 *
 * Info.h
 *
 *  Created on: June 22, 2023
 *      Author: Norbert Podhorszki pnorbert@ornl.gov
 */

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

#include <stdio.h>
#include <stdlib.h>

#ifdef __cplusplus
extern "C" {
#endif

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 adios2_version_str[] = ADIOS2_VERSION_STR;

static const char *const engines[] = {"BP3",
                                      "BP4",
#ifdef ADIOS2_HAVE_BP5
                                      "BP5",
#endif
#ifdef ADIOS2_HAVE_HDF5
                                      "HDF5",
#endif
#ifdef ADIOS2_HAVE_SST
                                      "SST",
#endif
#ifdef ADIOS2_HAVE_MPI
                                      "SSC",
#endif
#ifdef ADIOS2_HAVE_DataMan
                                      "DataMan",
#endif
#ifdef ADIOS2_HAVE_DataSpaces
                                      "DataSpaces",
#endif
                                      "Inline",
#ifdef ADIOS2_HAVE_DAOS
                                      "DAOS",
#endif
#ifdef ADIOS2_HAVE_MHS
                                      "MHS",
#endif
#ifdef ADIOS2_HAVE_CATALYST
                                      "ParaViewADIOSInSituEngine",
#endif
                                      "Null",
                                      "Skeleton",
                                      nullptr};

void adios2_available_engines(size_t *nentries, const char *const **list)
{
    *nentries = (sizeof(engines) / sizeof(const char *)) - 1;
    *list = engines;
}

static const char *const operators[] = {
#ifdef ADIOS2_HAVE_BZIP2
    "BZip2",
#endif
#ifdef ADIOS2_HAVE_BLOSC2
    "Blosc",
#endif
#ifdef ADIOS2_HAVE_MGARD
    "MGARD",
    "MGARDPlus",
#endif
#ifdef ADIOS2_HAVE_SZ
    "SZ",
#endif
#ifdef ADIOS2_HAVE_ZFP
    "ZFP",
#endif
#ifdef ADIOS2_HAVE_PNG
    "PNG",
#endif
#ifdef ADIOS2_HAVE_SIRIUS
    "Sirius",
#endif
#ifdef ADIOS2_HAVE_LIBPRESSIO
    "libpressio",
#ifdef ADIOS2_HAVE_SODIUM
    "Sodium plugin",
#endif
#endif
    nullptr};

void adios2_available_operators(size_t *nentries, const char *const **list)
{
    *nentries = (sizeof(operators) / sizeof(const char *)) - 1;
    *list = operators;
}

const char *adios2_feature_list[] = {ADIOS2_FEATURE_LIST};

void adios2_available_features(size_t *nentries, const char *const **list)
{
    *nentries = (sizeof(adios2_feature_list) / sizeof(const char *)) - 1;
    *list = adios2_feature_list;
}

#ifdef __cplusplus
} // end extern C
#endif
+38 −0
Original line number Diff line number Diff line
/*
 * Distributed under the OSI-approved Apache License, Version 2.0.  See
 * accompanying file Copyright.txt for details.
 *
 * Info.h
 *
 *  Created on: June 22, 2023
 *      Author: Norbert Podhorszki pnorbert@ornl.gov
 */

#ifndef ADIOS2_INFO_H_
#define ADIOS2_INFO_H_

#include <stddef.h>

#ifdef __cplusplus
extern "C" {
#endif

extern const int adios2_version_major;
extern const int adios2_version_minor;
extern const int adios2_version_patch;
extern const char adios2_version_str[];

/** Return the list of available Engines in the installed adios2 library */
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(size_t *nentries, const char *const **list);

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

#ifdef __cplusplus
} // end extern C
#endif

#endif /* ADIOS2_INFO_H_ */
Loading