diff --git a/Applications/Utils/MeshGeoTools/CMakeLists.txt b/Applications/Utils/MeshGeoTools/CMakeLists.txt
index 4629a44968edacd196e2f180f53d6e63e908f1a6..fbe634be3d0d0820b9f7e15b96aecec7c9af6f1c 100644
--- a/Applications/Utils/MeshGeoTools/CMakeLists.txt
+++ b/Applications/Utils/MeshGeoTools/CMakeLists.txt
@@ -9,6 +9,8 @@ set(TOOLS
 )
 
 if(OGS_BUILD_GUI)
+    # Utility requires that GUI is build because it uses Qt-based functionality
+    # Also requires gmsh at runtime
     list(APPEND TOOLS VerticalSliceFromLayers)
 endif()
 
diff --git a/Applications/Utils/Tests.cmake b/Applications/Utils/Tests.cmake
index b04c7906df9f20930803ebffbed81feeda712c4b..98b488034a61abb9454c73768c96c58562f78947 100644
--- a/Applications/Utils/Tests.cmake
+++ b/Applications/Utils/Tests.cmake
@@ -478,8 +478,8 @@ AddTest(
               SmallTest_Layer3.vtu
 )
 
-# Utility requires that GUI is build because it uses Qt-based functionality
-if(TARGET VerticalSliceFromLayers)
+# Tests requires gmsh
+if(TARGET VerticalSliceFromLayers AND GMSH)
     AddTest(
         NAME VerticalSliceFromLayers_Test
         PATH MeshGeoToolsLib/Ammer
diff --git a/scripts/cmake/Find.cmake b/scripts/cmake/Find.cmake
index 0ff6642f60cdcf6ce95d6331f0cc33c88313bc67..4187ad929099b8cfe5709632c071e9f60b558081 100644
--- a/scripts/cmake/Find.cmake
+++ b/scripts/cmake/Find.cmake
@@ -56,6 +56,8 @@ find_program(MODULE_CMD lmod PATHS /software/lmod/lmod/libexec)
 find_program(SNAKEMAKE snakemake HINTS ${LOCAL_VIRTUALENV_BIN_DIRS})
 find_program(PARSL parsl-visualize HINTS ${LOCAL_VIRTUALENV_BIN_DIRS})
 
+find_program(GMSH gmsh)
+
 ######################
 ### Find libraries ###
 ######################