From fbff3d64af6461f707bf4a53d2205ee55be47d82 Mon Sep 17 00:00:00 2001 From: rnv Date: Wed, 15 Feb 2017 18:00:32 +0300 Subject: [PATCH] Migration to OpenCASCADE CMake configuration. --- cmake/FindSalomeOpenCASCADE.cmake | 78 +++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 cmake/FindSalomeOpenCASCADE.cmake diff --git a/cmake/FindSalomeOpenCASCADE.cmake b/cmake/FindSalomeOpenCASCADE.cmake new file mode 100644 index 0000000..84699fd --- /dev/null +++ b/cmake/FindSalomeOpenCASCADE.cmake @@ -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 -- 2.39.2