#!/bin/bash

# Need Help?  Go to http://trilinos.sandia.gov/Trilinos10CMakeQuickstart.txt

# Notes on the cmake variables
#   - The NSSI team uses PGI compilers by default.  Mixing languages requires these flags - "-pgcpplibs -pgf90libs"
#   - MPI details are in the toolchain file

# Path to Trilinos source
TRILINOS_SRCDIR=$HOME/projects/trilinos/src/trilinos
TRIOS_SRCDIR=${TRILINOS_SRCDIR}/packages/trios

# Load the appropriate bash environment
source ${TRIOS_SRCDIR}/sampleScripts/config/sith/loadenv.sh

rm -f CMakeCache.txt

TARGET_COMPILER=pgi
TOOLCHAIN=${TRIOS_SRCDIR}/sampleScripts/config/sith/toolchain-sith-${TARGET_COMPILER}.cmake

EXTRA_ARGS=$@

INSTALL_PATH=$HOME/projects/trilinos/install/${TARGET_COMPILER}

cmake \
    -D CMAKE_INSTALL_PREFIX=${INSTALL_PATH} \
    -D CMAKE_TOOLCHAIN_FILE=${TOOLCHAIN} \
\
    -D CMAKE_BUILD_TYPE:STRING=DEBUG \
\
    -D CMAKE_CXX_FLAGS:STRING="-pgf90libs" \
    -D CMAKE_C_FLAGS:STRING="-pgcpplibs -pgf90libs" \
\
    -D Trilinos_WARNINGS_AS_ERRORS_FLAGS:STRING="" \
\
    -D TPL_ENABLE_Pthread:BOOL=ON \
    -D TPL_ENABLE_MPI:BOOL=ON \
\
    -D Trilinos_ENABLE_ALL_PACKAGES:BOOL=OFF \
    -D Trilinos_ENABLE_TESTS:BOOL=ON \
\
    -D Trilinos_ENABLE_Trios:BOOL=ON \
\
    -D TPL_ENABLE_InfiniBand:BOOL=ON \
    -D InfiniBand_INCLUDE_DIRS:FILEPATH="/usr/include/infiniband" \
    -D InfiniBand_LIBRARY_DIRS:FILEPATH="/usr/lib64" \
\
    -D TPL_ENABLE_BLAS:STRING=ON \
    -D BLAS_LIBRARY_DIRS:FILEPATH="/sw/sith/blas/ref/centos5.5_pgi10.9/lib" \
    -D BLAS_LIBRARY_NAMES:STRING="blas" \
    -D TPL_ENABLE_LAPACK:STRING=ON \
    -D LAPACK_LIBRARY_DIRS:FILEPATH="/sw/sith/lapack/3.1.1/centos5.5_pgi10.9_shared/lib" \
    -D LAPACK_LIBRARY_NAMES:STRING="lapack" \
\
    $EXTRA_ARGS \
\
    ${TRILINOS_SRCDIR}
