Skip to content

Commit 8f395a6

Browse files
authored
Refactor cmake config (#768)
* CI: Fix if syntax * CI: refactor * CI: Fix HAVE_X11 --> X11 symbol change * CI: update config docs [ci skip]
1 parent 844f509 commit 8f395a6

File tree

3 files changed

+74
-50
lines changed

3 files changed

+74
-50
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,9 @@ to configure the SEACAS CMake build.
129129
| EXTRA_WARNINGS | YES, NO | NO | Build with extra warnings enabled; see list in `cmake-config` |
130130
| SANITIZER | many | NO | If not NO, build using specified sanitizer; see list in `cmake-config` |
131131
| GENERATOR | many | "Unix Makefiles" | what generator should CMake use; see cmake doc |
132-
* The arguments can either be set in the environment as: `export COMPILER=gnu`, or passed on the script invocation line: `COMPILER=gnu ./install-tpl.sh`
132+
133+
* If the script enables a TPL that you do not want enabled, you can use a variable with the TPL name set to NO. For example, to explicitly disable MATIO, use `MATIO=NO ../cmake-config`. The names of the TPLs and, if enabled, the path to the TPL root directory are echoed at the end of the configuration process.
134+
* The arguments can either be set in the environment as: `export COMPILER=gnu`, or passed on the script invocation line: `COMPILER=gnu ../cmake-config`
133135

134136
## Parallel Build
135137

ci-msys2-build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ echo $HOME
66
mkdir build
77
cd build
88

9-
HAVE_X11=NO NETCDF_PATH=/mingw64 HDF5_PATH=/mingw64 CGNS_PATH=/mingw64 MPI=NO bash ../cmake-config
9+
X11=NO NETCDF_PATH=/mingw64 HDF5_PATH=/mingw64 CGNS_PATH=/mingw64 MPI=NO bash ../cmake-config
1010
make -k -j4
1111
make install
1212
#ctest -j 4 --output-on-failure

cmake-config

Lines changed: 70 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -309,8 +309,8 @@ fi
309309
### If you do not have the X11 developer package on your system
310310
### which provides X11/Xlib.h and the libX11, then change the "YES"
311311
### below to "NO". It will disable blot and fastq
312-
HAVE_X11=${HAVE_X11:-YES}
313-
HAVE_X11=$(check_valid HAVE_X11) || exit
312+
USE_X11=${USE_X11:-YES}
313+
USE_X11=$(check_valid USE_X11) || exit
314314

315315
### Set to ON to enable the building of a thread-safe version of the Exodus and IOSS libraries.
316316
THREADSAFE=${THREADSAFE:-NO}
@@ -327,19 +327,33 @@ function check_enable()
327327
fi
328328
}
329329

330-
HAVE_NETCDF=$(check_enable "${NETCDF_PATH}/include/netcdf.h")
331-
HAVE_MATIO=$(check_enable "${MATIO_PATH}/include/matio.h")
332-
HAVE_CGNS=$(check_enable "${CGNS_PATH}/include/cgnslib.h")
333-
HAVE_FAODEL=$(check_enable "${FAODEL_PATH}/include/faodel/faodelConfig.h")
334-
HAVE_ADIOS2=$(check_enable "${ADIOS2_PATH}/include/adios2.h")
335-
HAVE_AWSSDK=$(check_enable "${AWSSDK_PATH}/include/aws/core/Aws.h")
336-
HAVE_CEREAL=$(check_enable "${CEREAL_PATH}/include/cereal/cereal.hpp")
337-
HAVE_CATALYST2=$(check_enable "${CATALYST2_PATH}/include/catalyst-2.0/catalyst.h")
338-
HAVE_GTEST=$(check_enable "${GTEST_PATH}/include/gtest/gtest.h")
339-
HAVE_CATCH2=$(check_enable "${CATCH2_PATH}/include/catch2/catch_all.hpp")
340-
HAVE_KOKKOS=$(check_enable "${KOKKOS_PATH}/include/Kokkos_Core.hpp")
341-
HAVE_METIS=$(check_enable "${METIS_PATH}/include/metis.h")
342-
HAVE_PARMETIS=$(check_enable "${METIS_PATH}/include/parmetis.h")
330+
USE_NETCDF=${NETCDF:-$(check_enable "${NETCDF_PATH}/include/netcdf.h")}
331+
USE_MATIO=${MATIO:-$(check_enable "${MATIO_PATH}/include/matio.h")}
332+
USE_CGNS=${CGNS:-$(check_enable "${CGNS_PATH}/include/cgnslib.h")}
333+
USE_FAODEL=${FAODEL:-$(check_enable "${FAODEL_PATH}/include/faodel/faodelConfig.h")}
334+
USE_ADIOS2=${ADIOS2:-$(check_enable "${ADIOS2_PATH}/include/adios2.h")}
335+
USE_AWSSDK=${AWSSDK:-$(check_enable "${AWSSDK_PATH}/include/aws/core/Aws.h")}
336+
USE_CEREAL=${CEREAL:-$(check_enable "${CEREAL_PATH}/include/cereal/cereal.hpp")}
337+
USE_CATALYST2=${CATALYST2:-$(check_enable "${CATALYST2_PATH}/include/catalyst-2.0/catalyst.h")}
338+
USE_GTEST=${GTEST:-$(check_enable "${GTEST_PATH}/include/gtest/gtest.h")}
339+
USE_CATCH2=${CATCH2:-$(check_enable "${CATCH2_PATH}/include/catch2/catch_all.hpp")}
340+
USE_KOKKOS=${KOKKOS:-$(check_enable "${KOKKOS_PATH}/include/Kokkos_Core.hpp")}
341+
USE_METIS=${METIS:-$(check_enable "${METIS_PATH}/include/metis.h")}
342+
USE_PARMETIS=${USE_PARMETIS:-$(check_enable "${METIS_PATH}/include/parmetis.h")}
343+
344+
USE_NETCDF=$(check_valid USE_NETCDF) || exit
345+
USE_MATIO=$(check_valid USE_MATIO) || exit
346+
USE_CGNS=$(check_valid USE_CGNS) || exit
347+
USE_FAODEL=$(check_valid USE_FAODEL) || exit
348+
USE_ADIOS2=$(check_valid USE_ADIOS2) || exit
349+
USE_AWSSDK=$(check_valid USE_AWSSDK) || exit
350+
USE_CEREAL=$(check_valid USE_CEREAL) || exit
351+
USE_CATALYST2=$(check_valid USE_CATALYST2) || exit
352+
USE_GTEST=$(check_valid USE_GTEST) || exit
353+
USE_CATCH2=$(check_valid USE_CATCH2) || exit
354+
USE_KOKKOS=$(check_valid USE_KOKKOS) || exit
355+
USE_METIS=$(check_valid USE_METIS) || exit
356+
USE_PARMETIS=$(check_valid USE_PARMETIS) || exit
343357

344358
### DataWarp (Burst Buffer)
345359
### I use the following for mutrino (10/16/2018):
@@ -395,33 +409,33 @@ else
395409
LD_EXT="a"
396410
fi
397411

398-
if [ "${HAVE_KOKKOS}" == "YES" ]
412+
if [ "${USE_KOKKOS}" == "YES" ]
399413
then
400414
KOKKOS_SYMBOLS="-DKOKKOS_SRC_PATH:PATH=${INSTALL_PATH}/TPL/kokkos/kokkos \
401415
-DTPL_Kokkos_LIBRARY_DIRS:PATH=${KOKKOS_PATH}/lib \
402416
-DTPL_Kokkos_INCLUDE_DIRS:PATH=${KOKKOS_PATH}/include \
403417
-DTPL_Kokkos_LIBRARIES=${KOKKOS_PATH}/lib/libkokkoscore.${LD_EXT}"
404418
fi
405419

406-
if [ "$HAVE_AWSSDK" == "YES" ] && [ "$HAVE_CEREAL" == "YES" ]
420+
if [ "$USE_AWSSDK" == "YES" ] && [ "$USE_CEREAL" == "YES" ]
407421
then
408-
AWSSDK_SYMBOLS=" -D TPL_ENABLE_AWSSDK:BOOL=${HAVE_AWSSDK} \
422+
AWSSDK_SYMBOLS=" -D TPL_ENABLE_AWSSDK:BOOL=${USE_AWSSDK} \
409423
-D AWSSDK_ROOT:PATH=${AWSSDK_PATH} \
410424
"
411-
CEREAL_SYMBOLS=" -D TPL_ENABLE_Cereal:BOOL=${HAVE_CEREAL} \
425+
CEREAL_SYMBOLS=" -D TPL_ENABLE_Cereal:BOOL=${USE_CEREAL} \
412426
-D Cereal_INCLUDE_DIRS:PATH=${CEREAL_PATH}/include \
413427
"
414428
fi
415429

416-
if [ "$HAVE_FAODEL" == "YES" ]
430+
if [ "$USE_FAODEL" == "YES" ]
417431
then
418-
FAODEL_SYMBOLS=" -D TPL_ENABLE_Faodel:BOOL=${HAVE_FAODEL} \
432+
FAODEL_SYMBOLS=" -D TPL_ENABLE_Faodel:BOOL=${USE_FAODEL} \
419433
-D Faodel_ROOT:PATH=${FAODEL_PATH} \
420434
-D Faodel_INCLUDE_DIRS:PATH=${FAODEL_PATH}/include/faodel \
421435
"
422436
fi
423437

424-
if [ "$HAVE_ADIOS2" == "YES" ]
438+
if [ "$USE_ADIOS2" == "YES" ]
425439
then
426440
ADIOS2_SYMBOLS=" -D TPL_ENABLE_ADIOS2:BOOL=YES \
427441
-DTPL_ADIOS2_INCLUDE_DIRS:PATH=${ADIOS2_PATH}/include/ADIOS2 \
@@ -536,22 +550,22 @@ ${SUBSET_OPTIONS} \
536550
${EXTRA_LIB} \
537551
${MODERN_ARG} \
538552
\
539-
-D TPL_ENABLE_Netcdf:BOOL=${HAVE_NETCDF} \
540-
-D TPL_ENABLE_Matio:BOOL=${HAVE_MATIO} \
541-
-D TPL_ENABLE_CGNS:BOOL=${HAVE_CGNS} \
542-
-D TPL_ENABLE_ADIOS2:BOOL=${HAVE_ADIOS2} \
543-
-D TPL_ENABLE_Catalyst2:BOOL=${HAVE_CATALYST2} \
544-
-D TPL_ENABLE_GTest:BOOL=${HAVE_GTEST} \
545-
-D TPL_ENABLE_Catch2:BOOL=${HAVE_CATCH2} \
546-
-D TPL_ENABLE_Kokkos:BOOL=${HAVE_KOKKOS} \
547-
-D TPL_ENABLE_METIS:BOOL=${HAVE_METIS} \
548-
-D TPL_ENABLE_ParMETIS:BOOL=${HAVE_PARMETIS} \
553+
-D TPL_ENABLE_Netcdf:BOOL=${USE_NETCDF} \
554+
-D TPL_ENABLE_Matio:BOOL=${USE_MATIO} \
555+
-D TPL_ENABLE_CGNS:BOOL=${USE_CGNS} \
556+
-D TPL_ENABLE_ADIOS2:BOOL=${USE_ADIOS2} \
557+
-D TPL_ENABLE_Catalyst2:BOOL=${USE_CATALYST2} \
558+
-D TPL_ENABLE_GTest:BOOL=${USE_GTEST} \
559+
-D TPL_ENABLE_Catch2:BOOL=${USE_CATCH2} \
560+
-D TPL_ENABLE_Kokkos:BOOL=${USE_KOKKOS} \
561+
-D TPL_ENABLE_METIS:BOOL=${USE_METIS} \
562+
-D TPL_ENABLE_ParMETIS:BOOL=${USE_PARMETIS} \
549563
-D TPL_ENABLE_MPI:BOOL=${MPI} \
550564
-D TPL_ENABLE_Pamgen:BOOL=OFF \
551565
-D TPL_ENABLE_fmt:BOOL=ON \
552566
-D TPL_ENABLE_Pthread:BOOL=${THREADSAFE} \
553567
${THREAD_SAFE_OPT} \
554-
-D TPL_ENABLE_X11:BOOL=${HAVE_X11} \
568+
-D TPL_ENABLE_X11:BOOL=${USE_X11} \
555569
\
556570
-D SEACASExodus_ENABLE_THREADSAFE:BOOL=${THREADSAFE} \
557571
-D SEACASIoss_ENABLE_THREADSAFE:BOOL=${THREADSAFE} \
@@ -580,6 +594,15 @@ ${CEREAL_SYMBOLS} \
580594
$EXTRA_ARGS \
581595
${ACCESS}
582596

597+
function echo_if_enabled()
598+
{
599+
if [ "${1}" == "YES" ]; then
600+
echo -e "${1}\t\t${2}"
601+
else
602+
echo "${1}"
603+
fi
604+
}
605+
583606
echo ""
584607
echo " OS: ${OS}"
585608
echo " ACCESS: ${ACCESS}"
@@ -595,21 +618,20 @@ echo " BUILD_TYPE: ${BUILD_TYPE}"
595618
echo " THREADSAFE: ${THREADSAFE}"
596619
echo " CRAY: ${CRAY}"
597620
echo " "
598-
echo " NETCDF: ${HAVE_NETCDF}"
599-
echo " MATIO: ${HAVE_MATIO}"
600-
echo " CGNS: ${HAVE_CGNS}"
601-
echo " KOKKOS: ${HAVE_KOKKOS}"
602-
echo " ZOLTAN: ${ZOLTAN}"
603-
echo " ADIOS2: ${HAVE_ADIOS2}"
604-
echo " CATALYST2: ${HAVE_CATALYST2}"
605-
echo " METIS: ${HAVE_METIS}"
606-
echo " PARMETIS: ${HAVE_PARMETIS}"
607-
echo " FAODEL: ${HAVE_FAODEL}"
608-
echo " AWSSDK: ${HAVE_AWSSDK}"
609-
echo "AWSSDK_PATH: ${AWSSDK_PATH}"
610-
echo "CEREAL_PATH: ${CEREAL_PATH}"
611-
echo " GTEST: ${HAVE_GTEST}"
612-
echo " CATCH2: ${HAVE_CATCH2}"
621+
echo -e " NETCDF: $(echo_if_enabled ${USE_NETCDF} ${NETCDF_PATH})"
622+
echo -e " MATIO: $(echo_if_enabled ${USE_MATIO} ${MATIO_PATH})"
623+
echo -e " CGNS: $(echo_if_enabled ${USE_CGNS} ${CGNS_PATH})"
624+
echo -e " KOKKOS: $(echo_if_enabled ${USE_KOKKOS} ${KOKKOS_PATH})"
625+
echo -e " ZOLTAN: $(echo_if_enabled ${ZOLTAN} ${INSTALL_PATH})"
626+
echo -e " ADIOS2: $(echo_if_enabled ${USE_ADIOS2} ${ADIOS2_PATH})"
627+
echo -e " CATALYST2: $(echo_if_enabled ${USE_CATALYST2} ${CATALYST2_PATH})"
628+
echo -e " METIS: $(echo_if_enabled ${USE_METIS} ${METIS_PATH})"
629+
echo -e " PARMETIS: $(echo_if_enabled ${USE_PARMETIS} ${PARMETIS_PATH})"
630+
echo -e " FAODEL: $(echo_if_enabled ${USE_FAODEL} ${FAODEL_PATH})"
631+
echo -e " AWSSDK: $(echo_if_enabled ${USE_AWSSDK} ${AWSSDK_PATH})"
632+
echo -e " CEREAL: $(echo_if_enabled ${USE_CEREAL} ${CEREAL_PATH})"
633+
echo -e " GTEST: $(echo_if_enabled ${USE_GTEST} ${GTEST_PATH})"
634+
echo -e " CATCH2: $(echo_if_enabled ${USE_CATCH2} ${CATCH2_PATH})"
613635
echo " DOXYGEN: ${DOXYGEN}"
614636
if [ "$OSX_TARGET" != "" ] ; then
615637
echo " OSX_TARGET: ${OSX_TARGET}"

0 commit comments

Comments
 (0)