diff --git a/examples/helmholtz/checkerboard_bcgs/CMakeLists.txt b/examples/helmholtz/checkerboard_bcgs/CMakeLists.txt index c368ce59f63aed4e569c1b3e727df6dd0b1d6a45..93e63bab9656fc6f30083e44df4fbb07266fe3aa 100644 --- a/examples/helmholtz/checkerboard_bcgs/CMakeLists.txt +++ b/examples/helmholtz/checkerboard_bcgs/CMakeLists.txt @@ -1,8 +1,8 @@ cmake_minimum_required(VERSION 3.0 FATAL_ERROR) -project(demo CXX) +project(example CXX) include(${CMAKE_CURRENT_SOURCE_DIR}/../../example.cmake) -add_executable(demo main.cpp ${EXTRA_INCS}) -target_link_libraries(demo ${EXTRA_LIBS}) +add_executable(example main.cpp ${EXTRA_INCS}) +target_link_libraries(example ${EXTRA_LIBS}) diff --git a/examples/helmholtz/crossPoints/CMakeLists.txt b/examples/helmholtz/crossPoints/CMakeLists.txt index 2a2ccf9a85fe35e93aef5ac322cedae2ce9436cc..3d827fe511079d654177d16746c17ceb67b9e2dc 100644 --- a/examples/helmholtz/crossPoints/CMakeLists.txt +++ b/examples/helmholtz/crossPoints/CMakeLists.txt @@ -1,231 +1,9 @@ cmake_minimum_required(VERSION 3.0 FATAL_ERROR) -project(demo CXX) +project(example CXX) -include(CheckCXXCompilerFlag) -check_cxx_compiler_flag("-std=c++11" HAVE_CXX11) -if(HAVE_CXX11) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -else() - message(ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.") -endif() +include(${CMAKE_CURRENT_SOURCE_DIR}/../../example.cmake) -check_cxx_compiler_flag("-Wall" HAVE_WALL) -if(HAVE_WALL) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") -endif() - -macro(find_all_libraries VARNAME LISTNAME PATH SUFFIX) - set(${VARNAME}) - list(LENGTH ${LISTNAME} NUM_LIST) - foreach(LIB ${${LISTNAME}}) - if("${PATH}" STREQUAL "") - find_library(FOUND_LIB ${LIB} PATH_SUFFIXES ${SUFFIX}) - else() - find_library(FOUND_LIB ${LIB} PATHS ${PATH} NO_DEFAULT_PATH) - endif() - if(FOUND_LIB) - list(APPEND ${VARNAME} ${FOUND_LIB}) - endif() - unset(FOUND_LIB CACHE) - endforeach() - list(LENGTH ${VARNAME} NUM_FOUND_LIBRARIES) - if(NUM_FOUND_LIBRARIES LESS NUM_LIST) - set(${VARNAME}) - endif() -endmacro() - - -macro(set_config_option STRING VARNAME) - set(${VARNAME} TRUE) - list(APPEND CONFIG_OPTIONS ${STRING}) - message(STATUS "Found " ${STRING}) -endmacro() - -macro(opt OPTION HELP VALUE) - option(ENABLE_${OPTION} ${HELP} ${VALUE}) - set(OPT_TEXI "${OPT_TEXI}\n@item ENABLE_${OPTION}\n${HELP} (default: ${VALUE})") -endmacro() - -opt(MPI "Enable MPI" OFF) - -#### -# Mandatory libs -#### - -# Gmsh (Mandatory) - -find_library(GMSH_LIB gmsh) -if(NOT GMSH_LIB) - message(FATAL_ERROR "Could not find libgmsh") -endif(NOT GMSH_LIB) - -find_path(GMSH_INC gmsh.h) -if(NOT GMSH_INC) - message(FATAL_ERROR "Could not find gmsh.h") -endif(NOT GMSH_INC) - -list(APPEND EXTRA_INCS ${GMSH_INC}) -list(APPEND EXTRA_LIBS ${GMSH_LIB}) - -# GmshFem - -find_library(GMSHFEM_LIB gmshfem) -if(NOT GMSHFEM_LIB) - message(FATAL_ERROR "Could not find libgmshfem") -endif(NOT GMSHFEM_LIB) - -find_path(GMSHFEM_INC gmshfem/GmshFem.h) -if(NOT GMSHFEM_INC) - message(FATAL_ERROR "Could not find 'gmshfem/GmshFem.h'") -endif(NOT GMSHFEM_INC) - -list(APPEND EXTRA_LIBS ${GMSHFEM_LIB}) -list(APPEND EXTRA_INCS ${GMSHFEM_INC}/gmshfem/contrib) -list(APPEND EXTRA_INCS ${GMSHFEM_INC}) - -# GmshDdm - -find_library(GMSHDDM_LIB gmshddm) -if(NOT GMSHDDM_LIB) - message(FATAL_ERROR "Could not find libgmshddm") -endif(NOT GMSHDDM_LIB) - -find_path(GMSHDDM_INC gmshddm/GmshDdm.h) -if(NOT GMSHDDM_INC) - message(FATAL_ERROR "Could not find 'gmshddm/GmshDdm.h'") -endif(NOT GMSHDDM_INC) - -list(APPEND EXTRA_LIBS ${GMSHDDM_LIB}) -list(APPEND EXTRA_INCS ${GMSHDDM_INC}) - -# Eigen - -find_package(Eigen3 REQUIRED) -list(APPEND EXTRA_INCS "${EIGEN3_INCLUDE_DIR}") - -# OpenMP - -find_package(OpenMP) -if(OPENMP_FOUND) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") -endif(OPENMP_FOUND) - -if(APPLE AND EXISTS "/usr/local/opt/libomp") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Xpreprocessor -fopenmp -I/usr/local/opt/libomp/include") - list(APPEND EXTRA_LIBS "-L/usr/local/opt/libomp/lib -lomp") -endif() - -# MPI - -if(ENABLE_MPI) - find_package(MPI) - if(MPI_FOUND) - list(APPEND EXTRA_INCS ${MPI_CXX_INCLUDE_PATH}) - list(APPEND EXTRA_LIBS ${MPI_CXX_LIBRARIES}) - set(CMAKE_C_COMPILER ${MPI_C_COMPILER}) - set(CMAKE_CXX_COMPILER ${MPI_CXX_COMPILER}) - set(CMAKE_Fortran_COMPILER ${MPI_Fortran_COMPILER}) - set_config_option("MPI" HAVE_MPI) - endif() -endif() - -# PETSc - -if(PETSC_DIR) -set(ENV_PETSC_DIR ${PETSC_DIR}) -else() - set(ENV_PETSC_DIR $ENV{PETSC_DIR}) -endif() - -if(PETSC_ARCH) - set(ENV_PETSC_ARCH ${PETSC_ARCH}) -else() - set(ENV_PETSC_ARCH $ENV{PETSC_ARCH}) -endif() - -set(PETSC_POSSIBLE_CONF_FILES - ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/conf/petscvariables - ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/lib/petsc-conf/petscvariables - ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/lib/petsc/conf/petscvariables) - -foreach(FILE ${PETSC_POSSIBLE_CONF_FILES}) - if(EXISTS ${FILE}) - # old-style PETSc installations (using PETSC_DIR and PETSC_ARCH) - message(STATUS "Using PETSc dir: ${ENV_PETSC_DIR}") - message(STATUS "Using PETSc arch: ${ENV_PETSC_ARCH}") - # find includes by parsing the petscvariables file - file(STRINGS ${FILE} PETSC_VARIABLES NEWLINE_CONSUME) - endif() -endforeach() - -if(PETSC_VARIABLES) - # try to find PETSC_CC_INCLUDES for PETSc >= 3.4 - string(REGEX MATCH "PETSC_CC_INCLUDES = [^\n\r]*" PETSC_PACKAGES_INCLUDES ${PETSC_VARIABLES}) - if(PETSC_PACKAGES_INCLUDES) - string(REPLACE "PETSC_CC_INCLUDES = " "" PETSC_PACKAGES_INCLUDES ${PETSC_PACKAGES_INCLUDES}) - else() - # try to find PETSC_PACKAGES_INCLUDES in older versions - list(APPEND EXTRA_INCS ${ENV_PETSC_DIR}/include) - list(APPEND EXTRA_INCS ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/include) - string(REGEX MATCH "PACKAGES_INCLUDES = [^\n\r]*" PETSC_PACKAGES_INCLUDES ${PETSC_VARIABLES}) - string(REPLACE "PACKAGES_INCLUDES = " "" PETSC_PACKAGES_INCLUDES ${PETSC_PACKAGES_INCLUDES}) - endif() - - if(PETSC_PACKAGES_INCLUDES) - if(PETSC_PACKAGES_INCLUDES) - string(REPLACE "-I" "" PETSC_PACKAGES_INCLUDES ${PETSC_PACKAGES_INCLUDES}) - string(REPLACE " " ";" PETSC_PACKAGES_INCLUDES ${PETSC_PACKAGES_INCLUDES}) - foreach(VAR ${PETSC_PACKAGES_INCLUDES}) - list(APPEND EXTRA_INCS ${VAR}) - endforeach() - endif() - endif() - - # find libraries (<= 3.0) - set(PETSC_LIBS_REQUIRED petscksp petscdm petscmat petscvec petsc) - find_all_libraries(PETSC_LIBS PETSC_LIBS_REQUIRED ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/lib "") - # petsc 3.1 creates only one library (libpetsc) - if(NOT PETSC_LIBS) - find_library(PETSC_LIBS petsc PATHS ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/lib NO_DEFAULT_PATH) - endif() - - list(APPEND EXTRA_LIBS ${PETSC_LIBS}) - - string(REGEX MATCH "PACKAGES_LIBS = [^\n\r]*" PLIBS ${PETSC_VARIABLES}) - if(PLIBS) - string(REPLACE "PACKAGES_LIBS = " "" PLIBS ${PLIBS}) - string(STRIP ${PLIBS} PLIBS) - list(APPEND EXTRA_LIBS "${PLIBS}") - endif() - - string(REGEX MATCH "PETSC_EXTERNAL_LIB_BASIC = [^\n\r]*" PLIBS_BASIC ${PETSC_VARIABLES}) - if(PLIBS_BASIC) - string(REPLACE "PETSC_EXTERNAL_LIB_BASIC = " "" PLIBS_BASIC ${PLIBS_BASIC}) - string(STRIP ${PLIBS_BASIC} PLIBS_BASIC) - list(APPEND EXTRA_LIBS "${PLIBS_BASIC}") - endif() - - string(REGEX MATCH "PCC_LINKER_LIBS = [^\n\r]*" LLIBS ${PETSC_VARIABLES}) - if(LLIBS) - string(REPLACE "PCC_LINKER_LIBS = " "" LLIBS ${LLIBS}) - string(STRIP ${LLIBS} LLIBS) - list(APPEND EXTRA_LIBS "${LLIBS}") - endif() - - set_config_option("PETSc" HAVE_PETSC) - list(APPEND EXTRA_LIBS ${PETSC_LIBS}) -else() - find_library(PETSC_LIBS petsc) - find_path(PETSC_INC "petsc.h" PATH_SUFFIXES include/petsc) - if(PETSC_LIBS AND PETSC_INC) - set_config_option("PETSc" HAVE_PETSC) - list(APPEND EXTRA_LIBS ${PETSC_LIBS}) - list(APPEND EXTRA_INCS ${PETSC_INC}) - endif() -endif() - -include_directories(${EXTRA_INCS}) -add_executable(demo main.cpp mesh.cpp ddm2D.cpp ddm3D.cpp Subproblem2D.cpp Subproblem3D.cpp SubproblemDomains.cpp SubproblemParameters.cpp monoDomain.cpp ${EXTRA_INCS}) -target_link_libraries(demo ${EXTRA_LIBS}) +add_executable(example main.cpp mesh.cpp ddm2D.cpp ddm3D.cpp Subproblem2D.cpp Subproblem3D.cpp SubproblemDomains.cpp SubproblemParameters.cpp monoDomain.cpp ${EXTRA_INCS}) +target_link_libraries(example ${EXTRA_LIBS}) diff --git a/examples/helmholtz/scattering/planeWaveDisk/CMakeLists.txt b/examples/helmholtz/scattering/planeWaveDisk/CMakeLists.txt index 78dcc127355d6e26101a160e271312b86d9565ab..6f8caaab62b9209c4cd7f98d220eaa43d6841dbe 100644 --- a/examples/helmholtz/scattering/planeWaveDisk/CMakeLists.txt +++ b/examples/helmholtz/scattering/planeWaveDisk/CMakeLists.txt @@ -1,8 +1,8 @@ cmake_minimum_required(VERSION 3.0 FATAL_ERROR) -project(demo CXX) +project(example CXX) include(${CMAKE_CURRENT_SOURCE_DIR}/../../../example.cmake) -add_executable(demo main.cpp ${EXTRA_INCS}) -target_link_libraries(demo ${EXTRA_LIBS}) +add_executable(example main.cpp ${EXTRA_INCS}) +target_link_libraries(example ${EXTRA_LIBS}) diff --git a/examples/helmholtzflow/freefield/CMakeLists.txt b/examples/helmholtzflow/freefield/CMakeLists.txt index c368ce59f63aed4e569c1b3e727df6dd0b1d6a45..93e63bab9656fc6f30083e44df4fbb07266fe3aa 100644 --- a/examples/helmholtzflow/freefield/CMakeLists.txt +++ b/examples/helmholtzflow/freefield/CMakeLists.txt @@ -1,8 +1,8 @@ cmake_minimum_required(VERSION 3.0 FATAL_ERROR) -project(demo CXX) +project(example CXX) include(${CMAKE_CURRENT_SOURCE_DIR}/../../example.cmake) -add_executable(demo main.cpp ${EXTRA_INCS}) -target_link_libraries(demo ${EXTRA_LIBS}) +add_executable(example main.cpp ${EXTRA_INCS}) +target_link_libraries(example ${EXTRA_LIBS}) diff --git a/examples/helmholtzflow/waveguide/CMakeLists.txt b/examples/helmholtzflow/waveguide/CMakeLists.txt index c368ce59f63aed4e569c1b3e727df6dd0b1d6a45..93e63bab9656fc6f30083e44df4fbb07266fe3aa 100644 --- a/examples/helmholtzflow/waveguide/CMakeLists.txt +++ b/examples/helmholtzflow/waveguide/CMakeLists.txt @@ -1,8 +1,8 @@ cmake_minimum_required(VERSION 3.0 FATAL_ERROR) -project(demo CXX) +project(example CXX) include(${CMAKE_CURRENT_SOURCE_DIR}/../../example.cmake) -add_executable(demo main.cpp ${EXTRA_INCS}) -target_link_libraries(demo ${EXTRA_LIBS}) +add_executable(example main.cpp ${EXTRA_INCS}) +target_link_libraries(example ${EXTRA_LIBS}) diff --git a/examples/maxwell/CMakeLists.txt b/examples/maxwell/CMakeLists.txt index 14a0aa41dcb8ea385d1342e3e16ff57ca12f1ea2..acb5bc916f9d3d959e70fae1dbfe4bd8f7c54270 100644 --- a/examples/maxwell/CMakeLists.txt +++ b/examples/maxwell/CMakeLists.txt @@ -1,8 +1,8 @@ cmake_minimum_required(VERSION 3.0 FATAL_ERROR) -project(demo CXX) +project(example CXX) include(${CMAKE_CURRENT_SOURCE_DIR}/../example.cmake) -add_executable(demo main.cpp ${EXTRA_INCS}) -target_link_libraries(demo ${EXTRA_LIBS}) +add_executable(example main.cpp ${EXTRA_INCS}) +target_link_libraries(example ${EXTRA_LIBS}) diff --git a/examples/navier/scattering/CMakeLists.txt b/examples/navier/scattering/CMakeLists.txt index c368ce59f63aed4e569c1b3e727df6dd0b1d6a45..93e63bab9656fc6f30083e44df4fbb07266fe3aa 100755 --- a/examples/navier/scattering/CMakeLists.txt +++ b/examples/navier/scattering/CMakeLists.txt @@ -1,8 +1,8 @@ cmake_minimum_required(VERSION 3.0 FATAL_ERROR) -project(demo CXX) +project(example CXX) include(${CMAKE_CURRENT_SOURCE_DIR}/../../example.cmake) -add_executable(demo main.cpp ${EXTRA_INCS}) -target_link_libraries(demo ${EXTRA_LIBS}) +add_executable(example main.cpp ${EXTRA_INCS}) +target_link_libraries(example ${EXTRA_LIBS})