Skip to content

Commit 81fce4e

Browse files
committed
Build Trilinos with ParMETIS TPL
1 parent c1ab7b9 commit 81fce4e

1 file changed

Lines changed: 102 additions & 95 deletions

File tree

CMakeLists.txt

Lines changed: 102 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -530,101 +530,6 @@ ExternalProject_Add( pugixml
530530

531531
list(APPEND build_list pugixml )
532532

533-
################################
534-
# TRILINOS
535-
################################
536-
if (ENABLE_TRILINOS)
537-
set(TRILINOS_DIR "${CMAKE_INSTALL_PREFIX}/trilinos")
538-
set(TRILINOS_URL "${TPL_MIRROR_DIR}/Trilinos-trilinos-release-13-4-1.tar.gz")
539-
540-
message(STATUS "Building TRILINOS found at ${TRILINOS_URL}")
541-
542-
set(TRILINOS_C_FLAGS "-fPIC ${C_FLAGS_NO_WARNINGS}")
543-
set(TRILINOS_CXX_FLAGS "-fPIC ${CXX_FLAGS_NO_WARNINGS}")
544-
545-
if( ENABLE_MKL )
546-
set( TRILINOS_EXTRA_ARGS ${TRILINOS_EXTRA_ARGS}
547-
-D TPL_ENABLE_MKL:BOOL=ON
548-
-D TPL_MKL_INCLUDE_DIRS:PATH=${MKL_INCLUDE_DIRS}
549-
-D TPL_MKL_LIBRARIES:STRING=${MKL_LIBRARIES})
550-
endif()
551-
552-
if ( ENABLE_ESSL )
553-
set( TRILINOS_EXTRA_ARGS ${TRILINOS_EXTRA_ARGS}
554-
-D HAVE_dggsvd3:BOOL=ON)
555-
endif()
556-
557-
if ( DEFINED OpenMP_Fortran_FLAGS )
558-
set( TRILINOS_EXTRA_ARGS ${TRILINOS_EXTRA_ARGS}
559-
-D OpenMP_Fortran_FLAGS:STRING=${OpenMP_Fortran_FLAGS})
560-
endif()
561-
562-
if ( DEFINED OpenMP_Fortran_LIB_NAMES )
563-
set( TRILINOS_EXTRA_ARGS ${TRILINOS_EXTRA_ARGS}
564-
-D OpenMP_Fortran_LIB_NAMES:STRING=${OpenMP_Fortran_LIB_NAMES})
565-
endif()
566-
567-
if( ${ENABLE_MPI} )
568-
set( TRILINOS_C_COMPILER ${MPI_C_COMPILER} )
569-
set( TRILINOS_CXX_COMPILER ${MPI_CXX_COMPILER} )
570-
set( TRILINOS_Fortran_COMPILER ${MPI_Fortran_COMPILER} )
571-
else()
572-
set( TRILINOS_C_COMPILER ${CMAKE_C_COMPILER} )
573-
set( TRILINOS_CXX_COMPILER ${CMAKE_CXX_COMPILER} )
574-
set( TRILINOS_Fortran_COMPILER ${CMAKE_Fortran_COMPILER} )
575-
endif()
576-
577-
ExternalProject_Add( trilinos
578-
PREFIX ${PROJECT_BINARY_DIR}/trilinos
579-
URL ${TRILINOS_URL}
580-
INSTALL_DIR ${TRILINOS_DIR}
581-
BUILD_COMMAND ${TPL_BUILD_COMMAND}
582-
INSTALL_COMMAND ${TPL_INSTALL_COMMAND}
583-
CMAKE_GENERATOR ${TPL_GENERATOR}
584-
CMAKE_CACHE_ARGS -DTPL_BLAS_LIBRARIES:STRING=${BLAS_LIBRARIES}
585-
-DTPL_LAPACK_LIBRARIES:STRING=${LAPACK_LIBRARIES}
586-
CMAKE_ARGS -D CMAKE_C_COMPILER:PATH=${TRILINOS_C_COMPILER}
587-
-D CMAKE_C_FLAGS:STRING=${TRILINOS_C_FLAGS}
588-
-D CMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
589-
-D CMAKE_CXX_COMPILER:PATH=${TRILINOS_CXX_COMPILER}
590-
-D CMAKE_CXX_FLAGS:STRING=${TRILINOS_CXX_FLAGS}
591-
-D CMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
592-
-D CMAKE_Fortran_COMPILER:PATH=${TRILINOS_Fortran_COMPILER}
593-
-D CMAKE_Fortran_FLAGS_RELEASE:STRING=${CMAKE_Fortran_FLAGS_RELEASE}
594-
-D CMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
595-
-D CMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
596-
-D TPL_ENABLE_MPI:BOOL=${ENABLE_MPI}
597-
-D BUILD_SHARED_LIBS:BOOL=ON
598-
-D CMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE}
599-
-D Trilinos_ENABLE_OpenMP:BOOL=${ENABLE_OPENMP}
600-
-D Trilinos_ENABLE_Fortran:BOOL=ON
601-
-D Trilinos_WARNINGS_AS_ERRORS_FLAGS:STRING=""
602-
-D CMAKE_VERBOSE_MAKEFILE:BOOL=${CMAKE_VERBOSE_MAKEFILE}
603-
-D Trilinos_ENABLE_TESTS:BOOL=OFF
604-
-D Trilinos_ENABLE_Gtest:BOOL=OFF
605-
-D Trilinos_ENABLE_ALL_PACKAGES:BOOL=OFF
606-
-D Trilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=OFF
607-
-D Trilinos_ENABLE_Epetra:BOOL=ON
608-
-D Trilinos_ENABLE_EpetraExt:BOOL=ON
609-
-D Trilinos_ENABLE_Tpetra:BOOL=ON
610-
-D Trilinos_ENABLE_Kokkos:BOOL=ON
611-
-D Trilinos_ENABLE_Stratimikos:BOOL=ON
612-
-D Trilinos_ENABLE_Amesos:BOOL=ON
613-
-D Trilinos_ENABLE_AztecOO:BOOL=ON
614-
-D Trilinos_ENABLE_Ifpack:BOOL=ON
615-
-D Trilinos_ENABLE_Teuchos:BOOL=ON
616-
-D Trilinos_ENABLE_ML:BOOL=ON
617-
-D Trilinos_ENABLE_Thyra:BOOL=ON
618-
-D Trilinos_ENABLE_STK:BOOL=OFF
619-
-D Trilinos_ENABLE_TrilinosCouplings:BOOL=ON
620-
-D Trilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON
621-
${TRILINOS_EXTRA_ARGS}
622-
)
623-
624-
list(APPEND build_list trilinos )
625-
endif()
626-
627-
628533
################################
629534
# PARMETIS
630535
# (also METIS is built; note that the idx_t data type is defined to be
@@ -731,6 +636,108 @@ if( ENABLE_MPI )
731636
list(APPEND build_list superlu_dist )
732637
endif()
733638

639+
################################
640+
# TRILINOS
641+
################################
642+
if (ENABLE_TRILINOS)
643+
set(TRILINOS_DIR "${CMAKE_INSTALL_PREFIX}/trilinos")
644+
set(TRILINOS_URL "${TPL_MIRROR_DIR}/Trilinos-trilinos-release-13-4-1.tar.gz")
645+
646+
message(STATUS "Building TRILINOS found at ${TRILINOS_URL}")
647+
648+
set(TRILINOS_C_FLAGS "-fPIC ${C_FLAGS_NO_WARNINGS}")
649+
set(TRILINOS_CXX_FLAGS "-fPIC ${CXX_FLAGS_NO_WARNINGS}")
650+
651+
if( ENABLE_MKL )
652+
set( TRILINOS_EXTRA_ARGS ${TRILINOS_EXTRA_ARGS}
653+
-D TPL_ENABLE_MKL:BOOL=ON
654+
-D TPL_MKL_INCLUDE_DIRS:PATH=${MKL_INCLUDE_DIRS}
655+
-D TPL_MKL_LIBRARIES:STRING=${MKL_LIBRARIES})
656+
endif()
657+
658+
if ( ENABLE_ESSL )
659+
set( TRILINOS_EXTRA_ARGS ${TRILINOS_EXTRA_ARGS}
660+
-D HAVE_dggsvd3:BOOL=ON)
661+
endif()
662+
663+
if ( DEFINED OpenMP_Fortran_FLAGS )
664+
set( TRILINOS_EXTRA_ARGS ${TRILINOS_EXTRA_ARGS}
665+
-D OpenMP_Fortran_FLAGS:STRING=${OpenMP_Fortran_FLAGS})
666+
endif()
667+
668+
if ( DEFINED OpenMP_Fortran_LIB_NAMES )
669+
set( TRILINOS_EXTRA_ARGS ${TRILINOS_EXTRA_ARGS}
670+
-D OpenMP_Fortran_LIB_NAMES:STRING=${OpenMP_Fortran_LIB_NAMES})
671+
endif()
672+
673+
if( ${ENABLE_MPI} )
674+
set( TRILINOS_C_COMPILER ${MPI_C_COMPILER} )
675+
set( TRILINOS_CXX_COMPILER ${MPI_CXX_COMPILER} )
676+
set( TRILINOS_Fortran_COMPILER ${MPI_Fortran_COMPILER} )
677+
else()
678+
set( TRILINOS_C_COMPILER ${CMAKE_C_COMPILER} )
679+
set( TRILINOS_CXX_COMPILER ${CMAKE_CXX_COMPILER} )
680+
set( TRILINOS_Fortran_COMPILER ${CMAKE_Fortran_COMPILER} )
681+
endif()
682+
683+
ExternalProject_Add( trilinos
684+
PREFIX ${PROJECT_BINARY_DIR}/trilinos
685+
URL ${TRILINOS_URL}
686+
INSTALL_DIR ${TRILINOS_DIR}
687+
BUILD_COMMAND ${TPL_BUILD_COMMAND}
688+
INSTALL_COMMAND ${TPL_INSTALL_COMMAND}
689+
DEPENDS parmetis metis
690+
CMAKE_GENERATOR ${TPL_GENERATOR}
691+
CMAKE_CACHE_ARGS -DTPL_BLAS_LIBRARIES:STRING=${BLAS_LIBRARIES}
692+
-DTPL_LAPACK_LIBRARIES:STRING=${LAPACK_LIBRARIES}
693+
-DTPL_METIS_INCLUDE_DIRS:PATH=${METIS_DIR}/include
694+
-DTPL_METIS_LIBRARIES:PATH=${METIS_DIR}/lib/libmetis.a
695+
-DTPL_ParMETIS_INCLUDE_DIRS:PATH=${PARMETIS_DIR}/include
696+
-DTPL_ParMETIS_LIBRARIES:PATH=${PARMETIS_DIR}/lib/libparmetis.a;${METIS_DIR}/lib/libmetis.a
697+
CMAKE_ARGS -D CMAKE_C_COMPILER:PATH=${TRILINOS_C_COMPILER}
698+
-D CMAKE_C_FLAGS:STRING=${TRILINOS_C_FLAGS}
699+
-D CMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
700+
-D CMAKE_CXX_COMPILER:PATH=${TRILINOS_CXX_COMPILER}
701+
-D CMAKE_CXX_FLAGS:STRING=${TRILINOS_CXX_FLAGS}
702+
-D CMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
703+
-D CMAKE_Fortran_COMPILER:PATH=${TRILINOS_Fortran_COMPILER}
704+
-D CMAKE_Fortran_FLAGS_RELEASE:STRING=${CMAKE_Fortran_FLAGS_RELEASE}
705+
-D CMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
706+
-D CMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
707+
-D TPL_ENABLE_MPI:BOOL=${ENABLE_MPI}
708+
-D TPL_ENABLE_METIS:BOOL=ON
709+
-D TPL_ENABLE_ParMETIS:BOOL=ON
710+
-D BUILD_SHARED_LIBS:BOOL=ON
711+
-D CMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE}
712+
-D Trilinos_ENABLE_OpenMP:BOOL=${ENABLE_OPENMP}
713+
-D Trilinos_ENABLE_Fortran:BOOL=ON
714+
-D Trilinos_WARNINGS_AS_ERRORS_FLAGS:STRING=""
715+
-D CMAKE_VERBOSE_MAKEFILE:BOOL=${CMAKE_VERBOSE_MAKEFILE}
716+
-D Trilinos_ENABLE_TESTS:BOOL=OFF
717+
-D Trilinos_ENABLE_Gtest:BOOL=OFF
718+
-D Trilinos_ENABLE_ALL_PACKAGES:BOOL=OFF
719+
-D Trilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=OFF
720+
-D Trilinos_ENABLE_Epetra:BOOL=ON
721+
-D Trilinos_ENABLE_EpetraExt:BOOL=ON
722+
-D Trilinos_ENABLE_Tpetra:BOOL=ON
723+
-D Trilinos_ENABLE_Kokkos:BOOL=ON
724+
-D Trilinos_ENABLE_Stratimikos:BOOL=ON
725+
-D Trilinos_ENABLE_Amesos:BOOL=ON
726+
-D Trilinos_ENABLE_AztecOO:BOOL=ON
727+
-D Trilinos_ENABLE_Ifpack:BOOL=ON
728+
-D Trilinos_ENABLE_Teuchos:BOOL=ON
729+
-D Trilinos_ENABLE_ML:BOOL=ON
730+
-D Trilinos_ENABLE_Thyra:BOOL=ON
731+
-D Trilinos_ENABLE_STK:BOOL=OFF
732+
-D Trilinos_ENABLE_TrilinosCouplings:BOOL=ON
733+
-D Trilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON
734+
${TRILINOS_EXTRA_ARGS}
735+
)
736+
737+
list(APPEND build_list trilinos )
738+
endif()
739+
740+
734741
################################
735742
# HYPRE
736743
################################

0 commit comments

Comments
 (0)