# SPDX-FileCopyrightText: Copyright © DuMux Project contributors, see AUTHORS.md in root folder
# SPDX-License-Identifier: CC0-1.0

GXX_RELEASE_WARNING_OPTS=" \
    -Wall \
    -Wunused \
    -Wmissing-include-dirs \
    -Wcast-align \
    -Wno-missing-braces \
    -Wmissing-field-initializers \
    -Wno-sign-compare"

GXX_RELEASE_OPTS=" \
    -fdiagnostics-color=always \
    -fno-strict-aliasing \
    -fstrict-overflow \
    -fno-finite-math-only \
    -DNDEBUG=1 \
    -O3 \
    -march=x86-64 \
    -mtune=generic \
    -funroll-loops \
    -g0"

SPECIFIC_COMPILER=""
# if you want to specify a specific compiler, do it by setting (comment the above line)
#SPECIFIC_COMPILER="
# -DCMAKE_C_COMPILER=/usr/bin/gcc-8
# -DCMAKE_CXX_COMPILER=/usr/bin/g++-8
#"

SPECIFIC_GENERATOR=""
# if you want to specify a specific make file generator (e.g. ninja), do it by setting (comment the above line)
#SPECIFIC_GENERATOR="
# -DCMAKE_GENERATOR='Ninja'
# -DCMAKE_MAKE_PROGRAM='/usr/bin/ninja'
#"

OPM_FLAGS=""
# to build opm it might be necessary to set manually the following variables (comment the above line)
#OPM_FLAGS="
#-DUSE_MPI=ON
#"

# set this to "ON" if you want to be able to have the headercheck target
DUMUX_ENABLE_HEADERCHECK=OFF

# DuMux Python bindings require shared libraries to be built for DuMux and upstream modules
DUMUX_ENABLE_PYTHON_BINDINGS="-DDUNE_ENABLE_PYTHONBINDINGS=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON"
#DUMUX_ENABLE_PYTHON_BINDINGS=""

# set multithreading backend, e.g. OpenMP,TBB,Cpp,Kokkos,Serial
# if left empty, it is automatically set by cmake
DUMUX_MULTITHREADING_BACKEND=""
#DUMUX_MULTITHREADING_BACKEND="-DDUMUX_MULTITHREADING_BACKEND=OpenMP"

# for debug opts you can set DCMAKE_BUILD_TYPE to "Debug" or "RelWithDebInfo"
# you can also do this in any of the CMakeLists.txt in Dumux
# just rerun cmake again afterwards (run cmake <path-to-build-dir>)

CMAKE_FLAGS="$SPECIFIC_COMPILER $SPECIFIC_GENERATOR $OPM_FLAGS
-DCMAKE_CXX_FLAGS_RELEASE='$GXX_RELEASE_OPTS $GXX_RELEASE_WARNING_OPTS'
-DCMAKE_CXX_FLAGS_DEBUG='-O0 -g -ggdb -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare'
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO='$GXX_RELEASE_OPTS $GXX_RELEASE_WARNING_OPTS -g -ggdb -Wall'
-DCMAKE_BUILD_TYPE=Release
-DENABLE_HEADERCHECK=$DUMUX_ENABLE_HEADERCHECK
$DUMUX_ENABLE_PYTHON_BINDINGS
$DUMUX_MULTITHREADING_BACKEND
"