]> SALOME platform Git repositories - tools/configuration.git/commitdiff
Salome HOME
Migration to OpenCASCADE CMake configuration.
authorrnv <rnv@opencascade.com>
Wed, 15 Feb 2017 15:00:32 +0000 (18:00 +0300)
committerrnv <rnv@opencascade.com>
Wed, 15 Feb 2017 15:00:32 +0000 (18:00 +0300)
cmake/FindSalomeOpenCASCADE.cmake [new file with mode: 0644]

diff --git a/cmake/FindSalomeOpenCASCADE.cmake b/cmake/FindSalomeOpenCASCADE.cmake
new file mode 100644 (file)
index 0000000..84699fd
--- /dev/null
@@ -0,0 +1,78 @@
+# Copyright (C) 2013-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# Author: Roman NIKOLAEV
+#
+
+# OpenCascade detection for Salome
+#
+#  !! Please read the generic detection procedure in SalomeMacros.cmake !!
+#
+
+SALOME_FIND_PACKAGE_AND_DETECT_CONFLICTS(OpenCASCADE OpenCASCADE_INCLUDE_DIR 2)
+
+IF(OpenCASCADE_FOUND)
+  SET(OPENCASCADE_VERSION_STR "${OpenCASCADE_MAJOR_VERSION}.${OpenCASCADE_MINOR_VERSION}.${OpenCASCADE_MAINTENANCE_VERSION}")
+  
+  IF(NOT CAS_FIND_QUIETLY)
+    IF(OpenCASCADE_DEVELOPMENT_VERSION)
+      MESSAGE(STATUS "Found OpenCascade version: ${OPENCASCADE_VERSION_STR} (development)")
+    ELSE()
+      MESSAGE(STATUS "Found OpenCascade version: ${OPENCASCADE_VERSION_STR}")
+    ENDIF()
+  ENDIF()
+
+  # OPENCASCADE libraries
+  SET(OPENCASCADE_INCLUDE_DIRS ${OpenCASCADE_INCLUDE_DIR})
+  SET(OPENCASCADE_LIBRARIES ${OpenCASCADE_LIBRARIES})
+  SET(OPENCASCADE_KERNEL ${OpenCASCADE_FoundationClasses_LIBRARIES})
+  SET(OPENCASCADE_VISUALIZATION ${OpenCASCADE_Visualization_LIBRARIES})
+  SET(OPENCASCADE_MODELINGDATA ${OpenCASCADE_ModelingData_LIBRARIES})
+  SET(OPENCASCADE_MODELINGALGO ${OpenCASCADE_ModelingAlgorithms_LIBRARIES})
+  SET(OPENCASCADE_OCAF ${OpenCASCADE_ApplicationFramework_LIBRARIES})
+
+  # OPENCASCADE definitions
+  SET(OPENCASCADE_DEFINITIONS ${OpenCASCADE_C_FLAGS} ${OpenCASCADE_CXX_FLAGS} ${OpenCASCADE_LINKER_FLAGS} -DLIN)
+  SET(OPENCASCADE_DEFINITIONS ${OPENCASCADE_DEFINITIONS} -DLIN) # Is it really necessary ???
+
+  # Workaround: detect and add freetype to CAS_INCLUDE_DIRS
+  # It will be suppressed after the correction of the several bugs in
+  # the OCCT CMake configuration.
+  SET(Freetype_DIR $ENV{FREETYPE_ROOT_DIR})
+  FIND_PACKAGE(Freetype)
+  
+  # Standard CMake Findfreetype.cmake doesn't find ft2build.h, do it manually:
+  # 1. Find custom freetype
+  FIND_PATH( FREETYPE_INCLUDE_DIR_ft2build ft2build.h
+            PATHS $ENV{FREETYPE_ROOT_DIR}
+            PATH_SUFFIXES include/freetype2 include freetype2
+            NO_DEFAULT_PATH )
+
+  # 2. Find native freetype, if custom doesn't found:
+  IF(NOT FREETYPE_INCLUDE_DIR_ft2build)
+    FIND_PATH( FREETYPE_INCLUDE_DIR_ft2build ft2build.h
+              PATH_SUFFIXES include/freetype2 include freetype2 )
+  ENDIF()
+  SET(OPENCASCADE_INCLUDE_DIRS ${OPENCASCADE_INCLUDE_DIRS} ${FREETYPE_INCLUDE_DIR_freetype2} ${FREETYPE_INCLUDE_DIR_ft2build})
+  # End of workaround
+  
+ELSE()
+  IF(NOT CAS_FIND_QUIETLY)
+    MESSAGE(STATUS "Could not find OpenCASCADE ...")
+  ENDIF()
+ENDIF()
\ No newline at end of file