Salome HOME
C3PO: requires mpi4py
[tools/sat_salome.git] / products / env_scripts / MeshGems.py
index 158b5c6b2b454a0b2bfe1de63f873d491807ae22..76a4f541a7e17d89d902d3f1ffe4e4c7386c74ee 100644 (file)
@@ -3,48 +3,73 @@
 
 import os.path
 import platform
+from distutils.version import LooseVersion
 
 def set_distene_licence(env):
-    try:
-        license_file = env.environ.get_value("LICENCE_FILE")
-    except Exception as e:
-        return
-
-    if os.path.exists(license_file):
-        env.add_line(1)
-        env.add_comment("Set DISTENE License")
-        env.set('DISTENE_LICENSE_FILE', 'Use global envvar: DLIM8VAR')
-
-        if os.access(license_file, os.R_OK):
-            lines = open(license_file, "r").readlines()
-            for line in lines:
-                id1=line.find('r"dlim8')
-                if id1 != -1:
-                    # on a trouvé la clé dlim8 dans line, on extrait sa valeur
-                    id2=line.find('"', id1+2)
-                    if id2 != -1:
-                        env.set("DLIM8VAR", line[id1+2:id2])
-                        break
+  try:
+    license_file = env.environ.get_value("LICENCE_FILE")
+  except Exception as e:
+    return
 
-def set_env(env, prereq_dir, version):
-    env.add_comment("Here you can define your license parameters for MeshGems")
-    env.add_comment("DISTENE license")
+  if os.path.exists(license_file):
+    env.add_line(1)
+    env.add_comment("Set DISTENE License")
+    env.set('DISTENE_LICENSE_FILE', 'Use global envvar: DLIM8VAR')
 
-    if not env.forBuild:
-        # we don't need licence keys at compile time
-        set_distene_licence(env)
+    if os.access(license_file, os.R_OK):
+      lines = open(license_file, "r").readlines()
+      for line in lines:
+        id1=line.find('r"dlim8')
+        if id1 != -1:
+          # on a trouvé la clé dlim8 dans line, on extrait sa valeur
+          id2=line.find('"', id1+2)
+          if id2 != -1:
+           env.set("DLIM8VAR", line[id1+2:id2])
+           break
+  return
+
+def set_DASSAULT_license(env, version):
+  try:
+    license_file_prefix = env.environ.get_value("LICENCE_FILE")
+    linux_dist = env.environ.get_value("sat_dist")
+  except Exception as e:
+    return
+  env.add_comment("DASSAULT MeshGems KeyGenerator based License")
+  if platform.system() == "Windows" :
+    license_file_name=license_file_prefix + '-' + version + '.dll'
+  else:
+    license_file_name=license_file_prefix + '-' + version + '-' + linux_dist + '.so'
+
+  if not os.path.exists(license_file_name):
+     print("\nWARNING : DASSAULT license file %s not found!" % license_file_name) 
+
+  env.set('SALOME_MG_KEYGEN_LIB_PATH', license_file_name)
+  return
 
-    env.set('MESHGEMSHOME', prereq_dir)
-    env.set('MESHGEMS_ROOT_DIR', prereq_dir)    # update for cmake
+def set_env_build(env, prereq_dir, version):
+  env.set('MESHGEMSHOME', prereq_dir)
+  env.set('MESHGEMS_ROOT_DIR', prereq_dir)    # update for cmake
 
-    env.prepend('PATH', os.path.join(prereq_dir, 'bin'))
+  env.prepend('PATH', os.path.join(prereq_dir, 'bin'))
+
+  if platform.system() == "Windows" :
+    env.prepend('PATH', os.path.join(prereq_dir, 'lib'))
+  else :
+    libdir = "Linux_64"
+    env.prepend('PATH', os.path.join(prereq_dir, 'bin', libdir))
+    env.prepend('LD_LIBRARY_PATH', os.path.join(prereq_dir, 'lib', libdir))
+
+def set_env(env, prereq_dir, version):
+  env.add_comment("Here you can define your license parameters for MeshGems")
+  if LooseVersion(version) > LooseVersion('2.12-1'):
+    set_DASSAULT_license(env,version)
+  else:
+    env.add_comment("DISTENE license")
+    if not env.forBuild:
+      # we don't need licence keys at compile time
+      set_distene_licence(env)
+  set_env_build(env, prereq_dir, version)
 
-    if platform.system() == "Windows" :
-        env.prepend('PATH', os.path.join(prereq_dir, 'lib'))
-    else :
-        libdir = "Linux_64"
-        env.prepend('PATH', os.path.join(prereq_dir, 'bin', libdir))
-        env.prepend('LD_LIBRARY_PATH', os.path.join(prereq_dir, 'lib', libdir))
 
 def set_nativ_env(env):
-    pass
+  pass