Salome HOME
Fix compilation pb relating to numpy
[modules/kernel.git] / salome_adm / cmake_files / FindCAS.cmake
1 # Copyright (C) 2007-2015  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
20 IF(NOT CAS_FIND_QUIETLY)
21     MESSAGE(STATUS "Looking for OpenCascade (CAS) ...")
22 ENDIF()
23
24 SET(_CAS_VERSION_FILE_NAME Standard_Version.hxx)
25
26 # Include directories:
27 FIND_PATH(CAS_INCLUDE_DIRS ${_CAS_VERSION_FILE_NAME} PATH_SUFFIXES inc)
28 FIND_FILE(CAS_VERSION_FILE ${_CAS_VERSION_FILE_NAME} PATH_SUFFIXES inc)
29 MARK_AS_ADVANCED(CAS_VERSION_FILE)
30
31 SET(CAS_VERSION_DEVELOPMENT 0)
32 IF(CAS_VERSION_FILE)
33   # Check if this is a development version:
34   FILE(STRINGS ${CAS_VERSION_FILE} CAS_VERSION_DEVELOPMENT_STR
35       REGEX "^ *#define OCC_VERSION_DEVELOPMENT")
36   IF(CAS_VERSION_DEVELOPMENT_STR)
37     SET(CAS_VERSION_DEVELOPMENT 1)
38   ENDIF(CAS_VERSION_DEVELOPMENT_STR)
39   
40   # Extract actual version number:
41   FILE(STRINGS ${CAS_VERSION_FILE} _tmp
42       REGEX "^ *#define OCC_VERSION_COMPLETE *\"[^\"]*\".*$")
43   STRING(REGEX REPLACE ".*\"([^\"]*)\".*" "\\1" CAS_VERSION_STR "${_tmp}")
44 ENDIF()
45
46 # Win specific stuff:
47 IF(WIN32)
48   IF(CMAKE_BUILD_TYPE STREQUAL Debug)
49     SET(CMAKE_LIBRARY_PATH ${CAS_ROOT_DIR}/win32/libd)
50   ELSE()
51     SET(CMAKE_LIBRARY_PATH ${CAS_ROOT_DIR}/win32/lib)
52   ENDIF()
53 ENDIF()
54
55 # Definitions:
56 SET(CAS_DEFINITIONS "-DLIN -DLINTEL -DCSFDB")
57 SET(CAS_DEFINITIONS "${CAS_DEFINITIONS} -DNo_exception")
58
59 # No config.h file in the OPEN CASCADE on WINDOWS platform 
60 IF(NOT WIN32)
61  SET(CAS_DEFINITIONS "${CAS_DEFINITIONS} -DHAVE_CONFIG_H")
62 ENDIF()
63
64 SET(CAS_DEFINITIONS "${CAS_DEFINITIONS} -DOCC_CONVERT_SIGNALS")
65
66 # Test for 64 bit machine:
67 IF(CMAKE_SIZEOF_VOID_P STREQUAL 8)
68   SET(CAS_DEFINITIONS "${CAS_DEFINITIONS} -D_OCC64")
69 ENDIF()
70
71 # Find Xmu library (X11 widgets?)
72 IF(NOT WIN32)
73   FIND_LIBRARY(CAS_Xmu Xmu)
74   IF(Xmu)
75     SET(CAS_LDPATH ${Xmu})
76   ENDIF()
77 ENDIF()
78
79 FIND_LIBRARY(CAS_FWOSPlugin FWOSPlugin )
80 FIND_LIBRARY(CAS_TKBin TKBin )
81 FIND_LIBRARY(CAS_TKBinL TKBinL )
82 FIND_LIBRARY(CAS_TKBinTObj TKBinTObj )
83 FIND_LIBRARY(CAS_TKBinXCAF TKBinXCAF )
84 FIND_LIBRARY(CAS_TKBO TKBO )
85 FIND_LIBRARY(CAS_TKBool TKBool )
86 FIND_LIBRARY(CAS_TKBRep TKBRep )
87 FIND_LIBRARY(CAS_TKCAF TKCAF )
88 FIND_LIBRARY(CAS_TKCDF TKCDF )
89 FIND_LIBRARY(CAS_TKernel TKernel )
90 FIND_LIBRARY(CAS_TKFeat TKFeat )
91 FIND_LIBRARY(CAS_TKFillet TKFillet )
92 FIND_LIBRARY(CAS_TKG2d TKG2d )
93 FIND_LIBRARY(CAS_TKG3d TKG3d )
94 FIND_LIBRARY(CAS_TKGeomAlgo TKGeomAlgo )
95 FIND_LIBRARY(CAS_TKGeomBase TKGeomBase )
96 FIND_LIBRARY(CAS_TKHLR TKHLR )
97 FIND_LIBRARY(CAS_TKIGES TKIGES )
98 FIND_LIBRARY(CAS_TKLCAF TKLCAF )
99 FIND_LIBRARY(CAS_TKMath TKMath )
100 FIND_LIBRARY(CAS_TKMesh TKMesh )
101 FIND_LIBRARY(CAS_TKMeshVS TKMeshVS )
102 IF(CAS_VERSION_STR VERSION_LESS "6.9.1")
103   FIND_LIBRARY(CAS_TKNIS TKNIS )
104 ENDIF()
105 FIND_LIBRARY(CAS_TKOffset TKOffset )
106 FIND_LIBRARY(CAS_TKOpenGl TKOpenGl )
107 FIND_LIBRARY(CAS_TKPrim TKPrim )
108 FIND_LIBRARY(CAS_TKService TKService )
109 FIND_LIBRARY(CAS_TKShHealing TKShHealing )
110 FIND_LIBRARY(CAS_TKSTEP TKSTEP )
111 FIND_LIBRARY(CAS_TKSTEP209 TKSTEP209 )
112 FIND_LIBRARY(CAS_TKSTEPAttr TKSTEPAttr )
113 FIND_LIBRARY(CAS_TKSTEPBase TKSTEPBase )
114 FIND_LIBRARY(CAS_TKSTL TKSTL )
115 FIND_LIBRARY(CAS_TKTObj TKTObj )
116 FIND_LIBRARY(CAS_TKTopAlgo TKTopAlgo )
117 FIND_LIBRARY(CAS_TKV3d TKV3d )
118 FIND_LIBRARY(CAS_TKVRML TKVRML )
119 FIND_LIBRARY(CAS_TKXCAF TKXCAF )
120 FIND_LIBRARY(CAS_TKXDEIGES TKXDEIGES )
121 FIND_LIBRARY(CAS_TKXDESTEP TKXDESTEP )
122 FIND_LIBRARY(CAS_TKXMesh TKXMesh )
123 FIND_LIBRARY(CAS_TKXml TKXml )
124 FIND_LIBRARY(CAS_TKXmlL TKXmlL )
125 FIND_LIBRARY(CAS_TKXmlTObj TKXmlTObj )
126 FIND_LIBRARY(CAS_TKXmlXCAF TKXmlXCAF )
127 FIND_LIBRARY(CAS_TKXSBase TKXSBase )
128
129 IF(CAS_VERSION_STR VERSION_LESS "7.0")
130   FIND_LIBRARY(CAS_PTKernel PTKernel )
131   FIND_LIBRARY(CAS_TKPCAF TKPCAF )
132   FIND_LIBRARY(CAS_TKPLCAF TKPLCAF )
133   FIND_LIBRARY(CAS_TKPShape TKPShape )
134   FIND_LIBRARY(CAS_TKShapeSchema TKShapeSchema )
135   FIND_LIBRARY(CAS_TKStdLSchema TKStdLSchema )
136   FIND_LIBRARY(CAS_TKStdSchema TKStdSchema )
137   FIND_LIBRARY(CAS_TKXCAFSchema TKXCAFSchema )
138 ENDIF()
139
140 SET(CAS_KERNEL ${CAS_TKernel} ${CAS_TKMath})
141 SET(CAS_OCAF ${CAS_TKernel} ${CAS_TKMath} ${CAS_TKCDF} ${CAS_TKLCAF})
142 SET(CAS_VIEWER ${CAS_TKService} ${CAS_TKV3d} ${CAS_TKG3d} ${CAS_TKGeomBase} ${CAS_TKBRep})
143 SET(CAS_OCAFVIS ${CAS_TKCAF} ${CAS_TKBRep} ${CAS_TKG2d})
144 SET(CAS_MODELER ${CAS_TKG3d} ${CAS_TKGeomBase} ${CAS_TKGeomAlgo} ${CAS_TKBRep} ${CAS_TKTopAlgo} ${CAS_TKG2d})
145
146 SET(CAS_TKV3d_EA ${CAS_TKernel} ${CAS_TKMath} ${CAS_TKV3d})
147 SET(CAS_TKBool_EA ${CAS_TKernel} ${CAS_TKMath} ${CAS_TKBRep} ${CAS_TKG2d} ${CAS_TKG3d} ${CAS_TKGeomBase} ${CAS_TKGeomAlgo} ${CAS_TKTopAlgo} ${CAS_TKBool})
148 SET(CAS_TKBRep_EA ${CAS_TKernel} ${CAS_TKMath} ${CAS_TKBRep})
149 SET(CAS_TKIGES_EA ${CAS_TKernel} ${CAS_TKMath} ${CAS_TKXSBase} ${CAS_TKBRep} ${CAS_TKIGES})
150 SET(CAS_TKSTEP_EA ${CAS_TKernel} ${CAS_TKMath} ${CAS_TKXSBase} ${CAS_TKBRep} ${CAS_TKSTEP})
151 SET(CAS_TKSTL_EA ${CAS_TKernel} ${CAS_TKMath} ${CAS_TKSTL})
152 SET(CAS_TKCAF_EA ${CAS_TKPrim} ${CAS_TKCAF})
153
154 SET(CAS_TKV3d ${CAS_TKV3d_EA})
155 SET(CAS_TKBool ${CAS_TKBool_EA})
156 SET(CAS_TKBRep ${CAS_TKBRep_EA})
157 SET(CAS_TKIGES ${CAS_TKIGES_EA})
158 SET(CAS_TKSTEP ${CAS_TKSTEP_EA})
159 SET(CAS_TKSTL ${CAS_TKSTL_EA})
160 SET(CAS_TKCAF ${CAS_TKCAF_EA})
161
162 SET(_libs
163   CAS_FWOSPlugin
164   CAS_TKBin
165   CAS_TKBinL
166   CAS_TKBinTObj
167   CAS_TKBinXCAF
168   CAS_TKBO
169   CAS_TKBool
170   CAS_TKBRep
171   CAS_TKCAF
172   CAS_TKCDF
173   CAS_TKernel
174   CAS_TKFeat
175   CAS_TKFillet
176   CAS_TKG2d
177   CAS_TKG3d
178   CAS_TKGeomAlgo
179   CAS_TKGeomBase
180   CAS_TKHLR
181   CAS_TKIGES
182   CAS_TKLCAF
183   CAS_TKMath
184   CAS_TKMesh
185   CAS_TKMeshVS
186   CAS_TKOffset
187   CAS_TKOpenGl
188   CAS_TKPrim
189   CAS_TKService
190   CAS_TKShHealing
191   CAS_TKSTEP
192   CAS_TKSTEP209
193   CAS_TKSTEPAttr
194   CAS_TKSTEPBase
195   CAS_TKSTL
196   CAS_TKTObj
197   CAS_TKTopAlgo
198   CAS_TKV3d
199   CAS_TKVRML
200   CAS_TKXCAF
201   CAS_TKXDEIGES
202   CAS_TKXDESTEP
203   CAS_TKXMesh
204   CAS_TKXml
205   CAS_TKXmlL
206   CAS_TKXmlTObj
207   CAS_TKXmlXCAF
208   CAS_TKXSBase
209 )
210
211 IF(CAS_VERSION_STR VERSION_LESS "6.9.1")
212   LIST(APPEND _libs CAS_TKNIS)
213 ENDIF()
214
215 IF(CAS_VERSION_STR VERSION_LESS "7.0")
216   LIST(APPEND _libs
217     CAS_PTKernel
218     CAS_TKPCAF
219     CAS_TKPLCAF
220     CAS_TKPShape
221     CAS_TKShapeSchema
222     CAS_TKStdLSchema
223     CAS_TKStdSchema
224     CAS_TKXCAFSchema
225     )
226 ENDIF()
227
228
229 INCLUDE(FindPackageHandleStandardArgs)
230 FIND_PACKAGE_HANDLE_STANDARD_ARGS(CAS REQUIRED_VARS CAS_INCLUDE_DIRS ${_libs})
231
232 IF(CAS_FOUND AND NOT CAS_FIND_QUIETLY)
233   IF(CAS_VERSION_DEVELOPMENT)
234     MESSAGE(STATUS "Found OpenCascade version: ${CAS_VERSION_STR} (development)")
235   ELSE(CAS_VERSION_DEVELOPMENT)
236     MESSAGE(STATUS "Found OpenCascade version: ${CAS_VERSION_STR}")
237   ENDIF(CAS_VERSION_DEVELOPMENT)
238 ENDIF()