Skip to content

Commit 06b004b

Browse files
committed
Build Trilinos with ParMETIS TPL
1 parent 708482b commit 06b004b

File tree

1 file changed

+102
-95
lines changed

1 file changed

+102
-95
lines changed

CMakeLists.txt

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

524524
list(APPEND build_list pugixml )
525525

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

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

0 commit comments

Comments
 (0)