@@ -649,7 +649,7 @@ if (ENABLE_TRILINOS)
649649
650650 message (STATUS "TRILINOS_EXTRA_ARGS = ${TRILINOS_EXTRA_ARGS} " )
651651
652- if ( ${ ENABLE_MPI} )
652+ if ( ENABLE_MPI )
653653 set ( TRILINOS_C_COMPILER ${MPI_C_COMPILER} )
654654 set ( TRILINOS_CXX_COMPILER ${MPI_CXX_COMPILER} )
655655 set ( TRILINOS_Fortran_COMPILER ${MPI_Fortran_COMPILER} )
@@ -659,6 +659,11 @@ if (ENABLE_TRILINOS)
659659 set ( TRILINOS_Fortran_COMPILER ${CMAKE_Fortran_COMPILER} )
660660 endif ()
661661
662+ if ( ENABLE_CUDA )
663+ set ( TRILINOS_CXX_FLAGS "${TRILINOS_CXX_FLAGS} -ccbin ${TRILINOS_CXX_COMPILER} -arch=${CUDA_ARCH} --expt-extended-lambda --expt-relaxed-constexpr" )
664+ set ( TRILINOS_CXX_COMPILER ${CMAKE_CURRENT_BINARY_DIR} /trilinos/src/trilinos/packages/kokkos/bin/nvcc_wrapper )
665+ endif ()
666+
662667 ExternalProject_Add ( trilinos
663668 PREFIX ${PROJECT_BINARY_DIR} /trilinos
664669 URL ${TRILINOS_URL}
@@ -678,13 +683,15 @@ if (ENABLE_TRILINOS)
678683 -D CMAKE_Fortran_FLAGS_RELEASE:STRING=${CMAKE_Fortran_FLAGS_RELEASE}
679684 -D CMAKE_BUILD_TYPE :STRING=${CMAKE_BUILD_TYPE}
680685 -D CMAKE_INSTALL_PREFIX :PATH=<INSTALL_DIR >
681- -D TPL_ENABLE_MPI:BOOL=${ENABLE_MPI}
682- -D BUILD_SHARED_LIBS :BOOL=ON
686+ -D CMAKE_VERBOSE_MAKEFILE :BOOL=${CMAKE_VERBOSE_MAKEFILE}
683687 -D CMAKE_POSITION_INDEPENDENT_CODE =${CMAKE_POSITION_INDEPENDENT_CODE}
688+ -D BUILD_SHARED_LIBS :BOOL=ON
689+ -D CUDA_ROOT:PATH=${CUDA_TOOLKIT_ROOT_DIR}
690+ -D TPL_ENABLE_MPI:BOOL=${ENABLE_MPI}
691+ -D TPL_ENABLE_CUDA:BOOL=${ENABLE_CUDA}
684692 -D Trilinos_ENABLE_OpenMP:BOOL=${ENABLE_OPENMP}
685693 -D Trilinos_ENABLE_Fortran:BOOL=ON
686694 -D Trilinos_WARNINGS_AS_ERRORS_FLAGS:STRING=""
687- -D CMAKE_VERBOSE_MAKEFILE :BOOL=${CMAKE_VERBOSE_MAKEFILE}
688695 -D Trilinos_ENABLE_TESTS:BOOL=OFF
689696 -D Trilinos_ENABLE_Gtest:BOOL=OFF
690697 -D Trilinos_ENABLE_ALL_PACKAGES:BOOL=OFF
@@ -695,14 +702,31 @@ if (ENABLE_TRILINOS)
695702 -D Trilinos_ENABLE_Kokkos:BOOL=ON
696703 -D Trilinos_ENABLE_Stratimikos:BOOL=ON
697704 -D Trilinos_ENABLE_Amesos:BOOL=ON
705+ -D Trilinos_ENABLE_Amesos2:BOOL=ON
698706 -D Trilinos_ENABLE_AztecOO:BOOL=ON
707+ -D Trilinos_ENABLE_Belos:BOOL=ON
699708 -D Trilinos_ENABLE_Ifpack:BOOL=ON
709+ -D Trilinos_ENABLE_Ifpack2:BOOL=ON
700710 -D Trilinos_ENABLE_Teuchos:BOOL=ON
701711 -D Trilinos_ENABLE_ML:BOOL=ON
712+ -D Trilinos_ENABLE_MueLu:BOOL=ON
702713 -D Trilinos_ENABLE_Thyra:BOOL=ON
703714 -D Trilinos_ENABLE_STK:BOOL=OFF
704- -D Trilinos_ENABLE_TrilinosCouplings:BOOL=ON
715+ -D Trilinos_ENABLE_TrilinosCouplings:BOOL=OFF
705716 -D Trilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON
717+ -D Trilinos_ENABLE_COMPLEX_DOUBLE:BOOL=OFF
718+ -D KOKKOS_ENABLE_CUDA:BOOL=${ENABLE_CUDA}
719+ -D KOKKOS_ENABLE_CUDA_LAMBDA:BOOL=${ENABLE_CUDA}
720+ -D KOKKOS_ENABLE_CUDA_UVM:BOOL=${ENABLE_CUDA}
721+ -D Tpetra_ENABLE_CUDA:BOOL=${ENABLE_CUDA}
722+ -D Tpetra_INST_SERIAL:BOOL=ON
723+ -D Tpetra_INST_INT_LONG_LONG:BOOL=ON
724+ -D Tpetra_INST_INT_INT:BOOL=OFF
725+ -D Tpetra_INST_DOUBLE:BOOL=ON
726+ -D Tpetra_INST_COMPLEX_DOUBLE:BOOL=OFF
727+ -D Belos_ENABLE_Tpetra:BOOL=ON
728+ -D Belos_ENABLE_Epetra:BOOL=OFF
729+ -D Belos_ENABLE_Xpetra:BOOL=OFF
706730 ${TRILINOS_EXTRA_ARGS}
707731 )
708732
@@ -913,9 +937,10 @@ if( ENABLE_PETSC )
913937
914938 message (STATUS "Building PETSC found at ${PETSC_URL} " )
915939
916- set (PETSC_C_FLAGS "-fPIC ${C_FLAGS_NO_WARNINGS} ${CMAKE_C_FLAGS_RELEASE} " )
917- set (PETSC_CXX_FLAGS "-fPIC ${CXX_FLAGS_NO_WARNINGS} ${CMAKE_CXX_FLAGS_RELEASE} " )
918- set (PETSC_Fortran_FLAGS "${CMAKE_Fortran_FLAGS_RELEASE} " )
940+ string (TOUPPER "${CMAKE_BUILD_TYPE} " bt_uc)
941+ set (PETSC_C_FLAGS "-fPIC ${C_FLAGS_NO_WARNINGS} ${CMAKE_C_FLAGS_${bt_uc} }" )
942+ set (PETSC_CXX_FLAGS "-fPIC ${CXX_FLAGS_NO_WARNINGS} ${CMAKE_CXX_FLAGS_${bt_uc} }" )
943+ set (PETSC_Fortran_FLAGS "${CMAKE_Fortran_FLAGS_${bt_uc} }" )
919944
920945 if (ENABLE_OPENMP)
921946 set (PETSC_OPENMP_FLAG --with-openmp=1)
0 commit comments