From 3bf1d1bddca609be31350a69600aee69c1082145 Mon Sep 17 00:00:00 2001 From: akva Date: Tue, 7 Aug 2012 11:57:35 +0000 Subject: [PATCH] Added: Build system support for forcing the SuperLU version to use Use -DIFEM_USE_SUPERLU_MT to build with multi-threaded version Fixed: Some missing FIND_PACKAGE statements in FindIFEMDeps.cmake git-svn-id: http://svn.sintef.no/trondheim/IFEM/trunk@1843 e10b68d5-8a6e-419e-a041-bce267b0401d --- cmake/Modules/FindIFEMDeps.cmake | 22 +++++++++++++--------- cmake/Modules/FindSuperLU.cmake | 14 ++++++-------- cmake/Modules/IFEMOptions.cmake | 8 ++++---- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/cmake/Modules/FindIFEMDeps.cmake b/cmake/Modules/FindIFEMDeps.cmake index ff2e70db..7ced6514 100644 --- a/cmake/Modules/FindIFEMDeps.cmake +++ b/cmake/Modules/FindIFEMDeps.cmake @@ -6,7 +6,7 @@ IF(CMAKE_Fortran_COMPILER MATCHES ifort) SET(IFEM_DEPLIBS ${IFEM_DEPLIBS} -lifcore) ENDIF(CMAKE_Fortran_COMPILER MATCHES ifort) -# And c++ code +# And C++ code ENABLE_LANGUAGE(CXX) IF(CMAKE_CXX_COMPILER MATCHES icpc) SET(IFEM_CXX_FLAGS "${IFEM_CXX_FLAGS} -DUSE_MKL -mkl=sequential") @@ -59,19 +59,19 @@ IF(TINYXML_INCLUDE_DIR AND TINYXML_LIBRARIES) ENDIF(TINYXML_INCLUDE_DIR AND TINYXML_LIBRARIES) # SuperLU -IF(IFEM_USE_SUPERLU) +IF(IFEM_USE_SUPERLU OR IFEM_USE_SUPERLU_MT) FIND_PACKAGE(SuperLU) IF(SuperLU_MT_LIBRARIES AND SuperLU_MT_INCLUDES AND IFEM_USE_SUPERLU_MT) FIND_PACKAGE(Threads REQUIRED) SET(IFEM_DEPLIBS ${IFEM_DEPLIBS} ${SuperLU_MT_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) SET(IFEM_DEPINCLUDES ${IFEM_DEPINCLUDES} ${SuperLU_MT_INCLUDES}) SET(IFEM_BUILD_CXX_FLAGS "${IFEM_BUILD_CXX_FLAGS} -DHAS_SUPERLU_MT") - ELSEIF(SuperLU_LIBRARIES AND SuperLU_INCLUDES AND IFEM_USE_SUPERLU_MT) + ELSEIF(SuperLU_LIBRARIES AND SuperLU_INCLUDES) SET(IFEM_DEPLIBS ${IFEM_DEPLIBS} ${SuperLU_LIBRARIES}) SET(IFEM_DEPINCLUDES ${IFEM_DEPINCLUDES} ${SuperLU_INCLUDES}) SET(IFEM_BUILD_CXX_FLAGS "${IFEM_BUILD_CXX_FLAGS} -DHAS_SUPERLU") ENDIF(SuperLU_MT_LIBRARIES AND SuperLU_MT_INCLUDES AND IFEM_USE_SUPERLU_MT) -ENDIF(IFEM_USE_SUPERLU) +ENDIF(IFEM_USE_SUPERLU OR IFEM_USE_SUPERLU_MT) # LR splines IF(IFEM_USE_LRSPLINES) @@ -114,6 +114,7 @@ ENDIF(IFEM_USE_PETSC) # SPR IF(IFEM_USE_SPR) + FIND_PACKAGE(SPR) IF(SPR_LIBRARIES) SET(IFEM_DEPLIBS ${IFEM_DEPLIBS} ${SPR_LIBRARIES}) SET(IFEM_BUILD_CXX_FLAGS "${IFEM_BUILD_CXX_FLAGS} -DHAS_SPR -DUSE_F77SAM") @@ -121,11 +122,14 @@ IF(IFEM_USE_SPR) ENDIF(IFEM_USE_SPR) # SAMG -IF(SAMG_LIBRARIES AND SAMG_INCLUDES) - SET(IFEM_DEPLIBS ${IFEM_DEPLIBS} ${SAMG_LIBRARIES}) - SET(IFEM_DEPINCLUDES ${IFEM_DEPINCLUDES} ${SAMG_INCLUDES}) - SET(IFEM_BUILD_CXX_FLAGS "${IFEM_BUILD_CXX_FLAGS} -DHAS_SAMG -DSAMG_UNIX_LINUX=1 -DSAMG_LCASE_USCORE") -ENDIF(SAMG_LIBRARIES AND SAMG_INCLUDES) +IF(IFEM_USE_SAMG) + FIND_PACKAGE(SAMG) + IF(SAMG_LIBRARIES AND SAMG_INCLUDES) + SET(IFEM_DEPLIBS ${IFEM_DEPLIBS} ${SAMG_LIBRARIES}) + SET(IFEM_DEPINCLUDES ${IFEM_DEPINCLUDES} ${SAMG_INCLUDES}) + SET(IFEM_BUILD_CXX_FLAGS "${IFEM_BUILD_CXX_FLAGS} -DHAS_SAMG -DSAMG_UNIX_LINUX=1 -DSAMG_LCASE_USCORE") + ENDIF(SAMG_LIBRARIES AND SAMG_INCLUDES) +ENDIF(IFEM_USE_SAMG) # VTFWriter IF(IFEM_USE_VTFWRITER) diff --git a/cmake/Modules/FindSuperLU.cmake b/cmake/Modules/FindSuperLU.cmake index eb3f2da2..a3f85818 100644 --- a/cmake/Modules/FindSuperLU.cmake +++ b/cmake/Modules/FindSuperLU.cmake @@ -8,6 +8,11 @@ FIND_PATH(SuperLU_INCLUDES /sima/libs/SuperLU/include PATH_SUFFIXES superlu ) +FIND_LIBRARY(SuperLU_LIBRARIES + NAMES superlu + PATHS $ENV{HOME}/lib + /sima/libs/SuperLU/lib +) FIND_PATH(SuperLU_MT_INCLUDES NAMES pdsp_defs.h @@ -15,13 +20,6 @@ FIND_PATH(SuperLU_MT_INCLUDES /sima/libs/SuperLU_MT/include PATH_SUFFIXES superlu_mt superlu ) - -FIND_LIBRARY(SuperLU_LIBRARIES - NAMES superlu - PATHS $ENV{HOME}/lib - /sima/libs/SuperLU/lib -) - FIND_LIBRARY(SuperLU_MT_LIBRARIES NAMES superlu_mt PATHS $ENV{HOME}/lib @@ -34,7 +32,7 @@ IF(SuperLU_LIBRARIES) SuperLU_INCLUDES SuperLU_LIBRARIES) ENDIF(SuperLU_LIBRARIES) IF(SuperLU_MT_LIBRARIES) - find_package_handle_standard_args(SuperLU DEFAULT_MSG + find_package_handle_standard_args(SuperLU_MT DEFAULT_MSG SuperLU_MT_INCLUDES SuperLU_MT_LIBRARIES) ENDIF(SuperLU_MT_LIBRARIES) diff --git a/cmake/Modules/IFEMOptions.cmake b/cmake/Modules/IFEMOptions.cmake index 5ff7bc28..869bfda3 100644 --- a/cmake/Modules/IFEMOptions.cmake +++ b/cmake/Modules/IFEMOptions.cmake @@ -1,11 +1,11 @@ -OPTION(IFEM_USE_HDF5 "Compile with HDF5 support?" ON) -OPTION(IFEM_USE_SUPERLU "Compile with SuperLU support?" ON) -OPTION(IFEM_USE_SUPERLU_MT "Compile with SuperLU-MT support?" ON) +OPTION(IFEM_USE_OPENMP "Compile with OpenMP support?" ON) OPTION(IFEM_USE_LRSPLINES "Compile with LR-splines support?" ON) +OPTION(IFEM_USE_SUPERLU "Compile with SuperLU support?" ON) +OPTION(IFEM_USE_SUPERLU_MT "Compile with SuperLU_MT support?" OFF) OPTION(IFEM_USE_PETSC "Compile with PETSc support?" ON) OPTION(IFEM_USE_PARALLEL_PETSC "Compile with parallel PETSc support?" OFF) OPTION(IFEM_USE_SLEPC "Compile with SLEPc support?" OFF) OPTION(IFEM_USE_SPR "Compile with SPR support?" OFF) OPTION(IFEM_USE_SAMG "Compile with SAMG support?" OFF) +OPTION(IFEM_USE_HDF5 "Compile with HDF5 support?" ON) OPTION(IFEM_USE_VTFWRITER "Compile with VTFWriter support?" ON) -OPTION(IFEM_USE_OPENMP "Compile with OpenMP support?" ON)