Salome HOME
add make test for UNIT_TEST_PROG
[modules/kernel.git] / src / KERNEL_PY / salome_version.py
1 #  -*- coding: iso-8859-1 -*-
2 #  Copyright (C) 2007-2010  CEA/DEN, EDF R&D, OPEN CASCADE
3 #
4 #  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
5 #  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 #
7 #  This library is free software; you can redistribute it and/or
8 #  modify it under the terms of the GNU Lesser General Public
9 #  License as published by the Free Software Foundation; either
10 #  version 2.1 of the License.
11 #
12 #  This library is distributed in the hope that it will be useful,
13 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
14 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 #  Lesser General Public License for more details.
16 #
17 #  You should have received a copy of the GNU Lesser General Public
18 #  License along with this library; if not, write to the Free Software
19 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
20 #
21 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 #
23
24 #  File   : salome_version.py
25 #  Author : Vadim SANDLER
26 #  Module : SALOME
27 #
28 __ALL__ = [
29     "getVersion",
30     "getVersionMajor",
31     "getVersionMinor",
32     "getVersionRelease",
33     "getVersions",
34     "getXVersion",
35     ]
36
37 _salome_versions = {}
38
39 def getVersion( mod = "KERNEL" ):
40     """
41     Get SALOME module version number
42     Returns: version number string or None if VERSION file is not found
43     """
44     global _salome_versions
45     mod = mod.upper()
46     if not _salome_versions.has_key( mod ):
47         _salome_versions[ mod ] = None
48         import os
49         root_dir = os.getenv( "%s_ROOT_DIR" % mod )
50         if root_dir:
51             try:
52                 filename = root_dir + "/bin/salome/VERSION"
53                 if not os.path.exists( filename ):
54                     filename = root_dir + "/bin/VERSION"
55                 file = open( filename )
56                 ver = file.readline()
57                 file.close()
58                 _salome_versions[ mod ] = ver.split( ":" )[ -1 ].strip()
59             except:
60                 pass
61     return _salome_versions[ mod ]
62
63 def getVersionMajor( mod = "KERNEL" ):
64     """
65     Get SALOME module major version number
66     Returns: version major number string or None if VERSION file is not found
67     """
68     ver = getVersion( mod )
69     try:
70         return ver.split( "." )[ 0 ]
71     except:
72         pass
73     return None
74
75 def getVersionMinor( mod = "KERNEL" ):
76     """
77     Get SALOME module minor version number
78     Returns: version minor number string or None if VERSION file is not found
79     """
80     ver = getVersion( mod )
81     try:
82         return ver.split( "." )[ 1 ]
83     except:
84         pass
85     return None
86
87 def getVersionRelease( mod = "KERNEL" ):
88     """
89     Get SALOME module release version number
90     Returns: version release number string or None if VERSION file is not found
91     """
92     ver = getVersion( mod )
93     try:
94         return ver.split( "." )[ 2 ]
95     except:
96         pass
97     return None
98
99 def getVersions( mod = "KERNEL" ):
100     """
101     Get SALOME module version as list of [major, minor, release] numbers
102     Returns: version numbers list
103     """
104     try:
105         major = int( getVersionMajor( mod ) )
106     except:
107         major = 0
108         pass
109     try:
110         minor = int( getVersionMinor( mod ) )
111     except:
112         minor = 0
113         pass
114     try:
115         rel = int( getVersionRelease( mod ) )
116     except:
117         rel = 0
118         pass
119     return [ major, minor, rel ]
120     
121 def getXVersion( mod = "KERNEL" ):
122     """
123     Get SALOME module version as list of [major, minor, release] numbers
124     Returns: version numbers list
125     """
126     major, minor, rel = getVersions( mod )
127     return hex( (major<<16) + (minor<<8) + rel )