1 # Copyright (C) 2012-2013 CEA/DEN, EDF R&D, OPEN CASCADE
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.
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.
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
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 PROJECT(SALOME_KERNEL)
21 CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8 FATAL_ERROR)
23 IF(COMMAND cmake_policy)
24 cmake_policy(SET CMP0003 NEW)
25 ENDIF(COMMAND cmake_policy)
27 # directories for packages detection
28 SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/salome_adm/cmake_files)
30 find_package(PLATFORM)
33 SET(CMAKE_C_COMPILER gcc)
34 SET(CMAKE_CXX_COMPILER g++)
35 # because default is clang(llvm) with mountain lion at least
39 # Temporary step instead Find Calcium.cmake
40 SET(CALCIUM_IDL_INT_F77 long)
41 SET(CALCIUM_CORBA_INT_F77 CORBA::Long)
44 # Temporary definitions
56 SET(BUILD_SHARED_LIBS true)
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)
66 SET(CMAKE_THREAD_PREFER_PTHREAD)
67 find_package(Threads REQUIRED)
69 # required prerequisites
71 find_package(SalomePYTHON)
72 find_package(SalomeSWIG)
73 find_package(SalomeLIBXML2)
74 find_package(SalomeHDF5)
75 find_package(SalomeBOOST)
77 # optional prerequisites
79 if(SALOME_USE_MPI OR HDF5_IS_PARALLEL OR HDF5_ENABLE_PARALLEL)
80 find_package(SalomeMPI)
81 endif(SALOME_USE_MPI OR HDF5_IS_PARALLEL OR HDF5_ENABLE_PARALLEL)
85 endif(SALOME_USE_CORBA)
88 find_package(SalomeCPPUNIT)
89 endif(SALOME_USE_TEST)
92 find_package(SalomeDOXYGEN)
93 find_package(SalomeSPHINX)
96 if(SALOME_USE_LIBBATCH)
97 find_package(SalomeLIBBATCH)
98 endif(SALOME_USE_LIBBATCH)
100 INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/SalomeMacros.cmake)
102 SET(CALCIUM_IDL_INT_F77 long)
103 SET(CALCIUM_CORBA_INT_F77 CORBA::Long)
107 SET(KERNEL_salomebin_BINS bin/salome)
109 SET(KERNEL_salomelib_LIBS lib/salome)
111 SET(KERNEL_salomeidl_IDLS idl/salome)
113 SET(KERNEL_salomeinclude_HEADERS include/salome)
115 SET(KERNEL_salomeres_DATA share/salome/resources/kernel)
117 SET(KERNEL_salomeres_SCRIPTS share/salome/resources/kernel)
119 SET(KERNEL_salomescript_SCRIPTS bin/salome)
121 SET(KERNEL_salomescript_DATA bin/salome)
123 SET(KERNEL_salomescript_PYTHON bin/salome)
125 SET(KERNEL_appliskel_SCRIPTS bin/salome/appliskel)
127 SET(KERNEL_appliskel_PYTHON bin/salome/appliskel)
129 SET(KERNEL_pythondir lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages)
131 SET(KERNEL_salomepythondir ${KERNEL_pythondir}/salome)
133 SET(KERNEL_sharedpkgpython_PYTHON ${KERNEL_salomepythondir}/shared_modules)
135 SET(KERNEL_salomeadmcmake salome_adm/cmake_files)
138 ADD_SUBDIRECTORY(idl)
139 ENDIF(SALOME_USE_CORBA)
141 ADD_SUBDIRECTORY(src)
142 ADD_SUBDIRECTORY(resources)
144 IF(NOT WITHONLYLAUNCHER)
145 ADD_SUBDIRECTORY(bin)
146 ADD_SUBDIRECTORY(salome_adm)
147 ENDIF(NOT WITHONLYLAUNCHER)
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})
156 ADD_SUBDIRECTORY(doc)
157 ENDIF(SALOME_USE_DOC)