diff --git a/CMakeLists.txt b/CMakeLists.txt index d260b4d..333bdc9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,123 +1,124 @@ cmake_minimum_required (VERSION 2.8.8) #cmake_policy(SET CMP0053 NEW) project(bsplines_root Fortran C) #enable_language(Fortran) enable_testing() option(BSPLINES_USE_MUMPS "Activate the mumps interface" ON) option(BSPLINES_USE_LAPACK "Activate the lapack interface" ON) option(BSPLINES_USE_PETSC "Activate the petsc interface" ON) option(BSPLINES_USE_FFT "Activate the fft interface" OFF) option(BSPLINES_USE_SCALAPACK "Activate the scalapack interface" ON) if(NOT DEFINED BSPLINES_EXAMPLES) option(BSPLINES_EXAMPLES "Compiles the examples" ON) endif() +option(BSPLINES_USE_FFT "Activate the fft interface" OFF) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake") if(POLICY CMP0074) cmake_policy(SET CMP0074 NEW) endif() include(CMakeFlagsHandling) # Compiler flags for debug/optimization if(${CMAKE_Fortran_COMPILER_ID} MATCHES "Intel") set(CMAKE_AR ${XIAR}) add_flags(LANG Fortran TYPE DEBUG -traceback "-check bounds" "-warn unused") add_flags(LANG Fortran TYPE RELEASE -xHost) elseif(${CMAKE_Fortran_COMPILER_ID} MATCHES "GNU") add_flags(LANG Fortran TYPE DEBUG -fbounds-check -fbacktrace) endif() # Installation root directory if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) set(PREFIX $ENV{PREFIX}) if(PREFIX) set(${CMAKE_INSTALL_PREFIX} ${PREFIX}) else() set(CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_SOURCE_DIR} CACHE PATH "..." FORCE) endif() message(STATUS "CMAKE_INSTALL_PREFIX is " ${CMAKE_INSTALL_PREFIX}) endif() # Search and load the FUTILS configuration file if(NOT TARGET futils) find_package(futils PATHS ${FUTILS}/lib/cmake REQUIRED) endif() if(BSPLINES_USE_MUMPS) find_package(Mumps REQUIRED) set(HAS_MUMPS ${MUMPS_FOUND}) else() set(HAS_MUMPS FALSE) endif() if(BSPLINES_USE_PETSC) find_package(PETSc REQUIRED) set(HAS_PETSC ${PETSC_FOUND}) else() set(HAS_PETSC FALSE) endif() # Find lapack/blas. Skip it if on CRAY! if(CRAY) set(BSPLINES_USE_PARDISO OFF) endif() include(blas) if(NOT BSPLINES_EXPORT_TARGETS) set(BSPLINES_EXPORT_TARGETS bsplines-targets) endif() find_package(MPI COMPONENTS Fortran REQUIRED) include(GNUInstallDirs) if(BSPLINES_USE_FFT) set(FFT_EXAMPLES ${BSPLINES_EXAMPLES}) add_subdirectory(fft) endif() add_subdirectory(pppack) add_subdirectory(pputils2) add_subdirectory(src) if(HAS_MUMPS AND BSPLINES_EXAMPLES) add_subdirectory(multigrid) endif() if(BSPLINES_EXAMPLES) add_subdirectory(examples) add_subdirectory(wk) endif() export(TARGETS pppack pputils2 bsplines FILE "${CMAKE_BINARY_DIR}/bsplinesLibraryDepends.cmake") if(BSPLINES_USE_FFT) export(APPEND TARGETS fft FILE "${CMAKE_BINARY_DIR}/bsplinesLibraryDepends.cmake") endif() export(PACKAGE bsplines) # install configuration files if(BSPLINES_EXPORT_TARGETS MATCHES "bsplines-targets") install(EXPORT bsplines-targets DESTINATION lib/cmake ) configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/bsplines-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/cmake/bsplines-config.cmake @ONLY ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cmake/bsplines-config.cmake DESTINATION lib/cmake ) endif() # enable packaging with CPack include(CPack)