Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cmake_minimum_required (VERSION 3.1)
- project(preCICE LANGUAGES CXX)
- if (NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE Debug)
- endif()
- message(STATUS "Build configuration: " ${CMAKE_BUILD_TYPE})
- set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR/CMake})
- set(CMAKE_CXX_STANDARD 11)
- set(CMAKE_CXX_STANDARD_REQUIRED ON)
- set(CMAKE_CXX_EXTENSIONS OFF)
- if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
- endif()
- option(PETSC "Enable use of the PETSc linear algebra library." ON)
- if (PETSC)
- find_library(petsc petsc
- PATHS $ENV{PETSC_DIR}/$ENV{PETSC_ARCH}/lib)
- if(NOT petsc)
- message(FATAL_ERROR "PETSc was not found")
- else()
- message(STATUS "Using PETSc: $ENV{PETSC_ARCH}")
- endif()
- endif()
- find_package (Threads REQUIRED)
- find_package(Boost 1.60.0
- REQUIRED
- COMPONENTS log log_setup program_options system thread unit_test_framework)
- add_definitions(-DBOOST_SPIRIT_USE_PHOENIX_V3 -DBOOST_ALL_DYN_LINK)
- option(MPI "Enables MPI-based communication and running coupling tests." ON)
- if (MPI)
- find_package(MPI REQUIRED)
- include_directories(${MPI_INCLUDE_PATH})
- set(COMPILE_FLAGS ${COMPILE_FLAGS} ${MPI_COMPILE_FLAGS})
- set(LINK_FLAGS ${LINK_FLAGS} ${MPI_LINK_FLAGS})
- endif()
- find_package(Eigen3 REQUIRED)
- include_directories(${EIGEN3_INCLUDE_DIR})
- option(PYTHON "Python support" ON)
- if (PYTHON)
- set(Python_ADDITIONAL_VERSIONS "2.7")
- find_package(PythonLibs 2.7 REQUIRED)
- include_directories(${PYTHON_INCLUDE_DIRS})
- add_definitions(-DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION)
- else()
- add_definitions(-DPRECICE_NO_PYTHON)
- endif()
- add_subdirectory("src")
- add_library(precice ${sourcesAllNoMain})
- target_link_libraries(precice ${PYTHON_LIBRARIES})
- target_link_libraries(precice ${MPI_LIBRARIES})
- target_link_libraries(precice ${Boost_LIBRARIES})
- target_link_libraries(precice ${petsc})
- add_executable(binprecice
- "src/drivers/main.cpp" ${sourcesTarchTests})
- target_link_libraries(binprecice Threads::Threads)
- target_link_libraries(binprecice precice)
- add_executable(testprecice
- "src/testing/main.cpp" ${sourcesTests})
- target_link_libraries(testprecice Threads::Threads)
- target_link_libraries(testprecice precice)
Advertisement
Add Comment
Please, Sign In to add comment