forked from sandialabs/seacas
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcmake-config
executable file
·128 lines (111 loc) · 3.54 KB
/
cmake-config
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#!/bin/sh
EXTRA_ARGS=$@
### Set to ON for parallel compile; otherwise OFF for serial (default)
MPI=OFF
### Set to ON to use Kokkos in the Ioss library; otherwise OFF (default)
KOKKOS=OFF
### Set to ON for CUDA compile; otherwise OFF (default) (only used if KOKKOS=ON
CUDA=OFF
COMPILER="gnu"
#COMPILER="clang"
### Switch for Debug or Release build:
BUILD_TYPE=Release
#BUILD_TYPE=Debug
### Define to YES to *disable* all exodus deprecated functions
OMIT_DEPRECATED_CODE="NO"
### If you do not have the X11 developer package on your system
### which provides X11/Xlib.h and the libX11, then you will need
### to add the line below. It will disable blot and fastq
#-D TPL_ENABLE_X11=OFF \
### The following assumes you are building in a subdirectory of ACCESS Root
ACCESS=$(cd ..; pwd)
### The SEACAS code will install in ${INSTALL_PATH}/bin, ${INSTALL_PATH}/lib, and ${INSTALL_PATH}/include.
INSTALL_PATH=${ACCESS}
### Make sure these point to the locations to find the libraries and includes in lib and include
### subdirectories of the specified paths.
### For example, netcdf.h should be in ${NETCDF_PATH}/include
NETCDF_PATH=${ACCESS}
MATIO_PATH=${ACCESS}
HDF5_PATH=${ACCESS}
CGNS_PATH=${ACCESS}
### Change this to point to the compilers you want to use
if [ "$MPI" == "ON" ]
then
MPI_EXEC=`which mpiexec`
MPI_BIN=`dirname $MPI_EXEC`
if [ "$COMPILER" == "gnu" ]
then
CXX=mpicxx
CC=mpicc
FC=mpif77
else
CXX=mpicxx-openmpi-clang38
CC=mpicc-openmpi-clang38
FC=mpif77-openmpi-clang38
fi
else
if [ "$COMPILER" == "gnu" ]
then
CXX=g++
CC=gcc
FC=gfortran
else
CXX=clang++
CC=clang
FC=gfortran
fi
fi
if [ "$KOKKOS" == "ON" ]
then
if [ "$CUDA" == "ON" ]
then
export "OMPI_CXX=${SEACAS_SRC_DIR}/packages/kokkos/config/nvcc_wrapper"
export CUDA_MANAGED_FORCE_DEVICE_ALLOC=1
KOKKOS_SYMBOLS="-D SEACASProj_ENABLE_Kokkos:BOOL=ON -D TPL_ENABLE_CUDA:Bool=ON -D CUDA_TOOLKIT_ROOT_DIR:PATH=${CUDA_PATH} -D Kokkos_ENABLE_Pthread:BOOL=OFF"
else
export OMPI_CXX=`which gcc`
unset CUDA_MANAGED_FORCE_DEVICE_ALLOC
KOKKOS_SYMBOLS="-D SEACASProj_ENABLE_Kokkos:BOOL=ON -D SEACASProj_ENABLE_OpenMP:Bool=ON -D Kokkos_ENABLE_Pthread:BOOL=OFF"
fi
else
KOKKOS_SYMBOLS="-D SEACASProj_ENABLE_Kokkos:BOOL=OFF"
fi
hostname=`hostname -s`
rm -f CMakeCache.txt
###------------------------------------------------------------------------
cmake \
-D CMAKE_CXX_FLAGS="-Wall -Wunused -pedantic" \
-D CMAKE_C_FLAGS="-Wall -Wunused -pedantic" \
-D CMAKE_MACOSX_RPATH:BOOL=ON \
-D CMAKE_INSTALL_RPATH:PATH=${INSTALL_PATH}/lib \
-D BUILD_SHARED_LIBS:BOOL=ON \
-D CMAKE_BUILD_TYPE=${BUILD_TYPE} \
-D SEACASProj_ENABLE_ALL_PACKAGES:BOOL=ON \
-D SEACASProj_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=ON \
-D SEACASProj_ENABLE_SECONDARY_TESTED_CODE:BOOL=ON \
-D SEACASProj_ENABLE_TESTS=ON \
-D CMAKE_INSTALL_PREFIX:PATH=${INSTALL_PATH} \
-D CMAKE_CXX_COMPILER:FILEPATH=${CXX} \
-D CMAKE_C_COMPILER:FILEPATH=${CC} \
-D CMAKE_Fortran_COMPILER:FILEPATH=${FC} \
-D SEACASProj_SKIP_FORTRANCINTERFACE_VERIFY_TEST:BOOL=ON \
-D SEACASProj_HIDE_DEPRECATED_CODE:BOOL=${OMIT_DEPRECATED_CODE} \
\
-D TPL_ENABLE_Netcdf:BOOL=ON \
-D TPL_ENABLE_Matio:BOOL=ON \
-D TPL_ENABLE_MPI=${MPI} \
-D TPL_ENABLE_Pamgen=OFF \
-D TPL_ENABLE_CGNS:BOOL=ON \
\
${KOKKOS_SYMBOLS} \
\
-D MPI_BIN_DIR:PATH=${MPI_BIN} \
-D NetCDF_ROOT:PATH=${NETCDF_PATH} \
-D HDF5_ROOT:PATH=${HDF5_PATH} \
-D HDF5_NO_SYSTEM_PATHS=ON \
-D CGNS_ROOT:PATH=${CGNS_PATH} \
-D Matio_LIBRARY_DIRS:PATH=${MATIO_PATH}/lib \
-D TPL_Matio_INCLUDE_DIRS:PATH=${MATIO_PATH}/include \
\
$EXTRA_ARGS \
..