Salome HOME
Fix problems with freetype includes.
[tools/configuration.git] / cmake / FindSalomeCAS.cmake
1 # Copyright (C) 2013-2016  CEA/DEN, EDF R&D, OPEN CASCADE
2 #
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License, or (at your option) any later version.
7 #
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 # Lesser General Public License for more details.
12 #
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 #
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19 # Author: Adrien Bruneton
20 #
21
22 # OpenCascade detection for Salome
23 #
24 #  !! Please read the generic detection procedure in SalomeMacros.cmake !!
25 #
26
27 SALOME_FIND_PACKAGE_AND_DETECT_CONFLICTS(CAS CAS_INCLUDE_DIRS 1)
28 MARK_AS_ADVANCED(CAS_INCLUDE_DIRS
29   CAS_BinLPlugin CAS_BinTObjPlugin   CAS_BinXCAFPlugin CAS_PTKernel
30   CAS_StdLPlugin CAS_StdPlugin CAS_TKAdvTools  CAS_TKBin   CAS_TKBinL    CAS_TKBinTObj   
31   CAS_TKBinXCAF   CAS_TKBO    CAS_TKBool    CAS_TKBRep    CAS_TKCAF   CAS_TKCDF   CAS_TKernel   
32   CAS_TKFeat    CAS_TKFillet    CAS_TKG2d   CAS_TKG3d   CAS_TKGeomAlgo    CAS_TKGeomBase    
33   CAS_TKHLR   CAS_TKIGES    CAS_TKLCAF    CAS_TKMath    CAS_TKMesh    CAS_TKMeshVS    CAS_TKNIS   
34   CAS_TKOffset    CAS_TKOpenGl    CAS_TKPCAF    CAS_TKPLCAF   CAS_TKPrim    CAS_TKPShape    CAS_TKService   
35   CAS_TKShapeSchema   CAS_TKShHealing   CAS_TKStdLSchema    CAS_TKStdSchema   CAS_TKSTEP    CAS_TKSTEP209   
36   CAS_TKSTEPAttr    CAS_TKSTEPBase    CAS_TKSTL   CAS_TKTObj    CAS_TKTopAlgo   CAS_TKV2d   CAS_TKV3d   CAS_TKVRML    
37   CAS_TKXCAF    CAS_TKXCAFSchema    CAS_TKXDEIGES   CAS_TKXDESTEP   CAS_TKXMesh   CAS_TKXml   CAS_TKXmlL    CAS_TKXmlTObj   
38   CAS_TKXmlXCAF   CAS_TKXSBase    CAS_XCAFPlugin    CAS_XmlLPlugin    CAS_XmlPlugin   CAS_XmlTObjPlugin   
39   CAS_XmlXCAFPlugin CAS_Xmu)
40
41 IF(CAS_VERSION_STR VERSION_LESS "7.0.1")
42   MARK_AS_ADVANCED(CAS_FWOSPlugin)
43 ELSE()
44   MARK_AS_ADVANCED(CAS_TKStd)
45 ENDIF()
46
47 IF(CAS_VERSION_STR VERSION_LESS "7.0")
48   SET(CAS_STDPLUGIN TKStdSchema)
49 ELSE()
50   SET(CAS_STDPLUGIN TKStd)
51   SET(CAS_BINPLUGIN TKBin)
52 ENDIF()
53
54 # Workaround: detect and add freetype to CAS_INCLUDE_DIRS
55 # It will be suppressed after migration OCCT detection procedure to CONFIG mode
56 # and the correction of the several bugs in the OCCT CMake configuration.
57 SET(Freetype_DIR $ENV{FREETYPE_ROOT_DIR})
58 # Standard CMake Findfreetype.cmake doesn't find ft2build.h, do it manually:
59 # 1. Find custom freetype
60 FIND_PATH( FREETYPE_INCLUDE_DIR_ft2build ft2build.h
61            PATHS $ENV{FREETYPE_ROOT_DIR}
62            PATH_SUFFIXES include/freetype2 include freetype2
63            NO_DEFAULT_PATH )
64
65 # 2. Find native freetype, if custom doesn't found:
66 IF(NOT FREETYPE_INCLUDE_DIR_ft2build)
67   FIND_PATH( FREETYPE_INCLUDE_DIR_ft2build ft2build.h
68              PATH_SUFFIXES include/freetype2 include freetype2 )
69 ENDIF()
70 SET(CAS_INCLUDE_DIRS ${CAS_INCLUDE_DIRS} ${FREETYPE_INCLUDE_DIR_freetype2} ${FREETYPE_INCLUDE_DIR_ft2build})
71 # End of workaround
72
73 IF(CAS_FOUND)
74   SALOME_ACCUMULATE_HEADERS(CAS_INCLUDE_DIRS)
75   SALOME_ACCUMULATE_ENVIRONMENT(LD_LIBRARY_PATH ${CAS_TKernel})
76 ENDIF()