Actual source code: version.c

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

  5:     Input Parameter:
  6: .   len - length of the string

  8:     Output Parameter:
  9: .   version - version string

 11:     Level: developer

 13:     Fortran Note:
 14:     This routine is not supported in Fortran.

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

 18: .seealso: PetscGetProgramName(), PetscGetVersionNumber()

 20: @*/

 22: PetscErrorCode PetscGetVersion(char version[], size_t len)
 23: {
 24: #if (PETSC_VERSION_RELEASE == 1)
 25:   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:   PetscSNPrintf(version,len,"Petsc Development GIT revision: %s  GIT Date: %s",PETSC_VERSION_GIT, PETSC_VERSION_DATE_GIT);
 28: #endif
 29:   return 0;
 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()

 53: @*/
 54: PetscErrorCode PetscGetVersionNumber(PetscInt *major, PetscInt *minor, PetscInt *subminor,PetscInt *release)
 55: {
 56:   if (major) *major = PETSC_VERSION_MAJOR;
 57:   if (minor) *minor = PETSC_VERSION_MINOR;
 58:   if (subminor) *subminor = PETSC_VERSION_SUBMINOR;
 59:   if (release) *release = PETSC_VERSION_RELEASE;
 60:   return 0;
 61: }