Salome HOME
Upgrade to new MG license mechanism and keep compatibility with old ones
authorChristophe Bourcier <christophe.bourcier@cea.fr>
Tue, 7 Mar 2023 14:08:46 +0000 (15:08 +0100)
committerChristophe Bourcier <christophe.bourcier@cea.fr>
Wed, 12 Apr 2023 09:18:54 +0000 (11:18 +0200)
Output message only if SALOME_VERBOSE is set

src/HexoticPlugin/MG_Hexotic_API.cxx

index d3fda9b0af069c1a14d438ba6f3f759c197a4da2..a9b713c2f0108a5bb1fabc6b444ce5bb1c924871 100644 (file)
@@ -41,6 +41,9 @@ extern "C"{
 #include <meshgems/hexa.h>
 }
 
+#define MESHGEMS_VERSION_HEX (MESHGEMS_VERSION_MAJOR << 16 | MESHGEMS_VERSION_MINOR << 8 | MESHGEMS_VERSION_PATCH)
+#define MESHGEMS_215 (2 << 16 | 15 << 8 | 0)
+
 struct MG_Hexotic_API::LibData
 {
   // MG objects
@@ -672,14 +675,29 @@ bool MG_Hexotic_API::LibData::Compute()
 {
   // MG license
   std::string errorTxt;
+  status_t ret;
+
+#if MESHGEMS_VERSION_HEX > MESHGEMS_215
+  // unlock Hexa license only once
+  std::string SPATIAL_LICENSE = SMESHUtils_MGLicenseKeyGen::GetKey(errorTxt);
+  ret = meshgems_hexa_unlock_product(SPATIAL_LICENSE.c_str());
+  if STATUS_IS_ERROR( ret )
+    {
+    AddError( SMESH_Comment( "Problem with SPATIAL_LICENSE to unlock Hexa: ") << errorTxt );
+    return false;
+    }
+  else
+    MESSAGE("SPATIAL_LICENSE unlock Hexa: " << ret);
+#else
   if ( !SMESHUtils_MGLicenseKeyGen::SignMesh( _tria_mesh, errorTxt ))
   {
     AddError( SMESH_Comment( "Problem with library SalomeMeshGemsKeyGenerator: ") << errorTxt );
     return false;
   }
+#endif
 
   // Set surface mesh
-  status_t ret = hexa_set_surface_mesh( _session, _tria_mesh );
+  ret = hexa_set_surface_mesh( _session, _tria_mesh );
   if ( ret != STATUS_OK ) MG_Error( "unable to set surface mesh");
 
   // Set a sizemap