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