Salome HOME
d70a5dcd63e8d14d84dd2c66ca50d54a565896fc
[modules/med.git] / src / MEDPartitioner / CMakeLists.txt
1 # Copyright (C) 2012-2013  CEA/DEN, EDF R&D
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 ADD_DEFINITIONS(${HDF5_DEFINITIONS} ${MEDFILE_DEFINITIONS} ${LIBXML_DEFINITIONS} ${MPI_DEFINITIONS})
21
22 IF(SALOME_BUILD_TESTS)
23   ADD_SUBDIRECTORY(Test)
24 ENDIF(SALOME_BUILD_TESTS)
25
26 INCLUDE_DIRECTORIES(
27   ${PARMETIS_INCLUDE_DIRS}
28   ${METIS_INCLUDE_DIRS}
29   ${SCOTCH_INCLUDE_DIRS}
30   ${METIS_INCLUDE_DIRS}
31   ${LIBXML_INCLUDE_DIRS}
32   ${MEDFILE_INCLUDE_DIRS}
33   ${HDF5_INCLUDE_DIRS}
34   ${MPI_INCLUDE_DIRS}
35   ${PTHREADS_INCLUDE_DIRS}
36   ${CMAKE_CURRENT_SOURCE_DIR}/../MEDLoader
37   ${CMAKE_CURRENT_SOURCE_DIR}/../MEDCoupling
38   ${CMAKE_CURRENT_SOURCE_DIR}/../INTERP_KERNEL
39   ${CMAKE_CURRENT_SOURCE_DIR}/../INTERP_KERNEL/Bases
40   ${CMAKE_CURRENT_SOURCE_DIR}/../INTERP_KERNEL/Geometric2D
41   ${CMAKE_CURRENT_SOURCE_DIR}/../INTERP_KERNEL/ExprEval
42   ${CMAKE_CURRENT_SOURCE_DIR}/../INTERP_KERNEL/GaussPoints
43   )
44
45 SET(medpartitionercpp_HEADERS_HXX
46   MEDPARTITIONER_MeshCollection.hxx
47   MEDPARTITIONER_MeshCollectionDriver.hxx
48   MEDPARTITIONER_MeshCollectionMedXmlDriver.hxx
49   MEDPARTITIONER_MeshCollectionMedAsciiDriver.hxx
50   MEDPARTITIONER_ParallelTopology.hxx
51   MEDPARTITIONER_JointFinder.hxx
52   MEDPARTITIONER_Graph.hxx
53   MEDPARTITIONER_UserGraph.hxx
54   MEDPARTITIONER_Utils.hxx
55   MEDPARTITIONER.hxx
56   MEDPARTITIONER_ParaDomainSelector.hxx
57   MEDPARTITIONER_ConnectZone.hxx
58   MEDPARTITIONER_SkyLineArray.hxx
59   MEDPARTITIONER_Topology.hxx
60   )
61
62 SET(medpartitionercpp_SOURCES
63   MEDPARTITIONER_MeshCollection.cxx
64   MEDPARTITIONER_MeshCollectionDriver.cxx
65   MEDPARTITIONER_MeshCollectionMedXmlDriver.cxx
66   MEDPARTITIONER_MeshCollectionMedAsciiDriver.cxx
67   MEDPARTITIONER_ParallelTopology.cxx
68   MEDPARTITIONER_Graph.cxx
69   MEDPARTITIONER_UserGraph.cxx
70   MEDPARTITIONER_Utils.cxx
71   MEDPARTITIONER_ParaDomainSelector.cxx
72   MEDPARTITIONER_ConnectZone.cxx
73   MEDPARTITIONER_SkyLineArray.cxx
74   MEDPARTITIONER_metis.c
75   )
76
77 SET(medpartitionercpp_LDFLAGS
78   ${MEDFILE_C_LIBRARIES}
79   ${HDF5_LIBRARIES}
80   ${STDLIB}
81   ${LIBXML_LIBRARIES}
82   ${MPI_LIBRARIES}
83   interpkernel
84   medcoupling
85   medloader
86 )
87 IF(MED_ENABLE_PARMETIS)
88   SET(medpartitionercpp_HEADERS_HXX ${medpartitionercpp_HEADERS_HXX} MEDPARTITIONER_ParMetisGraph.hxx)
89   SET(medpartitionercpp_SOURCES ${medpartitionercpp_SOURCES} MEDPARTITIONER_ParMetisGraph.cxx)
90   SET(medpartitionercpp_DEFINITIONS "${medpartitionercpp_DEFINITIONS} ${PARMETIS_DEFINITIONS}")
91   SET(medpartitionercpp_LDFLAGS ${medpartitionercpp_LDFLAGS} ${PARMETIS_LIBS})
92 ENDIF(MED_ENABLE_PARMETIS)
93 IF(MED_ENABLE_METIS)
94   SET(medpartitionercpp_HEADERS_HXX ${medpartitionercpp_HEADERS_HXX} MEDPARTITIONER_MetisGraph.hxx)
95   SET(medpartitionercpp_SOURCES ${medpartitionercpp_SOURCES} MEDPARTITIONER_MetisGraph.cxx)
96   SET(medpartitionercpp_DEFINITIONS "${medpartitionercpp_DEFINITIONS} ${METIS_DEFINITIONS}")
97   SET(medpartitionercpp_LDFLAGS ${medpartitionercpp_LDFLAGS} ${METIS_LIBS})
98 ENDIF(MED_ENABLE_METIS)
99 IF(MED_ENABLE_SCOTCH)
100   SET(medpartitionercpp_HEADERS_HXX ${medpartitionercpp_HEADERS_HXX} MEDPARTITIONER_ScotchGraph.hxx)
101   SET(medpartitionercpp_SOURCES ${medpartitionercpp_SOURCES} MEDPARTITIONER_ScotchGraph.cxx)
102   SET(medpartitionercpp_DEFINITIONS "${medpartitionercpp_DEFINITIONS} ${SCOTCH_DEFINITIONS}")
103   SET(medpartitionercpp_LDFLAGS ${medpartitionercpp_LDFLAGS} ${SCOTCH_LIBS})
104 ENDIF(MED_ENABLE_SCOTCH)
105
106 IF(SALOME_USE_MPI)
107   SET(medpartitionercpp_SOURCES ${medpartitionercpp_SOURCES}
108     MEDPARTITIONER_UtilsPara.cxx
109     MEDPARTITIONER_JointFinder.cxx
110   )
111 ENDIF(SALOME_USE_MPI)                     
112   
113 ADD_LIBRARY(medpartitionercpp SHARED ${medpartitionercpp_SOURCES})
114 SET_TARGET_PROPERTIES(medpartitionercpp PROPERTIES COMPILE_FLAGS "${PLATFORM_DEFINITIONS} ${medpartitionercpp_DEFINITIONS}")
115 TARGET_LINK_LIBRARIES(medpartitionercpp ${medpartitionercpp_LDFLAGS} ${PLATFORM_LIBS} ${PTHREAD_LIBS})
116 INSTALL(TARGETS medpartitionercpp DESTINATION ${SALOME_INSTALL_LIBS})
117   
118 IF(MED_ENABLE_PARMETIS)
119   ADD_EXECUTABLE(medpartitioner_para medpartitioner_para.cxx)
120   SET_TARGET_PROPERTIES(medpartitioner_para PROPERTIES COMPILE_FLAGS "${medpartitionercpp_DEFINITIONS}")
121   TARGET_LINK_LIBRARIES(medpartitioner_para medpartitionercpp ${medpartitionercpp_LDFLAGS})
122   INSTALL(TARGETS medpartitioner_para DESTINATION ${SALOME_INSTALL_BINS})
123 ENDIF(MED_ENABLE_PARMETIS)
124
125 ADD_EXECUTABLE(medpartitioner medpartitioner.cxx)
126 SET_TARGET_PROPERTIES(medpartitioner PROPERTIES COMPILE_FLAGS "${PLATFORM_DEFINITIONS} ${medpartitionercpp_DEFINITIONS}")
127 TARGET_LINK_LIBRARIES(medpartitioner medpartitionercpp ${medpartitionercpp_LDFLAGS})
128 INSTALL(TARGETS medpartitioner DESTINATION ${SALOME_INSTALL_BINS})
129
130 INSTALL(FILES ${medpartitionercpp_HEADERS_HXX} DESTINATION ${SALOME_INSTALL_HEADERS})