diff --git a/.cmake-format.yaml b/.cmake-format.yaml
index 0c4294e388e556b8c32dc630cf08281c8e50ed3a..f99527b3adacfd488decf4eb9050740226995134 100644
--- a/.cmake-format.yaml
+++ b/.cmake-format.yaml
@@ -3,6 +3,10 @@ format:
   max_subgroups_hwrap: 3
   dangle_parens: true
   command_case: "unchanged"
+lint:
+  disabled_codes:
+  - "C0301"
+  - "C0113"
 
 parse:
   additional_commands:
diff --git a/Applications/CMakeLists.txt b/Applications/CMakeLists.txt
index c731e6e48d889da77ced75bd5908be439d3b576b..5c5757c3b114d38dbd771974514c7c72562297a0 100644
--- a/Applications/CMakeLists.txt
+++ b/Applications/CMakeLists.txt
@@ -2,11 +2,11 @@ add_subdirectory(ApplicationsLib)
 add_subdirectory(DataHolderLib)
 add_subdirectory(FileIO)
 
-if(OGS_BUILD_UTILS AND NOT IS_SUBPROJECT)
+if(OGS_BUILD_UTILS AND NOT _IS_SUBPROJECT)
     add_subdirectory(Utils)
 elseif(OGS_BUILD_GUI)
     add_subdirectory(Utils/OGSFileConverter)
-endif() # OGS_BUILD_UTILS AND NOT IS_SUBPROJECT
+endif() # OGS_BUILD_UTILS AND NOT _IS_SUBPROJECT
 
 if(OGS_BUILD_GUI)
     add_subdirectory(DataExplorer)
diff --git a/Applications/DataExplorer/VtkVis/CMakeLists.txt b/Applications/DataExplorer/VtkVis/CMakeLists.txt
index 9d631187492a239c94e1325a4b6bdec817228e8a..7d7d42ad4d5da697faee33107f01057b2274d9e1 100644
--- a/Applications/DataExplorer/VtkVis/CMakeLists.txt
+++ b/Applications/DataExplorer/VtkVis/CMakeLists.txt
@@ -154,7 +154,7 @@ if(OGS_USE_NETCDF)
     if(NOT OGS_USE_CONAN)
         target_include_directories(VtkVis SYSTEM
                                    PUBLIC ${NETCDF_INCLUDES_C}
-                                   PUBLIC ${NETCDF_INCLUDES_CXX})
+                                          ${NETCDF_INCLUDES_CXX})
     endif()
 endif()
 
diff --git a/Applications/Utils/MeshEdit/CMakeLists.txt b/Applications/Utils/MeshEdit/CMakeLists.txt
index 8155924cf64ef97f786dc283ea9148c8b5d328b8..ae507cab6c9e33971212e7df4c2390793fc374c3 100644
--- a/Applications/Utils/MeshEdit/CMakeLists.txt
+++ b/Applications/Utils/MeshEdit/CMakeLists.txt
@@ -35,9 +35,9 @@ if(OGS_BUILD_GUI)
     install(TARGETS RemoveGhostData RUNTIME DESTINATION bin)
 endif()
 
-foreach(TOOL ${TOOLS})
-    add_executable(${TOOL} ${TOOL}.cpp)
-    target_link_libraries(${TOOL} GitInfoLib MeshLib tclap)
+foreach(tool ${TOOLS})
+    add_executable(${tool} ${tool}.cpp)
+    target_link_libraries(${tool} GitInfoLib MeshLib tclap)
 endforeach()
 set_target_properties(${TOOLS} PROPERTIES FOLDER Utilities)
 install(TARGETS ${TOOLS} RUNTIME DESTINATION bin)
diff --git a/Applications/Utils/Tests.cmake b/Applications/Utils/Tests.cmake
index cb08f5a929c00381be6b689935adb1548cf9100a..83b49f6623639065c04fe2f8835830ad942280b3 100644
--- a/Applications/Utils/Tests.cmake
+++ b/Applications/Utils/Tests.cmake
@@ -484,13 +484,12 @@ if(TARGET VerticalSliceFromLayers AND GMSH)
 
 endif()
 
-
 if(TARGET GMSH2OGS AND SNAKEMAKE AND NOT OGS_USE_MPI)
     add_test(NAME snakemake_GMSH2OGS_ExtractBoundary
         COMMAND ${SNAKEMAKE} --cores all
         --configfile ${PROJECT_BINARY_DIR}/buildinfo.yaml
         -s ${CMAKE_CURRENT_SOURCE_DIR}/GMSH2OGS_ExtractBoundary.smk
-        )
+    )
     add_dependencies(ctest GMSH2OGS)
 endif()
 
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6172d66c6ac31d065651ae38c65b927724ec0baf..eef1d1417227bbf8fa7754977521c3384ce25251 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -49,18 +49,12 @@ if(NOT WIN32 AND OGS_BUILD_SWMM)
 endif()
 
 # Third-party libraries, names come from Conan package names
-set(OGS_LIBS
-    vtk
-    qt
-    petsc
-    tfel
-    CACHE INTERNAL "")
-foreach(LIB ${OGS_LIBS})
-    set(OGS_LIB_${LIB}
+foreach(lib vtk qt petsc tfel)
+    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)
+    set_property(CACHE OGS_LIB_${lib} PROPERTY STRINGS "Default" "System")
+endforeach()
 
 if(OGS_USE_PETSC)
     set(OGS_USE_MPI ON CACHE BOOL "Use MPI" FORCE)
@@ -84,7 +78,7 @@ include(CCacheSetup)
 include(CLCacheSetup)
 include(DocumentationSetup)
 include(test/Test)
-if(OGS_COVERAGE AND NOT IS_SUBPROJECT)
+if(OGS_COVERAGE AND NOT _IS_SUBPROJECT)
     include(Coverage)
 endif()
 include(CppCheck)
@@ -168,10 +162,10 @@ option(OGS_ENABLE_ELEMENT_CUBOID
 option(OGS_ENABLE_ELEMENT_PRISM "Build FEM elements for prisms." ON)
 option(OGS_ENABLE_ELEMENT_PYRAMID "Build FEM elements for pyramids." ON)
 if(NOT OGS_MAX_ELEMENT_DIM MATCHES "^[0-3]$")
-  message(FATAL_ERROR "OGS_MAX_ELEMENT_DIM must be an integer between 0 and 3.")
+    message(FATAL_ERROR "OGS_MAX_ELEMENT_DIM must be an integer between 0 and 3.")
 endif()
 if(NOT OGS_MAX_ELEMENT_ORDER MATCHES "^[0-9]$")
-  message(FATAL_ERROR "OGS_MAX_ELEMENT_ORDER must be an integer.")
+    message(FATAL_ERROR "OGS_MAX_ELEMENT_ORDER must be an integer.")
 endif()
 
 option(OGS_CHECK_HEADER_COMPILATION "Check header for standalone compilation."
@@ -240,7 +234,7 @@ if(OGS_BUILD_CLI OR OGS_BUILD_UTILS OR OGS_BUILD_TESTING)
     add_subdirectory(MaterialLib)
     add_subdirectory(ProcessLib)
 endif()
-if(OGS_BUILD_TESTING AND NOT IS_SUBPROJECT)
+if(OGS_BUILD_TESTING AND NOT _IS_SUBPROJECT)
     add_subdirectory(Tests)
 endif()
 
diff --git a/Documentation/README.txt.in b/Documentation/README.txt.in
index 51e7b59760ccb63a3d86e3ed1b3a7cb19d72395a..839ff9383f013b0b688213867e2e98e289b58f3e 100644
--- a/Documentation/README.txt.in
+++ b/Documentation/README.txt.in
@@ -3,4 +3,4 @@ OGS binary package usage
 
 Start the appropriate executable in the *bin*-folder.
 
-@README_PLATFORM_INSTRUCTIONS@
+@_README_PLATFORM_INSTRUCTIONS@
diff --git a/ProcessLib/ComponentTransport/Tests.cmake b/ProcessLib/ComponentTransport/Tests.cmake
index 4b67ec1bd8beec830a69ae1799274931bb6a762c..feea80778882345875c347e0f23154a6c76e283d 100644
--- a/ProcessLib/ComponentTransport/Tests.cmake
+++ b/ProcessLib/ComponentTransport/Tests.cmake
@@ -883,7 +883,6 @@ AddTest(
     VIS out_ogs5_H_ts_1_t_10000000.000000.vtu
 )
 
-
 AddTest(
     NAME 1D_ComponentTransport_VariableDependentBoundary
     PATH Parabolic/ComponentTransport/VariableNeumannBoundary
diff --git a/ProcessLib/HT/Tests.cmake b/ProcessLib/HT/Tests.cmake
index a1d14b54c0bd34699672065bc685ec72df349e1c..7f37d9d44094378f76dbd4c53a3ec65f250f2ebd 100644
--- a/ProcessLib/HT/Tests.cmake
+++ b/ProcessLib/HT/Tests.cmake
@@ -60,7 +60,6 @@ AddTest(
     VIS IsothermalFluidFlow_ts_1_t_1.000000.vtu
 )
 
-
 AddTest(
     NAME HT_SimpleSynthetics_PressureParabolicTemperatureParabolic
     PATH Parabolic/HT/SimpleSynthetics
@@ -276,7 +275,6 @@ AddTest(
     VIS IsothermalFluidFlowWithGravityStaggered_ts_1_t_1.000000.vtu
 )
 
-
 AddTest(
     NAME HT_SimpleSynthetics_PressureParabolicTemperatureParabolicStaggered
     PATH Parabolic/HT/SimpleSynthetics
diff --git a/ProcessLib/HeatTransportBHE/Tests.cmake b/ProcessLib/HeatTransportBHE/Tests.cmake
index c8a760ecfa5cba62a6add650af67a226102a8a98..1014e8a7cab11029c70662e7d211c7ea6e71d9ac 100644
--- a/ProcessLib/HeatTransportBHE/Tests.cmake
+++ b/ProcessLib/HeatTransportBHE/Tests.cmake
@@ -1,7 +1,6 @@
 AddTest(
     NAME HeatTransportBHE_1U_3D_beier_sandbox
     PATH Parabolic/T/3D_Beier_sandbox
-    RUNTIME 15
     EXECUTABLE ogs
     EXECUTABLE_ARGS beier_sandbox.prj
     WRAPPER time
diff --git a/ProcessLib/LiquidFlow/Tests.cmake b/ProcessLib/LiquidFlow/Tests.cmake
index a354ea7ce8abe1b39183f040f24e9e5e8bbdf733..9f3da7165b60d70828248473a83f25c4d9db27d9 100644
--- a/ProcessLib/LiquidFlow/Tests.cmake
+++ b/ProcessLib/LiquidFlow/Tests.cmake
@@ -27,7 +27,6 @@ if (NOT OGS_USE_MPI)
     OgsTest(PROJECTFILE Parabolic/LiquidFlow/DrainageExcavation/drainage_LiquidFlow.prj)
 endif()
 
-
 AddTest(
     NAME LiquidFlow_GravityDriven
     PATH Parabolic/LiquidFlow/GravityDriven
diff --git a/ProcessLib/RichardsMechanics/Tests.cmake b/ProcessLib/RichardsMechanics/Tests.cmake
index 71cfbb056d52ff7acdcd77ed66da9543b86ac542..9d9e36b35a44530669515a0c6c553905159d4080 100644
--- a/ProcessLib/RichardsMechanics/Tests.cmake
+++ b/ProcessLib/RichardsMechanics/Tests.cmake
@@ -23,8 +23,6 @@ if (NOT OGS_USE_MPI)
     OgsTest(PROJECTFILE RichardsMechanics/LiakopoulosHM/liakopoulos_QN.prj RUNTIME 50)
 endif()
 
-
-
 AddTest(
     NAME RichardsMechanics_square_1e2_confined_compression_restart
     PATH RichardsMechanics
diff --git a/ProcessLib/ThermoMechanics/Tests.cmake b/ProcessLib/ThermoMechanics/Tests.cmake
index 3dc844d40f6b4acf43a5c5f2c0e87a994d7a9cd9..14909bd0372864a14f73b2eec8d7b666028a53db 100644
--- a/ProcessLib/ThermoMechanics/Tests.cmake
+++ b/ProcessLib/ThermoMechanics/Tests.cmake
@@ -139,7 +139,6 @@ AddTest(
     WRAPPER time
     TESTER vtkdiff
     REQUIREMENTS NOT (OGS_USE_LIS OR OGS_USE_MPI)
-    RUNTIME 17
     DIFF_DATA
     tm1_3Dsquare_ts_1_t_1.000000.vtu tm1_3Dsquare_ts_1_t_1.000000.vtu temperature temperature 1e-11 0.0
     tm1_3Dsquare_ts_1_t_1.000000.vtu tm1_3Dsquare_ts_1_t_1.000000.vtu displacement displacement 1e-10 0.0
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 5dc0d9b76b4d0e7cb886ec9ce4ef76591831996d..7dc25988a37f49b87dd816629382a8682108e3e5 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -99,7 +99,7 @@ endif()
 
 # cmake-format: off
 # Add make-target tests which runs the testrunner
-if(IS_CI AND NOT OGS_COVERAGE)
+if(DEFINED ENV{CI} AND NOT OGS_COVERAGE)
     set(OGS_CI_TESTRUNNER_REPEAT 3 CACHE STRING
         "The number of testrunner repeats for the tests target")
     set(TESTRUNNER_ADDITIONAL_ARGUMENTS ${TESTRUNNER_ADDITIONAL_ARGUMENTS}
diff --git a/scripts/cmake/CMakeSetup.cmake b/scripts/cmake/CMakeSetup.cmake
index 0d13896d8577a16d73c726d986a8ee0566ffdd4d..e84f88e1fc463e56b6a344245319443ac2529e7e 100644
--- a/scripts/cmake/CMakeSetup.cmake
+++ b/scripts/cmake/CMakeSetup.cmake
@@ -1,9 +1,9 @@
 # Disallow in-source builds as the git project cluttered with generated files
 # probably confuses people. source/build* is still allowed!
 if("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}")
-   message(FATAL_ERROR "In-source builds are not allowed!\n"
-    "Make sure to remove CMakeCache.txt and CMakeFiles/ "
-    "from the source directory!")
+    message(FATAL_ERROR "In-source builds are not allowed!\n"
+        "Make sure to remove CMakeCache.txt and CMakeFiles/ "
+        "from the source directory!")
 endif()
 
 # Set additional CMake modules path
@@ -33,7 +33,7 @@ set(NUM_PROCESSORS ${NUM_PROCESSORS} CACHE STRING "Processor count")
 
 # Check if this project is included in another
 if(NOT PROJECT_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
-    set(IS_SUBPROJECT ON CACHE INTERNAL "" FORCE)
+    set(_IS_SUBPROJECT ON CACHE INTERNAL "" FORCE)
     set(OGS_BUILD_CLI OFF CACHE BOOL "" FORCE)
 endif()
 
@@ -48,11 +48,6 @@ endif()
 # Get the hostname
 site_name(HOSTNAME)
 
-# Check if we are running under CI
-if(DEFINED ENV{JENKINS_URL} OR DEFINED ENV{CI})
-    set(IS_CI ON CACHE INTERNAL "")
-endif()
-
 if(BUILD_SHARED_LIBS)
     # When static libraries are used in some shared libraries it is required
     # that also the static libraries have position independent code.
diff --git a/scripts/cmake/ConanSetup.cmake b/scripts/cmake/ConanSetup.cmake
index 9b97ed7b29c59472ae1b453100839deb2a69dd94..65b619bf2caa51a2c71070c7483a69ba06667176 100644
--- a/scripts/cmake/ConanSetup.cmake
+++ b/scripts/cmake/ConanSetup.cmake
@@ -129,7 +129,7 @@ file(TIMESTAMP ${PROJECT_BINARY_DIR}/conan_install_timestamp.txt file_timestamp
 string(TIMESTAMP timestamp "%Y.%m.%d")
 
 # Run conan install update only once a day
-if("${file_timestamp}" VERSION_LESS ${timestamp} OR IS_CI)
+if("${file_timestamp}" VERSION_LESS ${timestamp} OR DEFINED ENV{CI})
     file(WRITE ${PROJECT_BINARY_DIR}/conan_install_timestamp.txt "${timestamp}\n")
     set(CONAN_UPDATE UPDATE)
     set(CONAN_COMMAND ${CONAN_CMD} CACHE INTERNAL "") # Speed up conan_add_remote
diff --git a/scripts/cmake/Find.cmake b/scripts/cmake/Find.cmake
index 1a2e1f2ba0a2bbfafbbd5368285c1a6306bf70d8..fad0363838c0f60cd333b41830a1f233682c900a 100644
--- a/scripts/cmake/Find.cmake
+++ b/scripts/cmake/Find.cmake
@@ -89,6 +89,7 @@ if(OGS_USE_MFRONT)
         add_definitions(-DHAVE_PTHREADS)
     endif()
     if(OGS_USE_CONAN)
+        # cmake-lint: disable=C0103
         set(TFELHOME ${CONAN_TFEL_ROOT} CACHE INTERNAL "")
     endif()
 endif()
diff --git a/scripts/cmake/Functions.cmake b/scripts/cmake/Functions.cmake
index d2bd612b2250af213b6506fd2c4116fa344d2021..019e9c6d46cf3c2239a6e89099b53cc7aa208fb9 100644
--- a/scripts/cmake/Functions.cmake
+++ b/scripts/cmake/Functions.cmake
@@ -1,12 +1,12 @@
 # Returns the current subdirectory in the sources directory.
-macro(GET_CURRENT_SOURCE_SUBDIRECTORY CURRENT_SOURCE_SUBDIRECTORY)
+macro(GET_CURRENT_SOURCE_SUBDIRECTORY current_source_subdirectory)
     string(REGEX REPLACE ".*/([^/]*)" "\\1" REGEX_RESULT "${CMAKE_CURRENT_SOURCE_DIR}" )
-    set(${CURRENT_SOURCE_SUBDIRECTORY} ${REGEX_RESULT})
+    set(${current_source_subdirectory} ${REGEX_RESULT})
 endmacro()
 
-# Returns a list of source files (*.h and *.cpp) in SOURCE_FILES and creates a Visual
+# Returns a list of source files (*.h and *.cpp) in source_files and creates a Visual
 # Studio folder. A (relative) subdirectory can be passed as second parameter (optional).
-macro(GET_SOURCE_FILES SOURCE_FILES)
+macro(GET_SOURCE_FILES source_files)
     if(${ARGC} EQUAL 2)
         set(DIR "${ARGV1}")
     else()
@@ -18,8 +18,8 @@ macro(GET_SOURCE_FILES SOURCE_FILES)
     file(GLOB GET_SOURCE_FILES_TEMPLATES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS ${DIR}/*.tpp)
     file(GLOB GET_SOURCE_FILES_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS ${DIR}/*.cpp)
 
-    set(${SOURCE_FILES} ${GET_SOURCE_FILES_HEADERS} ${GET_SOURCE_FILES_TEMPLATES} ${GET_SOURCE_FILES_SOURCES})
-    list(LENGTH ${SOURCE_FILES} NUM_FILES)
+    set(${source_files} ${GET_SOURCE_FILES_HEADERS} ${GET_SOURCE_FILES_TEMPLATES} ${GET_SOURCE_FILES_SOURCES})
+    list(LENGTH ${source_files} NUM_FILES)
     if(${NUM_FILES} EQUAL 0)
         message(FATAL_ERROR "No source files found in ${DIR}")
     endif()
@@ -40,9 +40,9 @@ macro(GET_SOURCE_FILES SOURCE_FILES)
 
 endmacro()
 
-# Appends a list of source files (*.h and *.cpp) to SOURCE_FILES and creates a Visual
+# Appends a list of source files (*.h and *.cpp) to source_files and creates a Visual
 # Studio folder. A (relative) subdirectory can be passed as second parameter (optional).
-macro(APPEND_SOURCE_FILES SOURCE_FILES)
+macro(APPEND_SOURCE_FILES source_files)
     if(${ARGC} EQUAL 2)
         set(DIR "${ARGV1}")
     else()
@@ -50,7 +50,7 @@ macro(APPEND_SOURCE_FILES SOURCE_FILES)
     endif()
 
     GET_SOURCE_FILES(TMP_SOURCES "${DIR}")
-    set(${SOURCE_FILES} ${${SOURCE_FILES}} ${TMP_SOURCES})
+    set(${source_files} ${${source_files}} ${TMP_SOURCES})
 endmacro()
 
 # Creates one ctest for each googletest found in source files passed as arguments
@@ -79,6 +79,7 @@ function(add_autogen_include target)
     endif()
 endfunction()
 
+# Replacement for add_library() for ogs targets
 function(ogs_add_library targetName)
     add_library(${targetName} ${ARGN})
     target_compile_options(${targetName} PRIVATE
@@ -104,6 +105,7 @@ function(ogs_add_library targetName)
     endif()
 endfunction()
 
+# Parses current directory into a list
 function(current_dir_as_list baseDir outList)
     file(RELATIVE_PATH REL_DIR ${PROJECT_SOURCE_DIR}/${baseDir} ${CMAKE_CURRENT_LIST_DIR})
     string(REPLACE "/" ";" DIR_LIST ${REL_DIR})
diff --git a/scripts/cmake/ProcessesSetup.cmake b/scripts/cmake/ProcessesSetup.cmake
index 86d103a33017ba99de836db58b6c2120ae842492..9d3d015e40130ff14b26547091a496a6ec2f2266 100644
--- a/scripts/cmake/ProcessesSetup.cmake
+++ b/scripts/cmake/ProcessesSetup.cmake
@@ -1,6 +1,6 @@
 # A list of processes to be build. Also used in the ProcessLib to select
 # processes to be build.
-set(ProcessesList
+set(processes_list
     ComponentTransport
     HT
     HeatConduction
@@ -25,7 +25,7 @@ set(ProcessesList
     TwoPhaseFlowWithPrho)
 
 # Add a cmake option for each process.
-foreach(process ${ProcessesList})
+foreach(process ${processes_list})
     option(OGS_BUILD_PROCESS_${process} "Build the ${process} process." ON)
 endforeach()
 
@@ -33,7 +33,7 @@ set(OGS_BUILD_PROCESSES
     ""
     CACHE STRING "Semicolon-separated list of processes to build")
 if(NOT OGS_BUILD_CLI)
-    set(OGS_BUILD_PROCESSES OFF "" CACHE INTERNAL "")
+    set(OGS_BUILD_PROCESSES OFF "" CACHE STRING "" FORCE)
     message(STATUS "ATTENTION: OGS_BUILD_CLI=OFF -> OGS_BUILD_PROCESSES is set to OFF too.\n"
         "   If cli is switched on again, remember to switch processes back to on \n"
         "   too with -DOGS_BUILD_PROCESSES=\"\"!")
@@ -41,19 +41,19 @@ endif()
 if(NOT "${OGS_BUILD_PROCESSES}" STREQUAL "")
     if(${OGS_BUILD_PROCESSES})
         foreach(process ${OGS_BUILD_PROCESSES})
-            if(NOT "${process}" IN_LIST ProcessesList)
+            if(NOT "${process}" IN_LIST processes_list)
                 message(
                     FATAL_ERROR
                         "${process} given in OGS_BUILD_PROCESSES is "
-                        "not a valid process name! Valid names are ${ProcessesList}"
-                    )
+                        "not a valid process name! Valid names are ${processes_list}"
+                )
             endif()
         endforeach()
         message(STATUS "Enabled processes:")
     else()
         message(STATUS "All processes disabled.")
     endif()
-    foreach(process ${ProcessesList})
+    foreach(process ${processes_list})
         if("${process}" IN_LIST OGS_BUILD_PROCESSES)
             set(OGS_BUILD_PROCESS_${process} ON CACHE BOOL "" FORCE)
             message(STATUS "  ${process}")
diff --git a/scripts/cmake/ProjectSetup.cmake b/scripts/cmake/ProjectSetup.cmake
index b45f501574c1a5cc342c34fcf2cf0627a67f87b1..49e93cae39c6164113f282cb5531af038679ed4a 100644
--- a/scripts/cmake/ProjectSetup.cmake
+++ b/scripts/cmake/ProjectSetup.cmake
@@ -3,14 +3,15 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}
 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
 if(OGS_USE_CONAN AND MSVC)
-    foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES})
-        string(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG)
-        set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
-        set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
-        set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
-    endforeach(OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES)
+    foreach(outputconfig ${CMAKE_CONFIGURATION_TYPES})
+        string(TOUPPER ${outputconfig} outputconfig)
+        set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${outputconfig} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
+        set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${outputconfig} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+        set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${outputconfig} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+    endforeach()
 endif()
 
+# cmake-lint: disable=C0103
 set(Data_SOURCE_DIR ${PROJECT_SOURCE_DIR}/Tests/Data CACHE INTERNAL "")
 set(Data_BINARY_DIR ${PROJECT_BINARY_DIR}/Tests/Data CACHE INTERNAL "")
 
@@ -21,13 +22,13 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR})
 
 # RPATH setup
 if(APPLE)
-    set(basePoint @loader_path)
+    set(BASEPOINT @loader_path)
 else()
-    set(basePoint $ORIGIN)
+    set(BASEPOINT $ORIGIN)
 endif()
 file(RELATIVE_PATH relDir
     ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}
     ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}
 )
-set(CMAKE_INSTALL_RPATH ${basePoint} ${basePoint}/${relDir})
+set(CMAKE_INSTALL_RPATH ${BASEPOINT} ${BASEPOINT}/${relDir})
 set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
diff --git a/scripts/cmake/packaging/Pack.cmake b/scripts/cmake/packaging/Pack.cmake
index 729350aef06d6cf6292d14705d7f08560bda4f34..b9d4a04659e476cfac94e73b153f029af4d9928d 100644
--- a/scripts/cmake/packaging/Pack.cmake
+++ b/scripts/cmake/packaging/Pack.cmake
@@ -1,4 +1,4 @@
-if(IS_SUBPROJECT)
+if(_IS_SUBPROJECT)
     include (CPack)
     return()
 endif()
@@ -76,7 +76,6 @@ if(OGS_USE_PYTHON)
     endif()
 endif()
 
-
 configure_file(Documentation/README.txt.in ${PROJECT_BINARY_DIR}/README.txt)
 install(FILES ${PROJECT_BINARY_DIR}/README.txt DESTINATION .)
 
diff --git a/scripts/cmake/packaging/PackagingLinux.cmake b/scripts/cmake/packaging/PackagingLinux.cmake
index c4434906174b6d5d84352e2c9f1d5bea420dade1..d5c4ecf17d4780e7b3de9956c7148bcae3928347 100644
--- a/scripts/cmake/packaging/PackagingLinux.cmake
+++ b/scripts/cmake/packaging/PackagingLinux.cmake
@@ -26,7 +26,7 @@ else()
     endif()
 endif()
 
-set(README_PLATFORM_INSTRUCTIONS
+set(_README_PLATFORM_INSTRUCTIONS
     "When running the Data Explorer make sure to set the LD_LIBRARY_PATH path to the bin-folder. E.g.: LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./ ./DataExplorer"
     CACHE INTERNAL ""
 )
diff --git a/scripts/cmake/test/AddTest.cmake b/scripts/cmake/test/AddTest.cmake
index 3535241b2496aa68fb10974f054d9189e0e27d12..5cfe96d33ea4488ac21181767718beeb0e5ee23a 100644
--- a/scripts/cmake/test/AddTest.cmake
+++ b/scripts/cmake/test/AddTest.cmake
@@ -50,7 +50,7 @@
 #         Can be given multiple times; the point coordinates in the gml files are
 #         compared using the given absolute and relative tolerances.
 # ~~~
-
+# cmake-lint: disable=C0103
 function (AddTest)
 
     # parse arguments
@@ -59,7 +59,6 @@ function (AddTest)
     set(multiValueArgs EXECUTABLE_ARGS DATA DIFF_DATA WRAPPER_ARGS REQUIREMENTS PYTHON_PACKAGES VIS)
     cmake_parse_arguments(AddTest "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
 
-
     set(AddTest_SOURCE_PATH "${Data_SOURCE_DIR}/${AddTest_PATH}")
     set(AddTest_BINARY_PATH "${Data_BINARY_DIR}/${AddTest_PATH}")
     file(MAKE_DIRECTORY ${AddTest_BINARY_PATH})
diff --git a/scripts/cmake/test/AddTestTester.cmake b/scripts/cmake/test/AddTestTester.cmake
index 7b9ff26d2f0b5ae70a8a67eb2614e37e477c2990..0771cc66dc1f2cce1c86b6c465d1511e5b585c9b 100644
--- a/scripts/cmake/test/AddTestTester.cmake
+++ b/scripts/cmake/test/AddTestTester.cmake
@@ -1,9 +1,9 @@
 # Run vtk.js converter
 if(VIS_FILES AND VTKJS_CONVERTER)
     execute_process(COMMAND cmake -E make_directory ${VTKJS_OUTPUT_PATH})
-    foreach(FILE ${VIS_FILES})
+    foreach(file ${VIS_FILES})
         execute_process(
-            COMMAND ${VTKJS_CONVERTER} -e -i ${BINARY_PATH}/${FILE} -o ${VTKJS_OUTPUT_PATH}
+            COMMAND ${VTKJS_CONVERTER} -e -i ${BINARY_PATH}/${file} -o ${VTKJS_OUTPUT_PATH}
         )
     endforeach()
 endif()
@@ -16,30 +16,30 @@ else()
     set(TERMINAL_CMD bash -c)
 endif()
 set(TEST_FAILED FALSE)
-foreach(CMD ${TESTER_COMMAND})
+foreach(cmd ${TESTER_COMMAND})
     if(GLOB_MODE)
-        separate_arguments(CMD)
-        list(GET CMD 0 GLOB)
-        list(GET CMD 1 NAME_A)
-        list(GET CMD 2 NAME_B)
-        list(GET CMD 3 ABS_TOL)
-        list(GET CMD 4 REL_TOL)
+        separate_arguments(cmd NATIVE_COMMAND)
+        list(GET cmd 0 GLOB)
+        list(GET cmd 1 NAME_A)
+        list(GET cmd 2 NAME_B)
+        list(GET cmd 3 ABS_TOL)
+        list(GET cmd 4 REL_TOL)
         file(GLOB FILES RELATIVE ${SOURCE_PATH} ${GLOB})
-        list(LENGTH FILES length)
-        message(STATUS "Glob expression '${GLOB}' (${NAME_A}) found ${length} files.")
-        if(${length} EQUAL 0)
+        list(LENGTH FILES LENGTH)
+        message(STATUS "Glob expression '${GLOB}' (${NAME_A}) found ${LENGTH} files.")
+        if(${LENGTH} EQUAL 0)
             message(FATAL_ERROR "DIFF_DATA glob expression '${GLOB}' "
                 "did not match any files!")
         endif()
-        foreach(FILE ${FILES})
+        foreach(file ${FILES})
             if("$ENV{HOSTNAME}" MATCHES "frontend.*")
-                string(REPLACE "gpfs1" "../.." FILE ${FILE})
+                string(REPLACE "gpfs1" "../.." file ${file})
             endif()
             if("$ENV{HOSTNAME}" MATCHES "frontend.*")
-                string(REPLACE "gpfs0" "../.." FILE ${FILE})
+                string(REPLACE "gpfs0" "../.." file ${file})
             endif()
             execute_process(
-                COMMAND ${SELECTED_DIFF_TOOL_PATH} ${SOURCE_PATH}/${FILE} ${BINARY_PATH}/${FILE} -a ${NAME_A} -b ${NAME_B} --abs ${ABS_TOL} --rel ${REL_TOL}
+                COMMAND ${SELECTED_DIFF_TOOL_PATH} ${SOURCE_PATH}/${file} ${BINARY_PATH}/${file} -a ${NAME_A} -b ${NAME_B} --abs ${ABS_TOL} --rel ${REL_TOL}
                 WORKING_DIRECTORY ${SOURCE_PATH}
                 RESULT_VARIABLE EXIT_CODE
                 OUTPUT_VARIABLE OUTPUT
@@ -53,7 +53,7 @@ foreach(CMD ${TESTER_COMMAND})
         endforeach()
     else()
         execute_process(
-            COMMAND ${TERMINAL_CMD} "${CMD}"
+            COMMAND ${TERMINAL_CMD} "${cmd}"
             WORKING_DIRECTORY ${SOURCE_PATH}
             RESULT_VARIABLE EXIT_CODE
             OUTPUT_VARIABLE OUTPUT
diff --git a/scripts/cmake/test/AddTestWrapper.cmake b/scripts/cmake/test/AddTestWrapper.cmake
index c8d801d698c2ea770827073aa027dd341ba8c3a0..3d06833ab07aab48c00582e5ee4179150901b34e 100644
--- a/scripts/cmake/test/AddTestWrapper.cmake
+++ b/scripts/cmake/test/AddTestWrapper.cmake
@@ -1,7 +1,7 @@
 # IMPORTANT: multiple arguments in one variables have to be in list notation (;)
 # and have to be quoted when passed "-DEXECUTABLE_ARGS=${AddTest_EXECUTABLE_ARGS}"
-foreach(FILE ${FILES_TO_DELETE})
-    file(REMOVE ${BINARY_PATH}/${FILE})
+foreach(file ${FILES_TO_DELETE})
+    file(REMOVE ${BINARY_PATH}/${file})
 endforeach()
 
 string(REPLACE ";" " " CMD_STRING "cd ${WORKING_DIRECTORY} && ${WRAPPER_COMMAND} "
diff --git a/scripts/cmake/test/MeshTest.cmake b/scripts/cmake/test/MeshTest.cmake
index d18380cd78ab4ad9474d3975b16ef9efcdb2c1a1..7a81eda1190f4dc8e27558de6797861fc3d19867 100644
--- a/scripts/cmake/test/MeshTest.cmake
+++ b/scripts/cmake/test/MeshTest.cmake
@@ -17,7 +17,7 @@
 #                          values should be taken from envinf1 serial job
 # )
 # ~~~
-
+# cmake-lint: disable=C0103
 function (MeshTest)
     if(NOT OGS_BUILD_TESTING)
         return()
@@ -28,7 +28,6 @@ function (MeshTest)
     set(multiValueArgs EXECUTABLE_ARGS DATA DIFF_DATA WRAPPER_ARGS REQUIREMENTS)
     cmake_parse_arguments(MeshTest "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
 
-
     set(MeshTest_SOURCE_PATH "${Data_SOURCE_DIR}/${MeshTest_PATH}")
     set(MeshTest_BINARY_PATH "${Data_BINARY_DIR}/${MeshTest_PATH}")
     file(MAKE_DIRECTORY ${MeshTest_BINARY_PATH})
diff --git a/scripts/cmake/test/OgsTest.cmake b/scripts/cmake/test/OgsTest.cmake
index efc854e1698513fc2e880d1a7b1802946ff85c13..9b44e38c9b60819b94167af97c1af0e57d7efc02 100644
--- a/scripts/cmake/test/OgsTest.cmake
+++ b/scripts/cmake/test/OgsTest.cmake
@@ -1,3 +1,4 @@
+# cmake-lint: disable=C0103
 function (OgsTest)
 
     if(NOT OGS_BUILD_CLI OR NOT OGS_BUILD_TESTING)