/usr/include/dune/common/version.hh is in libdune-common-dev 2.3.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
// vi: set et ts=4 sw=2 sts=2:
#ifndef DUNE_VERSION_HH
#define DUNE_VERSION_HH
/** \file
* \brief Various macros to work with %Dune module version numbers
*/
/** \brief Constructs the preprocessor name used in config.h to hold version numbers
*
* For the DUNE core modules you need to use the following module names:
* - DUNE_COMMON for dune-common
* - DUNE_GRID for dune-grid
* - DUNE_GEOMETRY for dune-geometry
* - DUNE_ISTL for dune-istl
* - DUNE_LOCALFUNCTIONS for dune-localfunctions
*
* For external DUNE modules, you should capitalize the name and
* replace '-' by underscores. For example for the module foo-bar you
* need to use FOO_BAR as module name in the context of this macro.
*
* \param module The name of the Dune module
* \param type The version number type, one of MAJOR, MINOR, or REVISION
*/
#define DUNE_VERSION_JOIN(module,type) module ## _VERSION_ ## type
/**
* \brief True if 'module' has the version major.minor
*
* For the DUNE core modules you need to use the following module names:
* - DUNE_COMMON for dune-common
* - DUNE_GRID for dune-grid
* - DUNE_GEOMETRY for dune-geometry
* - DUNE_ISTL for dune-istl
* - DUNE_LOCALFUNCTIONS for dune-localfunctions
*
* For external DUNE modules, you should capitalize the name and
* replace '-' by underscores. For example for the module foo-bar you
* need to use FOO_BAR as module name in the context of this macro.
*/
#define DUNE_VERSION_EQUAL(module,major,minor) \
((DUNE_VERSION_JOIN(module,MAJOR) == major) && \
(DUNE_VERSION_JOIN(module,MINOR) == minor))
/**
* \brief True if 'module' has the version major.minor.revision
*
* For the DUNE core modules you need to use the following module names:
* - DUNE_COMMON for dune-common
* - DUNE_GRID for dune-grid
* - DUNE_GEOMETRY for dune-geometry
* - DUNE_ISTL for dune-istl
* - DUNE_LOCALFUNCTIONS for dune-localfunctions
*
* For external DUNE modules, you should capitalize the name and
* replace '-' by underscores. For example for the module foo-bar you
* need to use FOO_BAR as module name in the context of this macro.
*/
#define DUNE_VERSION_EQUAL_REV(module,major,minor,revision) \
( DUNE_VERSION_EQUAL(module,major,minor) && \
(DUNE_VERSION_JOIN(module,REVISION) == revision))
/**
* \brief True if 'module' has the version major.minor or newer
*
* For the DUNE core modules you need to use the following module names:
* - DUNE_COMMON for dune-common
* - DUNE_GRID for dune-grid
* - DUNE_GEOMETRY for dune-geometry
* - DUNE_ISTL for dune-istl
* - DUNE_LOCALFUNCTIONS for dune-localfunctions
*
* For external DUNE modules, you should capitalize the name and
* replace '-' by underscores. For example for the module foo-bar you
* need to use FOO_BAR as module name in the context of this macro.
*/
#define DUNE_VERSION_NEWER(module,major,minor) \
((DUNE_VERSION_JOIN(module,MAJOR) > major) \
|| ((DUNE_VERSION_JOIN(module,MAJOR) == major) && (DUNE_VERSION_JOIN(module,MINOR) >= minor)))
/**
* \brief True if 'module' has the version major.minor.revision or newer
*
* For the DUNE core modules you need to use the following module names:
* - DUNE_COMMON for dune-common
* - DUNE_GRID for dune-grid
* - DUNE_GEOMETRY for dune-geometry
* - DUNE_ISTL for dune-istl
* - DUNE_LOCALFUNCTIONS for dune-localfunctions
*
* For external DUNE modules, you should capitalize the name and
* replace '-' by underscores. For example for the module foo-bar you
* need to use FOO_BAR as module name in the context of this macro.
*/
#define DUNE_VERSION_NEWER_REV(module,major,minor,revision) \
((DUNE_VERSION_JOIN(module,MAJOR) > major) \
|| ((DUNE_VERSION_JOIN(module,MAJOR) == major) && (DUNE_VERSION_JOIN(module,MINOR) > minor)) \
|| ((DUNE_VERSION_JOIN(module,MAJOR) == major) && (DUNE_VERSION_JOIN(module,MINOR) == minor) \
&& (DUNE_VERSION_JOIN(module,REVISION) >= revision)))
/**
* \brief Compute a unique uint id from the major, minor, and revision numbers
*
* For the DUNE core modules you need to use the following module names:
* - DUNE_COMMON for dune-common
* - DUNE_GRID for dune-grid
* - DUNE_GEOMETRY for dune-geometry
* - DUNE_ISTL for dune-istl
* - DUNE_LOCALFUNCTIONS for dune-localfunctions
*
* For external DUNE modules, you should capitalize the name and
* replace '-' by underscores. For example for the module foo-bar you
* need to use FOO_BAR as module name in the context of this macro.
*/
#define DUNE_VERSION_ID(major,minor,revision) \
((unsigned int)((major << 24) + (minor << 16) + revision))
/**
* \brief Compute a unique uint id for the given module
*
* For the DUNE core modules you need to use the following module names:
* - DUNE_COMMON for dune-common
* - DUNE_GRID for dune-grid
* - DUNE_GEOMETRY for dune-geometry
* - DUNE_ISTL for dune-istl
* - DUNE_LOCALFUNCTIONS for dune-localfunctions
*
* For external DUNE modules, you should capitalize the name and
* replace '-' by underscores. For example for the module foo-bar you
* need to use FOO_BAR as module name in the context of this macro.
*/
#define DUNE_MODULE_VERSION_ID(module) \
DUNE_VERSION_ID( DUNE_VERSION_JOIN(module,MAJOR), DUNE_VERSION_JOIN(module,MINOR), DUNE_VERSION_JOIN(module,REVISION) )
#endif
|