Salome HOME
Fix regression with multi-node schemas on clusters with blaunch internal protocol
[modules/kernel.git] / CMakeLists.txt
1 # Copyright (C) 2012-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 PROJECT(SALOME_KERNEL)
20
21 CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8 FATAL_ERROR)
22
23 IF(COMMAND cmake_policy)
24   cmake_policy(SET CMP0003 NEW)
25 ENDIF(COMMAND cmake_policy)
26
27 # directories for packages detection
28 SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/salome_adm/cmake_files)
29
30 find_package(PLATFORM)
31
32 IF(APPLE)
33   SET(CMAKE_C_COMPILER gcc)
34   SET(CMAKE_CXX_COMPILER g++)
35   # because default is clang(llvm) with mountain lion at least
36 ENDIF(APPLE)
37
38
39 # Temporary step instead Find Calcium.cmake
40 SET(CALCIUM_IDL_INT_F77 long)
41 SET(CALCIUM_CORBA_INT_F77 CORBA::Long)
42 SET(LONG_OR_INT int)
43
44 # Temporary definitions
45 SET(DOXYGEN_IS_OK 0)
46 IF(WINDOWS)
47  SET(CPPUNIT_IS_OK 0)
48 ENDIF(WINDOWS)
49 SET(WITH_LOCAL 1)
50 SET(WITH_BATCH 1)
51
52 ENABLE_TESTING()
53 SET(VERSION "7.2.0")
54 SET(VERSION_DEV "0")
55
56 SET(BUILD_SHARED_LIBS true)
57
58 #Defining all options first
59 option(SALOME_USE_MPI "Use MPI containers" OFF)
60 option(SALOME_USE_CORBA "Use distribute application with components" ON)
61 option(SALOME_USE_DOC "Generate documentation" ON)
62 option(SALOME_USE_TEST "Generate test" OFF)
63 option(SALOME_USE_LIBBATCH "Generate Launcher" ON)
64
65 # Threads
66 SET(CMAKE_THREAD_PREFER_PTHREAD)
67 find_package(Threads REQUIRED)
68
69 # required prerequisites
70
71 find_package(SalomePYTHON)
72 find_package(SalomeSWIG)
73 find_package(SalomeLIBXML2)
74 find_package(SalomeHDF5)
75 find_package(SalomeBOOST)
76
77 # optional prerequisites
78
79 if(SALOME_USE_MPI OR HDF5_IS_PARALLEL)
80   find_package(SalomeMPI)
81 endif(SALOME_USE_MPI OR HDF5_IS_PARALLEL)
82
83 if(SALOME_USE_CORBA)
84   find_package(OMNIORB)
85 endif(SALOME_USE_CORBA)
86
87 if(SALOME_USE_TEST)
88   find_package(SalomeCPPUNIT)
89 endif(SALOME_USE_TEST)
90
91 if(SALOME_USE_DOC)
92   find_package(SalomeDOXYGEN)
93   find_package(SalomeSPHINX)
94 endif(SALOME_USE_DOC)
95
96 if(SALOME_USE_LIBBATCH)
97   find_package(SalomeLIBBATCH)
98 endif(SALOME_USE_LIBBATCH)
99
100 INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/SalomeMacros.cmake)
101
102 SET(CALCIUM_IDL_INT_F77 long)
103 SET(CALCIUM_CORBA_INT_F77 CORBA::Long)
104 SET(LONG_OR_INT int)
105
106
107 SET(KERNEL_salomebin_BINS bin/salome)
108
109 SET(KERNEL_salomelib_LIBS lib/salome)
110
111 SET(KERNEL_salomeidl_IDLS idl/salome)
112
113 SET(KERNEL_salomeinclude_HEADERS include/salome)
114
115 SET(KERNEL_salomeres_DATA share/salome/resources/kernel)
116
117 SET(KERNEL_salomeres_SCRIPTS share/salome/resources/kernel)
118
119 SET(KERNEL_salomescript_SCRIPTS bin/salome)
120
121 SET(KERNEL_salomescript_DATA bin/salome)
122
123 SET(KERNEL_salomescript_PYTHON bin/salome)
124
125 SET(KERNEL_appliskel_SCRIPTS bin/salome/appliskel)
126
127 SET(KERNEL_appliskel_PYTHON bin/salome/appliskel)
128
129 SET(KERNEL_pythondir lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages)
130
131 SET(KERNEL_salomepythondir ${KERNEL_pythondir}/salome)
132
133 SET(KERNEL_sharedpkgpython_PYTHON ${KERNEL_salomepythondir}/shared_modules)
134
135 SET(KERNEL_salomeadmcmake salome_adm/cmake_files)
136
137 IF(SALOME_USE_CORBA)
138   ADD_SUBDIRECTORY(idl)
139 ENDIF(SALOME_USE_CORBA)
140
141 ADD_SUBDIRECTORY(src)
142 ADD_SUBDIRECTORY(resources)
143
144 IF(NOT WITHONLYLAUNCHER)
145   ADD_SUBDIRECTORY(bin)
146   ADD_SUBDIRECTORY(salome_adm)
147 ENDIF(NOT WITHONLYLAUNCHER)
148
149 SET(input ${CMAKE_CURRENT_SOURCE_DIR}/KERNEL_version.h.in)
150 SET(output ${CMAKE_CURRENT_BINARY_DIR}/KERNEL_version.h)
151 MESSAGE(STATUS "Creation of ${output}")
152 CONFIGURE_FILE(${input} ${output} @ONLY)
153 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/KERNEL_version.h DESTINATION ${KERNEL_salomeinclude_HEADERS})
154
155 IF(SALOME_USE_DOC)
156   ADD_SUBDIRECTORY(doc)
157 ENDIF(SALOME_USE_DOC)