Salome HOME
Qt5 fix for Eficas tool.
[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 QT5
48 find_package ( Qt5 COMPONENTS Core REQUIRED )
49
50 FIND_PACKAGE(Qt5LinguistTools)
51 GET_TARGET_PROPERTY(QT_LRELEASE_EXECUTABLE Qt5::lrelease LOCATION)
52 MARK_AS_ADVANCED(QT_LRELEASE_EXECUTABLE)
53
54 # Detection de PyQt5
55 if (NOT PYQT5_FOUND)
56   execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "\"import PyQt5\""
57                     RESULT_VARIABLE _res
58                     OUTPUT_VARIABLE _trashout
59                     ERROR_VARIABLE  _trasherr
60                   )
61   if (NOT _res)
62     message ( STATUS "Looking for Python package PyQt5 - found" )
63     set ( PYQT5_FOUND 1 CACHE INTERNAL "True if Python package PyQt5 is here" )
64   else (NOT _res)
65     message ( STATUS "Looking for Python package PyQt5 - not found" )
66     set ( PYQT5_FOUND 0 CACHE INTERNAL "True if Python package PyQt5 is here" )
67   endif (NOT _res)
68 endif (NOT PYQT5_FOUND)
69
70 if (NOT PYQT5_FOUND)
71   message ( FATAL_ERROR "Python package PyQt5 is REQUIRED" )
72 endif (NOT PYQT5_FOUND)
73
74 # Detection de PYUIC5
75 find_program ( PYUIC5 NAMES pyuic5
76                DOC  "Path to the pyuic5 compilation tool"
77              )
78 if (NOT PYUIC5)
79   message ( FATAL_ERROR "pyuic5 tool is REQUIRED" )
80 endif (NOT PYUIC5)
81
82 # Definition des options de CMake
83 option ( WITH_ALL_PACKAGES "Install all package files" OFF )
84 option ( WITH_SALOME_MECA  "Install OT, Aster and SEP files" OFF )
85 option ( WITH_OPENTURNS    "Install Open TURNS files"  OFF )
86 option ( WITH_ASTER        "Install Aster files"       OFF )
87 option ( WITH_MAP          "Install MAP files"         OFF )
88 option ( WITH_CARMEL       "Install CARMEL files"      OFF )
89 option ( WITH_SEP          "Install SEP files"         OFF )
90 option ( WITH_ZCRACKS      "Install ZCRACKS files"     OFF )
91 option ( IN_SALOME_CONTEXT "Configure Eficas for use in Salome" OFF )
92
93 set ( _OPTIONLIST
94   WITH_OPENTURNS 
95   WITH_ASTER
96   WITH_MAP
97   WITH_CARMEL
98   WITH_SALOME_MECA
99   )
100
101 set ( _SALOME_MECA_LIST
102   WITH_OPENTURNS 
103   WITH_ASTER
104   WITH_SEP
105   WITH_ZCRACKS
106   IN_SALOME_CONTEXT
107   )
108
109 if (WITH_ALL_PACKAGES)
110   foreach ( _opt ${_OPTIONLIST} )
111     set ( ${_opt} ON )
112   endforeach ( _opt )
113 endif (WITH_ALL_PACKAGES)
114
115 if (WITH_SALOME_MECA)
116   foreach ( _opt ${_SALOME_MECA_LIST} )
117     set ( ${_opt} ON )
118   endforeach ( _opt )
119 endif (WITH_SALOME_MECA)
120
121 # Verification: au moins une option doit etre selectionnee
122 set ( _VALIDOPT FALSE )
123 foreach ( _opt ${_OPTIONLIST} )
124   if ( ${_opt} )
125     set ( _VALIDOPT TRUE )
126     string ( REPLACE WITH_ "" _opt2 ${_opt} )
127     message ( STATUS "Will install package ${_opt2}" )
128   endif ( ${_opt} )
129 endforeach ( _opt )
130 if ( NOT ${_VALIDOPT} )
131   message ( FATAL_ERROR "At least one option within ${_OPTIONLIST} must be selected" )
132 endif ( NOT ${_VALIDOPT} )
133
134 # Detection des prerequis lies aux options
135 if (WITH_OPENTURNS)
136   if (IN_SALOME_CONTEXT)
137     SET(OpenTURNS_PYTHON_MODULE_DIR "")
138   else (IN_SALOME_CONTEXT)
139     find_package ( OpenTURNS REQUIRED )
140   endif (IN_SALOME_CONTEXT)
141 endif (WITH_OPENTURNS)
142
143 #if (WITH_ASTER)
144 #  find_package ( Aster REQUIRED )
145 #endif (WITH_ASTER)
146
147 #if (WITH_MAP)
148 #  find_package ( MAP REQUIRED )
149 #endif (WITH_MAP)
150
151
152 # Parcours recursif des sous-repertoires
153 add_subdirectory ( Accas )
154 add_subdirectory ( Aide )
155 add_subdirectory ( Editeur )
156 add_subdirectory ( Extensions )
157 add_subdirectory ( Ihm )
158 install ( DIRECTORY InterfaceQT4 DESTINATION ${CMAKE_INSTALL_PREFIX} )
159 add_subdirectory ( Noyau )
160 add_subdirectory ( UiQT5 )
161 add_subdirectory ( Validation )
162 add_subdirectory ( convert )
163 add_subdirectory ( generator )
164 add_subdirectory ( Traducteur )
165
166 # Installation des fichiers : Open TURNS
167 if (WITH_OPENTURNS)
168   add_subdirectory ( Openturns_Study )
169   add_subdirectory ( Openturns_Wrapper )
170 endif (WITH_OPENTURNS)
171
172 # Installation des fichiers : Aster
173 if (WITH_ASTER)
174   add_subdirectory ( Aster )
175 endif (WITH_ASTER)
176
177 if (WITH_TK)
178   add_subdirectory ( InterfaceTK )
179   add_subdirectory ( Pmw )
180   add_subdirectory ( Tools )
181   add_subdirectory ( Misc )
182   add_subdirectory ( AIDE )
183 endif (WITH_TK)
184
185 # Installation des fichiers : MAP
186 if (WITH_MAP)
187   add_subdirectory ( MAP )
188 endif (WITH_MAP)
189
190 # Installation des fichiers : CARMEL
191 if (WITH_CARMEL)
192   add_subdirectory ( Carmel3D )
193   add_subdirectory ( CarmelCND )
194   add_subdirectory ( CarmelCS )
195 endif (WITH_CARMEL)
196
197 # Installation des fichiers : Sep
198 if (WITH_SEP)
199   add_subdirectory ( Sep )
200 endif (WITH_SEP)
201
202 # Installation des fichiers : ZCracks
203 if (WITH_ZCRACKS)
204   add_subdirectory ( ZCracks )
205 endif (WITH_ZCRACKS)
206
207 if (BUILD_DOC)
208   add_subdirectory ( Doc )
209 endif (BUILD_DOC)
210
211 ### Local Variables:
212 ### mode: cmake
213 ### End: