Salome HOME
Updated copyright comment
[tools/configuration.git] / cmake / FindSalomeOpenCASCADE.cmake
index 8dea8dfa929dc29444e27c1c41246cd46df1cc76..6bd1997133c1102d9124cfe98189291054dcdd3d 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2019  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2013-2024  CEA, EDF, OPEN CASCADE
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -19,7 +19,7 @@
 # Author: Roman NIKOLAEV
 #
 
-# OpenCascade detection for Salome
+# OpenCASCADE detection for Salome
 #
 #  !! Please read the generic detection procedure in SalomeMacros.cmake !!
 #
@@ -31,15 +31,30 @@ ELSE()
   SALOME_FIND_PACKAGE_AND_DETECT_CONFLICTS(OpenCASCADE OpenCASCADE_INCLUDE_DIR 2)
 ENDIF()
 
+SET(OpenCASCADE_SP_VERSION 0)
 IF(OpenCASCADE_FOUND)
+
+  FIND_FILE(CAS_VERSION_FILE Standard_Version.hxx PATHS ${OpenCASCADE_INCLUDE_DIR})
+  FILE(STRINGS ${CAS_VERSION_FILE} _tmp REGEX "^ *#define OCC_VERSION_SERVICEPACK")
+  IF(_tmp)
+      STRING(REGEX MATCHALL "[0-9]+" _spComponents "${_tmp}")
+      LIST(LENGTH _spComponents _len)
+      IF(${_len} GREATER 0)
+          LIST(GET _spComponents 0 OpenCASCADE_SP_VERSION)
+      ENDIF()
+  ENDIF(_tmp)
   
   IF(NOT CAS_FIND_QUIETLY)
-      MESSAGE(STATUS "Found OpenCascade version: ${OpenCASCADE_VERSION}")
+      IF(${OpenCASCADE_SP_VERSION})
+          MESSAGE(STATUS "Found OpenCASCADE version: ${OpenCASCADE_VERSION}p${OpenCASCADE_SP_VERSION}")
+      ELSE()
+          MESSAGE(STATUS "Found OpenCASCADE version: ${OpenCASCADE_VERSION}")
+      ENDIF()
   ENDIF()
 
   # OPENCASCADE definitions
-  SET(OpenCascade_DEFINITIONS ${OpenCASCADE_C_FLAGS} ${OpenCASCADE_CXX_FLAGS})
-  SET(OpenCascade_LDFLAGS ${OpenCASCADE_LINKER_FLAGS})
+  SET(OpenCASCADE_DEFINITIONS ${OpenCASCADE_C_FLAGS} ${OpenCASCADE_CXX_FLAGS})
+  SET(OpenCASCADE_LDFLAGS ${OpenCASCADE_LINKER_FLAGS})
 
   SALOME_ACCUMULATE_HEADERS(OpenCASCADE_INCLUDE_DIR)
   SALOME_ACCUMULATE_ENVIRONMENT(LD_LIBRARY_PATH ${OpenCASCADE_LIBRARY_DIR})
@@ -48,7 +63,7 @@ IF(OpenCASCADE_FOUND)
     #      In Debug ${OpenCASCADE_BINARY_DIR} and ${OpenCASCADE_LIBRARY_DIR} are stored in the
     #      config file w/o "d" suffix. To be checked with latest version of OCCT.
     SET(SUFF "")
-    IF(${OpenCASCADE_BUILD_TYPE} STREQUAL "Debug")
+    IF(${OpenCASCADE_BUILD_WITH_DEBUG})
       SET(SUFF "d")
     ENDIF()
     SALOME_ACCUMULATE_ENVIRONMENT(LD_LIBRARY_PATH ${OpenCASCADE_BINARY_DIR}${SUFF})
@@ -59,4 +74,4 @@ ELSE()
   IF(NOT CAS_FIND_QUIETLY)
     MESSAGE(STATUS "Could not find OpenCASCADE ...")
   ENDIF()
-ENDIF()
\ No newline at end of file
+ENDIF()