Salome HOME
Add functions to know that SALOME module version is development one
authorvsr <vsr@opencascade.com>
Mon, 19 Mar 2012 07:27:35 +0000 (07:27 +0000)
committervsr <vsr@opencascade.com>
Mon, 19 Mar 2012 07:27:35 +0000 (07:27 +0000)
KERNEL_version.h.in
bin/VERSION.in
configure.ac
src/KERNEL_PY/salome_version.py

index 00bf9b7abc568d77f96c46a3a66fab7a8f3f9cb8..c59b8233287fa443924a4f8020dd47e412cc1474 100644 (file)
@@ -33,5 +33,6 @@
 
 #define KERNEL_VERSION_STR "@VERSION@"
 #define KERNEL_VERSION     @XVERSION@
+#define KERNEL_DEVELOPMENT @VERSION_DEV@
 
 #endif // __KERNEL_VERSION_H__
index bd8de56f2f891b2a3bfd1016fddd0a8be32d54c9..8cc2a5bb451b72c4d71abf3151b42e98a3662b6e 100755 (executable)
@@ -1 +1,2 @@
-THIS IS SALOME - KERNEL VERSION: @VERSION@
+[SALOME KERNEL] : @VERSION@
+[DEVELOPMENT] : @VERSION_DEV@
index 3bb0d9f573673a200b4f61b38873a46fde72cde0..77e75247e1d85f2ae8dde10650be016172eba2a0 100644 (file)
@@ -37,6 +37,8 @@ AM_INIT_AUTOMAKE([tar-pax -Wno-portability])
 
 XVERSION=`echo $VERSION | awk -F. '{printf("0x%02x%02x%02x",$1,$2,$3)}'`
 AC_SUBST(XVERSION)
+VERSION_DEV=1
+AC_SUBST(VERSION_DEV)
 
 # set up MODULE_NAME variable for dynamic construction of directories (resources, etc.)
 MODULE_NAME=kernel
index 0d77dd9d6bc29dc9ecd885014a419e2cdcf734a1..733e52e3459ca95e5a2a4f9c7d90f3e72136a520 100644 (file)
@@ -32,19 +32,25 @@ __ALL__ = [
     "getVersionRelease",
     "getVersions",
     "getXVersion",
+    "isDevelopmentVersion",
     ]
 
 _salome_versions = {}
 
-def getVersion( mod = "KERNEL" ):
+def getVersion( mod = "KERNEL", full = False ):
     """
     Get SALOME module version number
+    Parameters:
+    - mod  : SALOME module name, default is 'KERNEL'
+    - full : take into account development marker (in this case 'dev' is added
+             to the end of version value for development version), False by default
     Returns: version number string or None if VERSION file is not found
     """
     global _salome_versions
     mod = mod.upper()
+    dev_flag = { True : "dev", False : "" }
     if not _salome_versions.has_key( mod ):
-        _salome_versions[ mod ] = None
+        _salome_versions[ mod ] = [ None, "" ]
         import os
         root_dir = os.getenv( "%s_ROOT_DIR" % mod )
         if root_dir:
@@ -52,17 +58,30 @@ def getVersion( mod = "KERNEL" ):
                 filename = root_dir + "/bin/salome/VERSION"
                 if not os.path.exists( filename ):
                     filename = root_dir + "/bin/VERSION"
-                file = open( filename )
-                ver = file.readline()
-                file.close()
-                _salome_versions[ mod ] = ver.split( ":" )[ -1 ].strip()
+                f = open( filename )
+                data = f.readlines()
+                f.close()
+                for l in data:
+                    if l.strip().startswith("#") or ":" not in l: continue
+                    key = ":".join( l.split( ":" )[ :-1 ] ).strip()
+                    val = l.split( ":" )[ -1 ].strip()
+                    if "development" in key.lower():
+                        _salome_versions[ mod ][ 1 ] = dev_flag[ val == "1" ]
+                    elif "version" in key.lower() or mod in key:
+                        _salome_versions[ mod ][ 0 ] = val
+                    pass
             except:
                 pass
-    return _salome_versions[ mod ]
+    v = _salome_versions[ mod ][ 0 ]
+    if full and v is not None:
+        v += _salome_versions[ mod ][ 1 ]
+    return v
 
 def getVersionMajor( mod = "KERNEL" ):
     """
     Get SALOME module major version number
+    Parameters:
+    - mod  : SALOME module name, default is 'KERNEL'
     Returns: version major number string or None if VERSION file is not found
     """
     ver = getVersion( mod )
@@ -75,6 +94,8 @@ def getVersionMajor( mod = "KERNEL" ):
 def getVersionMinor( mod = "KERNEL" ):
     """
     Get SALOME module minor version number
+    Parameters:
+    - mod  : SALOME module name, default is 'KERNEL'
     Returns: version minor number string or None if VERSION file is not found
     """
     ver = getVersion( mod )
@@ -87,6 +108,8 @@ def getVersionMinor( mod = "KERNEL" ):
 def getVersionRelease( mod = "KERNEL" ):
     """
     Get SALOME module release version number
+    Parameters:
+    - mod  : SALOME module name, default is 'KERNEL'
     Returns: version release number string or None if VERSION file is not found
     """
     ver = getVersion( mod )
@@ -99,6 +122,8 @@ def getVersionRelease( mod = "KERNEL" ):
 def getVersions( mod = "KERNEL" ):
     """
     Get SALOME module version as list of [major, minor, release] numbers
+    Parameters:
+    - mod  : SALOME module name, default is 'KERNEL'
     Returns: version numbers list
     """
     try:
@@ -121,7 +146,19 @@ def getVersions( mod = "KERNEL" ):
 def getXVersion( mod = "KERNEL" ):
     """
     Get SALOME module version as list of [major, minor, release] numbers
+    Parameters:
+    - mod  : SALOME module name, default is 'KERNEL'
     Returns: version numbers list
     """
     major, minor, rel = getVersions( mod )
     return hex( (major<<16) + (minor<<8) + rel )
+
+def isDevelopmentVersion( mod = "KERNEL" ):
+    """
+    Checks if the version of SALOME module is marked as development one
+    Parameters:
+    - mod  : SALOME module name, default is 'KERNEL'
+    Returns: Return True for delopment version of module or False otherwise
+    """
+    ver = getVersion( mod, True )
+    return ver.endswith( "dev" )