f5039fe81cf6d7c9bf5ae13e63cd056c43b2530d
[ppam-mpi.git] / code / src / CMakeLists.txt
1 cmake_minimum_required(VERSION 2.8.5)
2 project(ppam_mpi)
3
4 include("${CMAKE_SOURCE_DIR}/../shared_CMakeLists.txt")
5
6 #ppam executable (serialize, cluster, classif)
7
8 #cds
9 find_path(CDS_INCLUDE_PATH "cds/cds.h")
10 find_library(CDS_LIBRARY cds)
11 include_directories(${CDS_INCLUDE_PATH})
12
13 #GSL: standard location
14 find_path(GSL_INCLUDE_PATH "gsl/gsl_linalg.h")
15 include_directories(${GSL_INCLUDE_PATH})
16 find_library(GSL_LIBRARY gsl)
17 find_library(GSLCBLAS_LIBRARY gslcblas)
18 set(GSL_LIBRARIES ${GSL_LIBRARY} ${GSLCBLAS_LIBRARY})
19
20 #MPI: standard location
21 find_package(MPI REQUIRED)
22 include_directories(${MPI_INCLUDE_PATH})
23
24 #LibXml2: standard location
25 find_package(LibXml2 REQUIRED)
26 include_directories(${LIBXML2_INCLUDE_DIR})
27
28 file(GLOB_RECURSE ppam_src "${CMAKE_SOURCE_DIR}/*.c")
29 add_executable(ppam.exe ${ppam_src})
30 add_library(ppam SHARED ${ppam_src})
31 target_link_libraries(ppam.exe m cds ${MPI_LIBRARIES} ${LIBXML2_LIBRARIES} ${GSL_LIBRARIES} ${CDS_LIBRARY})
32 target_link_libraries(ppam m cds ${MPI_LIBRARIES} ${LIBXML2_LIBRARIES} ${GSL_LIBRARIES} ${CDS_LIBRARY})
33
34 if (MPI_COMPILE_FLAGS)
35 set_target_properties(ppam.exe PROPERTIES
36 COMPILE_FLAGS "${MPI_COMPILE_FLAGS}")
37 endif()
38 if (MPI_LINK_FLAGS)
39 set_target_properties(ppam.exe PROPERTIES
40 LINK_FLAGS "${MPI_LINK_FLAGS}")
41 endif()