~pragmatic-core/pragmatic/pragmatic2d-2.0

399 by Gerard Gorman
First instillation of CMake support.
1
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.5)
2
PROJECT(PRAgMaTIc)
3
4
# The version number.
5
set (PRAgMaTIc_VERSION_MAJOR 0)
6
set (PRAgMaTIc_VERSION_MINOR 9)
7
8
set (CMAKE_MODULE_PATH CMake/Modules ${CMAKE_MODULE_PATH})
9
400 by Gerard Gorman
Enabled Fortran support.
10
enable_language(CXX)
11
enable_language(C)
12
enable_language(Fortran)
13
399 by Gerard Gorman
First instillation of CMake support.
14
set (PRAGMATIC_LIBRARIES)
15
FIND_PACKAGE(VTK)
16
if(VTK_FOUND)
17
  add_definitions(-DHAVE_VTK)
18
  include(${VTK_USE_FILE})
19
  set (PRAGMATIC_LIBRARIES vtkIO vtkGraphics vtkFiltering vtkCommon vtksys ${PRAGMATIC_LIBRARIES})
20
endif()
21
22
FIND_PACKAGE(MPI)
23
if(MPI_FOUND)
24
  add_definitions(-DHAVE_MPI)
25
  include_directories(${MPI_CXX_INCLUDE_PATH} ${MPI_C_INCLUDE_PATH} ${MPI_Fortran_INCLUDE_PATH})
26
27
  set (CMAKE_CXX_FLAGS ${MPI_CXX_COMPILE_FLAGS} ${CMAKE_CXX_FLAGS})
28
  set (CMAKE_C_FLAGS ${MPI_C_COMPILE_FLAGS} ${CMAKE_C_FLAGS})
29
  set (CMAKE_Fortran_FLAGS ${MPI_Fortran_COMPILE_FLAGS} ${CMAKE_Fortran_FLAGS})
30
  set (CMAKE_LINK_FLAGS ${MPI_C_LINK_FLAGS} ${CMAKE_LINK_FLAGS})
31
  set (PRAGMATIC_LIBRARIES ${MPI_CXX_LIBRARIES} ${MPI_C_LIBRARIES} ${MPI_Fortran_LIBRARIES} ${PRAGMATIC_LIBRARIES})
32
  set (CMAKE_CXX_COMPILER ${MPI_CXX_COMPILER})
33
endif()
34
35
FIND_PACKAGE(OpenMP)
36
if(OpenMP_FOUND)
37
  add_definitions(-DHAVE_OPENMP)
38
  set (CMAKE_CXX_FLAGS OpenMP_CXX_FLAGS ${CMAKE_CXX_FLAGS})
39
  set (CMAKE_C_FLAGS OpenMP_C_FLAGS ${CMAKE_C_FLAGS})
40
  set (CMAKE_FORTRAN_FLAGS OpenMP_C_FLAGS ${CMAKE_FORTRAN_FLAGS})
41
endif()
42
43
FIND_PACKAGE(Metis)
44
if(METIS_FOUND)
45
  include_directories(${METIS_INCLUDE_DIR})
46
  set (PRAGMATIC_LIBRARIES ${METIS_LIBRARIES} ${PRAGMATIC_LIBRARIES})
47
endif()
48
49
FIND_PACKAGE(Numa)
50
if(NUMA_FOUND)
51
  include_directories(${NUMA_INCLUDE_DIR})
52
  set (PRAGMATIC_LIBRARIES ${NUMA_LIBRARIES} ${PRAGMATIC_LIBRARIES})
53
endif()
54
55
include_directories(include)
56
57
# ADD_EXECUTABLE( ${PROJECT_NAME} main.cpp )
58
# TARGET_LINK_LIBRARIES( ${PROJECT_NAME} ${PRAgMaTIc_LIBS} )
59
# ADD_CUSTOM_COMMAND(TARGET ${PROJECT_NAME} POST_BUILD COMMAND cp ${PROJECT_NAME} ${PROJECT_NAME}.o )
60
file(GLOB C_SOURCES src/*.c)
61
file(GLOB CXX_SOURCES src/*.cpp)
62
file(GLOB FC_SOURCES src/*.F90)
63
64
# target_link_library
65
add_library(pragmatic ${C_SOURCES} ${CXX_SOURCES} ${FC_SOURCES})
66
67
add_subdirectory(tests EXCLUDE_FROM_ALL)