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