Guest User

Untitled

a guest
Aug 1st, 2017
341
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
CMake 2.26 KB | None | 0 0
  1. cmake_minimum_required (VERSION 3.1)
  2. project(preCICE LANGUAGES CXX)
  3.  
  4. if (NOT CMAKE_BUILD_TYPE)
  5.   set(CMAKE_BUILD_TYPE Debug)
  6. endif()
  7. message(STATUS "Build configuration: " ${CMAKE_BUILD_TYPE})
  8.  
  9. set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR/CMake})
  10.  
  11. set(CMAKE_CXX_STANDARD 11)
  12. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  13. set(CMAKE_CXX_EXTENSIONS OFF)
  14.  
  15.  
  16. if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
  17.   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
  18. endif()
  19.  
  20.  
  21. option(PETSC "Enable use of the PETSc linear algebra library." ON)
  22. if (PETSC)
  23.   find_library(petsc petsc
  24.     PATHS $ENV{PETSC_DIR}/$ENV{PETSC_ARCH}/lib)
  25.   if(NOT petsc)
  26.     message(FATAL_ERROR "PETSc was not found")
  27.   else()
  28.     message(STATUS "Using PETSc: $ENV{PETSC_ARCH}")
  29.   endif()
  30. endif()
  31.  
  32.  
  33. find_package (Threads REQUIRED)
  34.  
  35. find_package(Boost 1.60.0
  36.   REQUIRED
  37.   COMPONENTS log log_setup program_options system thread unit_test_framework)
  38. add_definitions(-DBOOST_SPIRIT_USE_PHOENIX_V3 -DBOOST_ALL_DYN_LINK)
  39.  
  40. option(MPI "Enables MPI-based communication and running coupling tests." ON)
  41. if (MPI)
  42.   find_package(MPI REQUIRED)
  43.   include_directories(${MPI_INCLUDE_PATH})
  44.   set(COMPILE_FLAGS  ${COMPILE_FLAGS} ${MPI_COMPILE_FLAGS})
  45.   set(LINK_FLAGS ${LINK_FLAGS} ${MPI_LINK_FLAGS})
  46. endif()
  47.  
  48. find_package(Eigen3 REQUIRED)
  49. include_directories(${EIGEN3_INCLUDE_DIR})
  50.  
  51. option(PYTHON "Python support" ON)
  52. if (PYTHON)
  53.   set(Python_ADDITIONAL_VERSIONS "2.7")
  54.   find_package(PythonLibs 2.7 REQUIRED)
  55.   include_directories(${PYTHON_INCLUDE_DIRS})
  56.   add_definitions(-DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION)
  57. else()
  58.   add_definitions(-DPRECICE_NO_PYTHON)
  59. endif()
  60.  
  61.  
  62. add_subdirectory("src")
  63.  
  64. add_library(precice ${sourcesAllNoMain})
  65. target_link_libraries(precice ${PYTHON_LIBRARIES})
  66. target_link_libraries(precice ${MPI_LIBRARIES})
  67. target_link_libraries(precice ${Boost_LIBRARIES})
  68. target_link_libraries(precice ${petsc})
  69.  
  70. add_executable(binprecice
  71.   "src/drivers/main.cpp" ${sourcesTarchTests})
  72. target_link_libraries(binprecice Threads::Threads)
  73. target_link_libraries(binprecice precice)
  74.  
  75. add_executable(testprecice
  76.   "src/testing/main.cpp" ${sourcesTests})
  77. target_link_libraries(testprecice Threads::Threads)
  78. target_link_libraries(testprecice precice)
Advertisement
Add Comment
Please, Sign In to add comment