Actual source code: version.c

  1: #include <petscsys.h>
  2: /*@C
  3:     PetscGetVersion - Gets the PETSc version information in a string.

  5:     Not Collective; No Fortran Support

  7:     Input Parameter:
  8: .   len - length of the string

 10:     Output Parameter:
 11: .   version - version string

 13:     Level: developer

 15:     Note:
 16:     For doing runtime checking of supported versions we recommend using `PetscGetVersionNumber()` instead of this routine.

 18: .seealso: `PetscGetProgramName()`, `PetscGetVersionNumber()`
 19: @*/

 21: PetscErrorCode PetscGetVersion(char version[], size_t len)
 22: {
 23:   PetscFunctionBegin;
 24: #if (PETSC_VERSION_RELEASE == 1)
 25:   PetscCall(PetscSNPrintf(version, len, "Petsc Release Version %d.%d.%d, %s ", PETSC_VERSION_MAJOR, PETSC_VERSION_MINOR, PETSC_VERSION_SUBMINOR, PETSC_VERSION_DATE));
 26: #else
 27:   PetscCall(PetscSNPrintf(version, len, "Petsc Development GIT revision: %s  GIT Date: %s", PETSC_VERSION_GIT, PETSC_VERSION_DATE_GIT));
 28: #endif
 29:   PetscFunctionReturn(PETSC_SUCCESS);
 30: }

 32: /*@C
 33:     PetscGetVersionNumber - Gets the PETSc version information from the library

 35:     Not Collective

 37:     Output Parameters:
 38: +   major - the major version (optional, pass `NULL` if not requested)
 39: .   minor - the minor version (optional, pass `NULL` if not requested)
 40: .   subminor - the subminor version (patch number)  (optional, pass `NULL` if not requested)
 41: -   release - indicates the library is from a release, not random git repository  (optional, pass `NULL` if not requested)

 43:     Level: developer

 45:     Notes:
 46:     The C macros `PETSC_VERSION_MAJOR`, `PETSC_VERSION_MINOR`, `PETSC_VERSION_SUBMINOR`, `PETSC_VERSION_RELEASE` provide the information at
 47:     compile time. This can be used to confirm that the shared library being loaded at runtime has the appropriate version updates.

 49:     This function can be called before `PetscInitialize()`

 51: .seealso: `PetscGetProgramName()`, `PetscGetVersion()`, `PetscInitialize()`
 52: @*/
 53: PetscErrorCode PetscGetVersionNumber(PetscInt *major, PetscInt *minor, PetscInt *subminor, PetscInt *release)
 54: {
 55:   if (major) *major = PETSC_VERSION_MAJOR;
 56:   if (minor) *minor = PETSC_VERSION_MINOR;
 57:   if (subminor) *subminor = PETSC_VERSION_SUBMINOR;
 58:   if (release) *release = PETSC_VERSION_RELEASE;
 59:   return PETSC_SUCCESS;
 60: }