From c012e995668e98f1de7791f571676e7ca7e53f20 Mon Sep 17 00:00:00 2001
From: Lars Bilke <lars.bilke@ufz.de>
Date: Wed, 14 Aug 2019 10:39:43 +0200
Subject: [PATCH] [cmake] format top-level.

---
 CMakeLists.txt | 202 ++++++++++++++++++++++++++++---------------------
 1 file changed, 115 insertions(+), 87 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 68f832c2f52..11db2ae63e1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,4 @@
-#####################
-### OGS-6 Project ###
-#####################
+# ---- OGS-6 Project ----
 
 # Specify minimum CMake version
 cmake_minimum_required(VERSION 3.12)
@@ -15,27 +13,27 @@ if(POLICY CMP0074)
     cmake_policy(SET CMP0074 NEW)
 endif()
 
-if(WIN32 AND
-    NOT ${CMAKE_GENERATOR} STREQUAL Ninja AND
-    NOT ${CMAKE_GENERATOR} MATCHES 2015) # does not work on 2015
-    # Force 64-bit VS compiler
+if(WIN32
+   AND NOT ${CMAKE_GENERATOR} STREQUAL Ninja
+   AND NOT ${CMAKE_GENERATOR} MATCHES 2015) # does not work on 2015 Force 64-bit
+                                            # VS compiler
     set(CMAKE_GENERATOR_TOOLSET host=x64)
 endif()
 
 # Project name
-project( OGS-6 )
+project(OGS-6)
 
 include(scripts/cmake/CMakeSetup.cmake)
 include(ParseCMakeArgs)
 include(CTest)
 
-###########################
-### Preliminary Options ###
-###########################
+# ---- Preliminary Options ----
 set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
 option(BUILD_SHARED_LIBS "Create shared libraries?" OFF)
-set(CMAKE_LIBRARY_SEARCH_PATH "" CACHE PATH
-    "Additional library installation path, e.g. /opt/local or C:/libs")
+set(CMAKE_LIBRARY_SEARCH_PATH
+    ""
+    CACHE PATH
+          "Additional library installation path, e.g. /opt/local or C:/libs")
 set(OGS_CPU_ARCHITECTURE "native" CACHE STRING "Processor architecture, \
     defaults to native (*nix) / blend (MSVC).")
 option(OGS_ENABLE_AVX2 "Enable the use of AVX2 instructions" OFF)
@@ -45,14 +43,24 @@ if(DEFINED CMAKE_CXX_CLANG_TIDY)
 endif()
 option(OGS_USE_CONAN "Should Conan package manager be used?" ON)
 set(OGS_CONAN_BUILD "missing" CACHE STRING "Possible values: all, missing, \
-    never or list of libs to build" )
+    never or list of libs to build")
 
 # Third-party libraries, names come from Conan package names
 set(OGS_LIBS
-    vtk boost eigen qt shapelib libgeotiff petsc lis cvode
+    vtk
+    boost
+    eigen
+    qt
+    shapelib
+    libgeotiff
+    petsc
+    lis
+    cvode
     CACHE INTERNAL "")
 foreach(LIB ${OGS_LIBS})
-    set(OGS_LIB_${LIB} "Default" CACHE STRING "Which ${LIB} library should be used?")
+    set(OGS_LIB_${LIB}
+        "Default"
+        CACHE STRING "Which ${LIB} library should be used?")
     set_property(CACHE OGS_LIB_${LIB} PROPERTY STRINGS "Default" "System")
 endforeach(LIB)
 
@@ -61,7 +69,7 @@ if(OGS_USE_PETSC)
 endif()
 option(OGS_USE_CVODE "Use the Sundials CVODE module?" OFF)
 
-### CMake includes ###
+# ---- CMake includes ----
 include(PreFind)
 include(CheckTypeSizes)
 include(Functions)
@@ -78,13 +86,12 @@ if(OGS_COVERAGE AND NOT IS_SUBPROJECT)
 endif()
 include(CppCheck)
 
-####################
-### More Options ###
-####################
+# ---- More Options ----
 
 # Profiling
 if((CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) AND GPROF_PATH)
-    option(OGS_PROFILE "Enables compiling with flags set for profiling with gprof." OFF)
+    option(OGS_PROFILE
+           "Enables compiling with flags set for profiling with gprof." OFF)
 endif() # GCC AND GPROF_PATH
 
 # Enable / Disable parts
@@ -99,11 +106,10 @@ endif()
 option(OGS_BUILD_UTILS "Should the utilities programms be built?" OFF)
 if(OGS_BUILD_UTILS AND OGS_USE_MPI)
     message(WARNING "OGS_BUILD_UTILS cannot be used with OGS_USE_MPI "
-        "(OGS_USE_PETSC)! Disabling OGS_BUILD_UTILS.")
+                    "(OGS_USE_PETSC)! Disabling OGS_BUILD_UTILS.")
     set(OGS_BUILD_UTILS OFF CACHE BOOL "" FORCE)
 endif()
 
-
 # A list of processes to be build. Also used in the ProcessLib to select
 # processes to be build.
 set(ProcessesList
@@ -134,12 +140,17 @@ foreach(process ${ProcessesList})
     option(OGS_BUILD_PROCESS_${process} "Build the ${process} process." ON)
 endforeach()
 
-set(OGS_BUILD_PROCESSES "" CACHE STRING "Semicolon-separated list of processes to build")
+set(OGS_BUILD_PROCESSES
+    ""
+    CACHE STRING "Semicolon-separated list of processes to build")
 if(NOT "${OGS_BUILD_PROCESSES}" STREQUAL "")
     foreach(process ${OGS_BUILD_PROCESSES})
         if(NOT "${process}" IN_LIST ProcessesList)
-            message(FATAL_ERROR "${process} given in OGS_BUILD_PROCESSES is "
-                "not a valid process name! Valid names are ${ProcessesList}")
+            message(
+                FATAL_ERROR
+                    "${process} given in OGS_BUILD_PROCESSES is "
+                    "not a valid process name! Valid names are ${ProcessesList}"
+                )
         endif()
     endforeach()
     message(STATUS "Enabled processes:")
@@ -177,41 +188,49 @@ option(OGS_USE_EIGEN_UNSUPPORTED "Use Eigen unsupported modules" ON)
 option(OGS_EIGEN_INITIALIZE_MATRICES_BY_NAN "" ON)
 option(EIGEN_NO_DEBUG "Disables Eigen's assertions" OFF)
 
-# We assume that it's save to use vectorization with Eigen < 3.3 (strictly smaller than 3.3.!).
-# At least we only observed vectorization issues with Eigen 3.3.x.
-# If you want to use Eigen vectorization, make sure that you run all the ctests several times, e.g.:
-# $ ctest --repeat-until-fail 50
-# You might also want to take a look at https://github.com/ufz/ogs/issues/1881.
+# We assume that it's save to use vectorization with Eigen < 3.3 (strictly
+# smaller than 3.3.!). At least we only observed vectorization issues with Eigen
+# 3.3.x. If you want to use Eigen vectorization, make sure that you run all the
+# ctests several times, e.g.: $ ctest --repeat-until-fail 50 You might also want
+# to take a look at https://github.com/ufz/ogs/issues/1881.
 option(EIGEN_DONT_VECTORIZE "Disables explicit vectorization when defined." ON)
 
-set(OGS_EIGEN_DYNAMIC_SHAPE_MATRICES "Default" CACHE STRING "Use dynamically allocated shape matrices")
+set(OGS_EIGEN_DYNAMIC_SHAPE_MATRICES
+    "Default"
+    CACHE STRING "Use dynamically allocated shape matrices")
 set_property(CACHE OGS_EIGEN_DYNAMIC_SHAPE_MATRICES
-             PROPERTY STRINGS "Default" "ON" "OFF")
+             PROPERTY STRINGS
+                      "Default"
+                      "ON"
+                      "OFF")
 
 if(OGS_EIGEN_DYNAMIC_SHAPE_MATRICES STREQUAL "Default")
-    if(CMAKE_BUILD_TYPE STREQUAL "Release" OR
-        CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
+    if(CMAKE_BUILD_TYPE STREQUAL "Release"
+       OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
         set(OGS_EIGEN_DYNAMIC_SHAPE_MATRICES_INTERNAL OFF)
     else()
         set(OGS_EIGEN_DYNAMIC_SHAPE_MATRICES_INTERNAL ON)
     endif()
 else()
-    set(OGS_EIGEN_DYNAMIC_SHAPE_MATRICES_INTERNAL ${OGS_EIGEN_DYNAMIC_SHAPE_MATRICES})
+    set(OGS_EIGEN_DYNAMIC_SHAPE_MATRICES_INTERNAL
+        ${OGS_EIGEN_DYNAMIC_SHAPE_MATRICES})
 endif()
 
 # MKL
 option(OGS_USE_MKL "Use Intel MKL" OFF)
 
 # Logging
-set(OGS_LOG_LEVEL "LOGOG_LEVEL_DEBUG" CACHE STRING "Set logging level included in compilation.")
-set_property(CACHE OGS_LOG_LEVEL PROPERTY STRINGS
-    LOGOG_LEVEL_NONE
-    LOGOG_LEVEL_ERROR
-    LOGOG_LEVEL_WARN
-    LOGOG_LEVEL_INFO
-    LOGOG_LEVEL_DEBUG
-    LOGOG_LEVEL_ALL
-)
+set(OGS_LOG_LEVEL
+    "LOGOG_LEVEL_DEBUG"
+    CACHE STRING "Set logging level included in compilation.")
+set_property(CACHE OGS_LOG_LEVEL
+             PROPERTY STRINGS
+                      LOGOG_LEVEL_NONE
+                      LOGOG_LEVEL_ERROR
+                      LOGOG_LEVEL_WARN
+                      LOGOG_LEVEL_INFO
+                      LOGOG_LEVEL_DEBUG
+                      LOGOG_LEVEL_ALL)
 
 # Debug
 option(OGS_FATAL_ABORT "Abort in OGS_FATAL" OFF)
@@ -221,36 +240,44 @@ set(OGS_CXX_FLAGS "" CACHE STRING "Additional C++ compiler flags.")
 option(STL_NO_DEBUG "Disable STL debug in debug build" OFF)
 
 # Print CMake variable values
-if (OGS_CMAKE_DEBUG)
+if(OGS_CMAKE_DEBUG)
     include(ListAllCMakeVariableValues)
     list_all_cmake_variable_values()
-endif ()
+endif()
 
 # Code coverage
 option(OGS_COVERAGE "Enables code coverage measurements with gcov/lcov." OFF)
 
-option(OGS_SYNC_SUBMODULES "Sync git submodules on CMake run. Overwrites custom URLs!" ON)
+option(OGS_SYNC_SUBMODULES
+       "Sync git submodules on CMake run. Overwrites custom URLs!" ON)
 
 # Options controlling which FEM elements will be compiled
-set(OGS_MAX_ELEMENT_DIM   3 CACHE STRING "Maximum dimension of FEM elements to be built.")
-set(OGS_MAX_ELEMENT_ORDER 2 CACHE STRING "Maximum order of FEM elements to be built.")
-option(OGS_ENABLE_ELEMENT_SIMPLEX "Build FEM elements for simplices (triangles, tetrahedra)." ON)
-option(OGS_ENABLE_ELEMENT_CUBOID  "Build FEM elements for cuboids (quads, hexahedra)." ON)
-option(OGS_ENABLE_ELEMENT_PRISM   "Build FEM elements for prisms." ON)
+set(OGS_MAX_ELEMENT_DIM
+    3
+    CACHE STRING "Maximum dimension of FEM elements to be built.")
+set(OGS_MAX_ELEMENT_ORDER
+    2
+    CACHE STRING "Maximum order of FEM elements to be built.")
+option(OGS_ENABLE_ELEMENT_SIMPLEX
+       "Build FEM elements for simplices (triangles, tetrahedra)." ON)
+option(OGS_ENABLE_ELEMENT_CUBOID
+       "Build FEM elements for cuboids (quads, hexahedra)." ON)
+option(OGS_ENABLE_ELEMENT_PRISM "Build FEM elements for prisms." ON)
 option(OGS_ENABLE_ELEMENT_PYRAMID "Build FEM elements for pyramids." ON)
 
-option(OGS_CHECK_HEADER_COMPILATION "Check header for standalone compilation." OFF)
+option(OGS_CHECK_HEADER_COMPILATION "Check header for standalone compilation."
+       OFF)
 
 option(OGS_USE_PYTHON "Interface with Python" OFF)
 if(OGS_USE_PYTHON AND NOT Python_FOUND)
     message(FATAL_ERROR "Python not found but required for OGS_USE_PYTHON=ON!")
 endif()
 
-option(OGS_USE_MFRONT "Enable solid material models by MFront (https://tfel.sourceforge.net)" OFF)
+option(OGS_USE_MFRONT
+       "Enable solid material models by MFront (https://tfel.sourceforge.net)"
+       OFF)
 
-###################
-### Definitions ###
-###################
+# ---- Definitions ----
 if(OGS_USE_LIS)
     add_definitions(-DUSE_LIS)
     include_directories(SYSTEM ${LIS_INCLUDE_DIR})
@@ -276,11 +303,11 @@ if(CMAKE_BUILD_TYPE STREQUAL "Debug")
     add_definitions(-DEIGEN_INITIALIZE_MATRICES_BY_NAN)
 endif()
 
-if (EIGEN_NO_DEBUG)
+if(EIGEN_NO_DEBUG)
     add_definitions(-DEIGEN_NO_DEBUG)
 endif()
 
-if (EIGEN_DONT_VECTORIZE)
+if(EIGEN_DONT_VECTORIZE)
     add_definitions(-DEIGEN_DONT_VECTORIZE)
 endif()
 
@@ -302,7 +329,7 @@ if(MSVC AND OGS_32_BIT)
 endif()
 # End Eigen
 
-if (OGS_FATAL_ABORT)
+if(OGS_FATAL_ABORT)
     add_definitions(-DOGS_FATAL_ABORT)
 endif()
 
@@ -310,12 +337,12 @@ endif()
 add_definitions(-DLOGOG_LEVEL=${OGS_LOG_LEVEL})
 
 # Packaging
-option(OGS_DOWNLOAD_ADDITIONAL_CONTENT "Should additional content such as manuals be downloaded and packaged?" OFF)
+option(OGS_DOWNLOAD_ADDITIONAL_CONTENT
+       "Should additional content such as manuals be downloaded and packaged?"
+       OFF)
 include(scripts/cmake/packaging/Pack.cmake)
 
-######################
-### Subdirectories ###
-######################
+# ---- Subdirectories ----
 
 # External projects
 if(OGS_INSITU)
@@ -323,33 +350,34 @@ if(OGS_INSITU)
     add_definitions(-DUSE_INSITU)
 endif()
 
-
 # Add subdirectories with the projects
-add_subdirectory( ThirdParty )
-include_directories( SYSTEM ${CMAKE_CURRENT_SOURCE_DIR}/ThirdParty )
-include_directories( SYSTEM ${CMAKE_CURRENT_SOURCE_DIR}/ThirdParty/googletest/googletest/include )
-include_directories( SYSTEM ${CMAKE_CURRENT_SOURCE_DIR}/ThirdParty/autocheck/include )
-include_directories( SYSTEM ${CMAKE_CURRENT_SOURCE_DIR}/ThirdParty/tclap/include )
-include_directories( SYSTEM ${CMAKE_CURRENT_SOURCE_DIR}/ThirdParty/json/include )
-include_directories( SYSTEM ${CMAKE_CURRENT_SOURCE_DIR}/ThirdParty/exprtk )
+add_subdirectory(ThirdParty)
+include_directories(
+    SYSTEM
+    ${CMAKE_CURRENT_SOURCE_DIR}/ThirdParty
+    ${CMAKE_CURRENT_SOURCE_DIR}/ThirdParty/googletest/googletest/include
+    ${CMAKE_CURRENT_SOURCE_DIR}/ThirdParty/autocheck/include
+    ${CMAKE_CURRENT_SOURCE_DIR}/ThirdParty/tclap/include
+    ${CMAKE_CURRENT_SOURCE_DIR}/ThirdParty/json/include
+    ${CMAKE_CURRENT_SOURCE_DIR}/ThirdParty/exprtk)
 
 include(scripts/cmake/CheckHeaderCompilation.cmake)
 
-add_subdirectory( Applications )
-add_subdirectory( BaseLib )
-add_subdirectory( GeoLib )
-add_subdirectory( MathLib )
-add_subdirectory( MeshLib )
-add_subdirectory( MeshGeoToolsLib )
-add_subdirectory( NumLib )
-add_subdirectory( ChemistryLib )
+add_subdirectory(Applications)
+add_subdirectory(BaseLib)
+add_subdirectory(GeoLib)
+add_subdirectory(MathLib)
+add_subdirectory(MeshLib)
+add_subdirectory(MeshGeoToolsLib)
+add_subdirectory(NumLib)
+add_subdirectory(ChemistryLib)
 if(OGS_BUILD_CLI OR OGS_BUILD_UTILS OR BUILD_TESTING)
-    add_subdirectory( ParameterLib )
-    add_subdirectory( MaterialLib )
-    add_subdirectory( ProcessLib )
+    add_subdirectory(ParameterLib)
+    add_subdirectory(MaterialLib)
+    add_subdirectory(ProcessLib)
 endif()
-if( BUILD_TESTING AND NOT IS_SUBPROJECT )
-    add_subdirectory( Tests )
+if(BUILD_TESTING AND NOT IS_SUBPROJECT)
+    add_subdirectory(Tests)
 endif()
 
 file(WRITE ${PROJECT_BINARY_DIR}/disabled-tests.log "${DISABLED_TESTS_LOG}")
@@ -357,7 +385,7 @@ unset(DISABLED_TESTS_LOG CACHE) # Don't write to CMakeCache.txt
 
 # The configuration must be called from the source dir and not BaseLib/.
 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/BaseLib/BuildInfo.cpp.in"
-    "${CMAKE_CURRENT_BINARY_DIR}/BaseLib/BuildInfo.cpp" @ONLY)
+               "${CMAKE_CURRENT_BINARY_DIR}/BaseLib/BuildInfo.cpp" @ONLY)
 
 check_header_compilation()
 
-- 
GitLab