diff --git a/CMakeLists.txt b/CMakeLists.txt index 4d0980108da14a46268f27760bec2a873b0852c7..1c50815ba993162837d2b82cf3b81194dfa815f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -877,61 +877,6 @@ if(HAVE_SOLVER) set_config_option(HAVE_GMM "Gmm") endif(ENABLE_GMM) - if(ENABLE_TAUCS) - if(HAVE_METIS) - add_subdirectory(contrib/taucs) - include_directories(contrib/taucs/src contrib/taucs/config) - if(WIN32 OR CYGWIN) - add_definitions(-DOSTYPE_win32) - elseif(APPLE) - add_definitions(-DOSTYPE_darwin) - else(WIN32) - add_definitions(-DOSTYPE_linux) - endif(WIN32 OR CYGWIN) - file(GLOB_RECURSE TAUCS_D ${CMAKE_CURRENT_BINARY_DIR}/contrib/taucs/D/*.c) - file(GLOB_RECURSE TAUCS_S ${CMAKE_CURRENT_BINARY_DIR}/contrib/taucs/S/*.c) - file(GLOB_RECURSE TAUCS_Z ${CMAKE_CURRENT_BINARY_DIR}/contrib/taucs/Z/*.c) - file(GLOB_RECURSE TAUCS_C ${CMAKE_CURRENT_BINARY_DIR}/contrib/taucs/C/*.c) - file(GLOB_RECURSE TAUCS_G ${CMAKE_CURRENT_BINARY_DIR}/contrib/taucs/G/*.c) - list(APPEND GMSH_SRC ${TAUCS_D};${TAUCS_S};${TAUCS_Z};${TAUCS_C};${TAUCS_G}) - set_source_files_properties(${TAUCS_D} PROPERTIES COMPILE_FLAGS -DTAUCS_CORE_DOUBLE) - set_source_files_properties(${TAUCS_S} PROPERTIES COMPILE_FLAGS -DTAUCS_CORE_SINGLE) - set_source_files_properties(${TAUCS_Z} PROPERTIES COMPILE_FLAGS -DTAUCS_CORE_DCOMPLEX) - set_source_files_properties(${TAUCS_C} PROPERTIES COMPILE_FLAGS -DTAUCS_CORE_SCOMPLEX) - set_source_files_properties(${TAUCS_G} PROPERTIES COMPILE_FLAGS -DTAUCS_CORE_GENERAL) - set_config_option(HAVE_TAUCS "Taucs") - else(HAVE_METIS) - message(STATUS "Warning: Disabling Taucs (requires METIS)") - endif(HAVE_METIS) - endif(ENABLE_TAUCS) - - if(ENABLE_MUMPS) - set(MUMPS_LIBS_REQUIRED smumps dmumps cmumps zmumps mumps_common pord) - if(NOT ENABLE_MPI) - list(APPEND MUMPS_LIBS_REQUIRED mpiseq) - endif(NOT ENABLE_MPI) - find_all_libraries(MUMPS_LIBRARIES MUMPS_LIBS_REQUIRED "" "lib") - find_path(SMUMPS_INC "smumps_c.h" PATH_SUFFIXES src include) - find_path(DMUMPS_INC "dmumps_c.h" PATH_SUFFIXES src include) - find_path(CMUMPS_INC "cmumps_c.h" PATH_SUFFIXES src include) - find_path(ZMUMPS_INC "zmumps_c.h" PATH_SUFFIXES src include) - if(MUMPS_LIBRARIES AND SMUMPS_INC AND DMUMPS_INC AND CMUMPS_INC AND ZMUMPS_INC) - set_config_option(HAVE_MUMPS "MUMPS") - list(APPEND EXTERNAL_LIBRARIES ${MUMPS_LIBRARIES}) - list(APPEND EXTERNAL_INCLUDES ${SMUMPS_INC}) - list(APPEND EXTERNAL_INCLUDES ${DMUMPS_INC}) - list(APPEND EXTERNAL_INCLUDES ${CMUMPS_INC}) - list(APPEND EXTERNAL_INCLUDES ${ZMUMPS_INC}) - find_library(GFORTRAN_LIB gfortran) - if(GFORTRAN_LIB) - list(APPEND EXTERNAL_LIBRARIES ${GFORTRAN_LIB}) - endif(GFORTRAN_LIB) - if(ENABLE_GMM) # use GMM/MUMPS interface - add_definitions(-DGMM_USES_MUMPS) - endif(ENABLE_GMM) - endif(MUMPS_LIBRARIES AND SMUMPS_INC AND DMUMPS_INC AND CMUMPS_INC AND ZMUMPS_INC) - endif(ENABLE_MUMPS) - if(ENABLE_PETSC) if(PETSC_DIR) set(ENV_PETSC_DIR ${PETSC_DIR}) @@ -1070,6 +1015,61 @@ if(HAVE_SOLVER) endif(PETSC_VARIABLES) endif(ENABLE_PETSC) + if(ENABLE_TAUCS AND HAVE_BLAS AND HAVE_LAPACK) + if(HAVE_METIS) + add_subdirectory(contrib/taucs) + include_directories(contrib/taucs/src contrib/taucs/config) + if(WIN32 OR CYGWIN) + add_definitions(-DOSTYPE_win32) + elseif(APPLE) + add_definitions(-DOSTYPE_darwin) + else(WIN32) + add_definitions(-DOSTYPE_linux) + endif(WIN32 OR CYGWIN) + file(GLOB_RECURSE TAUCS_D ${CMAKE_CURRENT_BINARY_DIR}/contrib/taucs/D/*.c) + file(GLOB_RECURSE TAUCS_S ${CMAKE_CURRENT_BINARY_DIR}/contrib/taucs/S/*.c) + file(GLOB_RECURSE TAUCS_Z ${CMAKE_CURRENT_BINARY_DIR}/contrib/taucs/Z/*.c) + file(GLOB_RECURSE TAUCS_C ${CMAKE_CURRENT_BINARY_DIR}/contrib/taucs/C/*.c) + file(GLOB_RECURSE TAUCS_G ${CMAKE_CURRENT_BINARY_DIR}/contrib/taucs/G/*.c) + list(APPEND GMSH_SRC ${TAUCS_D};${TAUCS_S};${TAUCS_Z};${TAUCS_C};${TAUCS_G}) + set_source_files_properties(${TAUCS_D} PROPERTIES COMPILE_FLAGS -DTAUCS_CORE_DOUBLE) + set_source_files_properties(${TAUCS_S} PROPERTIES COMPILE_FLAGS -DTAUCS_CORE_SINGLE) + set_source_files_properties(${TAUCS_Z} PROPERTIES COMPILE_FLAGS -DTAUCS_CORE_DCOMPLEX) + set_source_files_properties(${TAUCS_C} PROPERTIES COMPILE_FLAGS -DTAUCS_CORE_SCOMPLEX) + set_source_files_properties(${TAUCS_G} PROPERTIES COMPILE_FLAGS -DTAUCS_CORE_GENERAL) + set_config_option(HAVE_TAUCS "Taucs") + else(HAVE_METIS) + message(STATUS "Warning: Disabling Taucs (requires METIS)") + endif(HAVE_METIS) + endif(ENABLE_TAUCS AND HAVE_BLAS AND HAVE_LAPACK) + + if(ENABLE_MUMPS AND HAVE_BLAS AND HAVE_LAPACK) + set(MUMPS_LIBS_REQUIRED smumps dmumps cmumps zmumps mumps_common pord) + if(NOT ENABLE_MPI) + list(APPEND MUMPS_LIBS_REQUIRED mpiseq) + endif(NOT ENABLE_MPI) + find_all_libraries(MUMPS_LIBRARIES MUMPS_LIBS_REQUIRED "" "lib") + find_path(SMUMPS_INC "smumps_c.h" PATH_SUFFIXES src include) + find_path(DMUMPS_INC "dmumps_c.h" PATH_SUFFIXES src include) + find_path(CMUMPS_INC "cmumps_c.h" PATH_SUFFIXES src include) + find_path(ZMUMPS_INC "zmumps_c.h" PATH_SUFFIXES src include) + if(MUMPS_LIBRARIES AND SMUMPS_INC AND DMUMPS_INC AND CMUMPS_INC AND ZMUMPS_INC) + set_config_option(HAVE_MUMPS "MUMPS") + list(APPEND EXTERNAL_LIBRARIES ${MUMPS_LIBRARIES}) + list(APPEND EXTERNAL_INCLUDES ${SMUMPS_INC}) + list(APPEND EXTERNAL_INCLUDES ${DMUMPS_INC}) + list(APPEND EXTERNAL_INCLUDES ${CMUMPS_INC}) + list(APPEND EXTERNAL_INCLUDES ${ZMUMPS_INC}) + find_library(GFORTRAN_LIB gfortran) + if(GFORTRAN_LIB) + list(APPEND EXTERNAL_LIBRARIES ${GFORTRAN_LIB}) + endif(GFORTRAN_LIB) + if(ENABLE_GMM) # use GMM/MUMPS interface + add_definitions(-DGMM_USES_MUMPS) + endif(ENABLE_GMM) + endif(MUMPS_LIBRARIES AND SMUMPS_INC AND DMUMPS_INC AND CMUMPS_INC AND ZMUMPS_INC) + endif(ENABLE_MUMPS AND HAVE_BLAS AND HAVE_LAPACK) + if(ENABLE_GETDP) find_library(GETDP_LIB GetDP) find_path(GETDP_INC "GetDP.h" PATH_SUFFIXES getdp)