Salome HOME
bos #18711 Adapt NETGEN detection procedure for version 6x: manage case when NETGEN...
[tools/configuration.git] / cmake / FindSalomeNetgen.cmake
index d47ec39e0f2efd92971b1bf0dbb73821d45bad9d..e5ba53e623840c38f1eba08cd3e1920eaf723a6e 100644 (file)
 SALOME_FIND_PACKAGE_AND_DETECT_CONFLICTS(Netgen NETGEN_INCLUDE_DIRS 1)
 MARK_AS_ADVANCED(NETGEN_INCLUDE_DIRS NETGEN_LIBRARIES)
 
+# process case when netgen is found in config mode
+IF(NOT NETGEN_DEFINITIONS AND NETGEN_COMPILE_DEFINITIONS)
+  SET(NETGEN_DEFINITIONS)
+  FOREACH(_ng_def ${NETGEN_COMPILE_DEFINITIONS})
+    LIST(APPEND NETGEN_DEFINITIONS "-D${_ng_def}")
+  ENDFOREACH()
+ENDIF()
+IF(NOT NETGEN_LIBRARIES)
+  SET(NETGEN_LIBRARIES)
+  FOREACH(_ng_lib nglib csg gen geom2d gprim interface la mesh occ stl ngcore)
+    IF(TARGET ${_ng_lib})
+      LIST(APPEND NETGEN_LIBRARIES "${_ng_lib}")
+    ENDIF()
+  ENDFOREACH()
+ENDIF()
+IF(NOT NETGEN_V5 AND NOT NETGEN_V6 AND NETGEN_VERSION_MAJOR)
+  IF(NETGEN_VERSION_MAJOR VERSION_EQUAL 6)
+    SET(NETGEN_V6 ON)
+  ELSEIF(NETGEN_VERSION_MAJOR VERSION_EQUAL 5)
+    SET(NETGEN_V5 ON)
+  ENDIF()
+ENDIF()
+IF(NETGEN_INCLUDE_DIR AND NETGEN_INCLUDE_DIRS)
+  LIST(APPEND NETGEN_INCLUDE_DIRS ${NETGEN_INCLUDE_DIR}/core)
+ENDIF()
+IF(NETGEN_INCLUDE_DIRS)
+  LIST(REMOVE_DUPLICATES NETGEN_INCLUDE_DIRS)
+ENDIF()
+
+IF(NETGEN_V6)
+  MESSAGE(STATUS "NETGEN V6 or newer found")
+  SET(NETGEN_DEFINITIONS "${NETGEN_DEFINITIONS} -DNETGEN_V6")
+ELSEIF(NETGEN_V5)
+  MESSAGE(STATUS "NETGEN V5 found")
+  SET(NETGEN_DEFINITIONS "${NETGEN_DEFINITIONS} -DNETGEN_V5")
+ENDIF()
+
 IF(NETGEN_FOUND)
   SALOME_ACCUMULATE_HEADERS(NETGEN_INCLUDE_DIRS)
   SALOME_ACCUMULATE_ENVIRONMENT(LD_LIBRARY_PATH ${NETGEN_LIBRARIES})