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