Salome HOME
premiere version
[tools/eficas.git] / CMakeLists.txt
1 # -*- coding: utf-8 -*-
2 #            CONFIGURATION MANAGEMENT OF EDF VERSION
3 # ======================================================================
4 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
5 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8 # (AT YOUR OPTION) ANY LATER VERSION.
9 #
10 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
12 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14 #
15 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
17 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
18 #
19 #
20 # ======================================================================
21
22 cmake_minimum_required ( VERSION 2.8 )
23
24 project ( Eficas CXX C )
25
26 # Definition du chemin d'acces aux modules additionnels
27 set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMakeModules" )
28
29 # Detection de Python
30 find_package ( PythonInterp 2.4 REQUIRED )
31 if (PYTHONINTERP_FOUND)
32   string ( RANDOM tmpPyScript )
33   set ( tmpPyScript "${tmpPyScript}.py" )
34   file ( WRITE  ${tmpPyScript}
35 "# Automaticaly generated by CMake. Do NOT edit. Changes will be lost
36 import sys
37 print '%d.%d' % ( sys.version_info[0], sys.version_info[1] )
38 " )
39   get_source_file_property ( PYSCRIPT_LOC ${tmpPyScript} LOCATION )
40   execute_process ( COMMAND ${PYTHON_EXECUTABLE} ${PYSCRIPT_LOC}
41                     OUTPUT_VARIABLE PYTHON_VERSION
42                     #ERROR_QUIET
43                     OUTPUT_STRIP_TRAILING_WHITESPACE )
44   file ( REMOVE ${tmpPyScript} )
45 endif (PYTHONINTERP_FOUND)
46 message ( STATUS "Using Python version ${PYTHON_VERSION}" )
47 # Detection de QT4
48 find_package ( Qt4 COMPONENTS QtCore QtGui REQUIRED )
49 include( ${QT_USE_FILE} )
50
51 # Detection de PyQt4
52 if (NOT PYQT4_FOUND)
53   execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "\"import PyQt4\""
54                     RESULT_VARIABLE _res
55                     OUTPUT_VARIABLE _trashout
56                     ERROR_VARIABLE  _trasherr
57                   )
58   if (NOT _res)
59     message ( STATUS "Looking for Python package PyQt4 - found" )
60     set ( PYQT4_FOUND 1 CACHE INTERNAL "True if Python package PyQt4 is here" )
61   else (NOT _res)
62     message ( STATUS "Looking for Python package PyQt4 - not found" )
63     set ( PYQT4_FOUND 0 CACHE INTERNAL "True if Python package PyQt4 is here" )
64   endif (NOT _res)
65 endif (NOT PYQT4_FOUND)
66
67 if (NOT PYQT4_FOUND)
68   message ( FATAL_ERROR "Python package PyQt4 is REQUIRED" )
69 endif (NOT PYQT4_FOUND)
70
71 # Detection de pyuic4
72 find_program ( PYUIC4 NAMES pyuic4
73                DOC  "Path to the pyuic4 compilation tool"
74              )
75 if (NOT PYUIC4)
76   message ( FATAL_ERROR "pyuic4 tool is REQUIRED" )
77 endif (NOT PYUIC4)
78
79 # Definition des options de CMake
80 option ( WITH_ALL_PACKAGES "Install all package files" OFF )
81 option ( WITH_SALOME_MECA  "Install OT, Aster and SEP files" OFF )
82 option ( WITH_OPENTURNS    "Install Open TURNS files"  OFF )
83 option ( WITH_ASTER        "Install Aster files"       OFF )
84 option ( WITH_MAP          "Install MAP files"         OFF )
85 option ( WITH_CARMEL       "Install CARMEL files"      OFF )
86 option ( WITH_SEP          "Install SEP files"         OFF )
87 option ( WITH_ZCRACKS      "Install ZCRACKS files"     OFF )
88 option ( IN_SALOME_CONTEXT "Configure Eficas for use in Salome" OFF )
89
90 set ( _OPTIONLIST
91   WITH_OPENTURNS 
92   WITH_ASTER
93   WITH_MAP
94   WITH_CARMEL
95   WITH_SALOME_MECA
96   )
97
98 set ( _SALOME_MECA_LIST
99   WITH_OPENTURNS 
100   WITH_ASTER
101   WITH_SEP
102   WITH_ZCRACKS
103   IN_SALOME_CONTEXT
104   )
105
106 if (WITH_ALL_PACKAGES)
107   foreach ( _opt ${_OPTIONLIST} )
108     set ( ${_opt} ON )
109   endforeach ( _opt )
110 endif (WITH_ALL_PACKAGES)
111
112 if (WITH_SALOME_MECA)
113   foreach ( _opt ${_SALOME_MECA_LIST} )
114     set ( ${_opt} ON )
115   endforeach ( _opt )
116 endif (WITH_SALOME_MECA)
117
118 # Verification: au moins une option doit etre selectionnee
119 set ( _VALIDOPT FALSE )
120 foreach ( _opt ${_OPTIONLIST} )
121   if ( ${_opt} )
122     set ( _VALIDOPT TRUE )
123     string ( REPLACE WITH_ "" _opt2 ${_opt} )
124     message ( STATUS "Will install package ${_opt2}" )
125   endif ( ${_opt} )
126 endforeach ( _opt )
127 if ( NOT ${_VALIDOPT} )
128   message ( FATAL_ERROR "At least one option within ${_OPTIONLIST} must be selected" )
129 endif ( NOT ${_VALIDOPT} )
130
131 # Detection des prerequis lies aux options
132 if (WITH_OPENTURNS)
133   if (IN_SALOME_CONTEXT)
134     SET(OpenTURNS_PYTHON_MODULE_DIR "")
135   else (IN_SALOME_CONTEXT)
136     find_package ( OpenTURNS REQUIRED )
137   endif (IN_SALOME_CONTEXT)
138 endif (WITH_OPENTURNS)
139
140 #if (WITH_ASTER)
141 #  find_package ( Aster REQUIRED )
142 #endif (WITH_ASTER)
143
144 #if (WITH_MAP)
145 #  find_package ( MAP REQUIRED )
146 #endif (WITH_MAP)
147
148
149 # Parcours recursif des sous-repertoires
150 add_subdirectory ( Accas )
151 add_subdirectory ( Aide )
152 add_subdirectory ( Editeur )
153 add_subdirectory ( Extensions )
154 add_subdirectory ( Ihm )
155 add_subdirectory ( InterfaceQT4 )
156 add_subdirectory ( Noyau )
157 add_subdirectory ( UiQT4 )
158 add_subdirectory ( Validation )
159 add_subdirectory ( convert )
160 add_subdirectory ( generator )
161
162 # Installation des fichiers : Open TURNS
163 if (WITH_OPENTURNS)
164   add_subdirectory ( Openturns_Study )
165   add_subdirectory ( Openturns_Wrapper )
166 endif (WITH_OPENTURNS)
167
168 # Installation des fichiers : Aster
169 if (WITH_ASTER)
170   add_subdirectory ( Aster )
171   add_subdirectory ( Traducteur )
172 endif (WITH_ASTER)
173
174 if (WITH_TK)
175   add_subdirectory ( InterfaceTK )
176   add_subdirectory ( Pmw )
177   add_subdirectory ( Tools )
178   add_subdirectory ( Misc )
179   add_subdirectory ( AIDE )
180 endif (WITH_TK)
181
182 # Installation des fichiers : MAP
183 if (WITH_MAP)
184   add_subdirectory ( MAP )
185 endif (WITH_MAP)
186
187 # Installation des fichiers : CARMEL
188 if (WITH_CARMEL)
189   add_subdirectory ( Carmel3D )
190   add_subdirectory ( CarmelCND )
191   add_subdirectory ( CarmelCS )
192 endif (WITH_CARMEL)
193
194 # Installation des fichiers : Sep
195 if (WITH_SEP)
196   add_subdirectory ( Sep )
197 endif (WITH_SEP)
198
199 # Installation des fichiers : ZCracks
200 if (WITH_ZCRACKS)
201   add_subdirectory ( ZCracks )
202 endif (WITH_ZCRACKS)
203
204
205 ### Local Variables:
206 ### mode: cmake
207 ### End: