diff --git a/cmake/bornagain/modules/CheckCompiler.cmake b/cmake/bornagain/modules/CheckCompiler.cmake
index 55b9c9b235e2d5d69bc81db0224e3123d5845c78..0ffd4285f546576844ecd00cd3a06f3c1afeae55 100644
--- a/cmake/bornagain/modules/CheckCompiler.cmake
+++ b/cmake/bornagain/modules/CheckCompiler.cmake
@@ -4,7 +4,9 @@
 
 #----Test if clang setup works----------------------------------------------------------------------
 if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
-    exec_program(${CMAKE_C_COMPILER} ARGS "-v" OUTPUT_VARIABLE _clang_version_info)
+    execute_process(COMMAND ${CMAKE_C_COMPILER} -v
+        OUTPUT_VARIABLE _clang_version_info
+        OUTPUT_STRIP_TRAILING_WHITESPACE)
     string(REGEX REPLACE "^.*[ ]([0-9]+)\\.[0-9].*$" "\\1" CLANG_MAJOR "${_clang_version_info}")
     string(REGEX REPLACE "^.*[ ][0-9]+\\.([0-9]).*$" "\\1" CLANG_MINOR "${_clang_version_info}")
 else()
@@ -14,7 +16,9 @@ endif()
 
 #---Obtain the major and minor version of the GNU compiler------------------------------------------
 if (CMAKE_COMPILER_IS_GNUCXX)
-    exec_program(${CMAKE_C_COMPILER} ARGS "-dumpversion" OUTPUT_VARIABLE _gcc_version_info)
+    execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion
+        OUTPUT_VARIABLE _gcc_version_info
+        OUTPUT_STRIP_TRAILING_WHITESPACE)
     string(REGEX REPLACE "^([0-9]+).*$"                   "\\1" GCC_MAJOR ${_gcc_version_info})
     string(REGEX REPLACE "^[0-9]+\\.([0-9]+).*$"          "\\1" GCC_MINOR ${_gcc_version_info})
     string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*$" "\\1" GCC_PATCH ${_gcc_version_info})
diff --git a/cmake/generic/modules/FindNumpy.cmake b/cmake/generic/modules/FindNumpy.cmake
index d3b2cc1f9281e8032ecec068d7584f7b776cbe8f..ba0667214be1e18630db76fa8f84580e88911aca 100644
--- a/cmake/generic/modules/FindNumpy.cmake
+++ b/cmake/generic/modules/FindNumpy.cmake
@@ -9,26 +9,28 @@ if (NUMPY_INCLUDE_DIR)
 endif (NUMPY_INCLUDE_DIR)
 
 if(NOT Numpy_FIND_QUIETLY)
-EXEC_PROGRAM ("${PYTHON_EXECUTABLE}"
-  ARGS "-c \"import numpy; print(numpy.get_include())\""
-  OUTPUT_VARIABLE NUMPY_INCLUDE_DIR
-  RETURN_VALUE NUMPY_NOT_FOUND)
+    execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import numpy; print(numpy.get_include())"
+        OUTPUT_VARIABLE NUMPY_INCLUDE_DIR
+        RESULT_VARIABLE NUMPY_NOT_FOUND
+        OUTPUT_STRIP_TRAILING_WHITESPACE)
 endif()
 
 if (NUMPY_INCLUDE_DIR MATCHES "Traceback")
     # Did not successfully include numpy
+    message(ERROR "Unexpected NUMPY_INCLUDE_DIR='${NUMPY_INCLUDE_DIR}'.")
     set(NUMPY_FOUND FALSE)
 else()
     # successful
+    message(STATUS "Found NUMPY_INCLUDE_DIR='${NUMPY_INCLUDE_DIR}'.")
     if(NOT EXISTS ${NUMPY_INCLUDE_DIR}/numpy/arrayobject.h)
         message(STATUS "Can't find numpy/arrayobject.h, please install python-numpy-devel package")
     else()
         set (NUMPY_FOUND TRUE)
         set (NUMPY_INCLUDE_DIR ${NUMPY_INCLUDE_DIR} CACHE STRING "Numpy include path")
-        EXEC_PROGRAM ("${PYTHON_EXECUTABLE}"
-        ARGS "-c \"import numpy; print(numpy.__version__)\""
-        OUTPUT_VARIABLE numpy_version_number
-        RETURN_VALUE numpy_return_value)
+        execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import numpy; print(numpy.__version__)"
+            OUTPUT_VARIABLE numpy_version_number
+            RESULT_VARIABLE numpy_return_value
+            OUTPUT_STRIP_TRAILING_WHITESPACE)
     endif()
 endif()
 
diff --git a/cmake/generic/modules/FindPyYaml.cmake b/cmake/generic/modules/FindPyYaml.cmake
index 9a6a4eec1957844a030a540ba41ec3aeac44578a..abb459792830423951011cc26205717487de8917 100644
--- a/cmake/generic/modules/FindPyYaml.cmake
+++ b/cmake/generic/modules/FindPyYaml.cmake
@@ -1,13 +1,17 @@
 # Find the python-yaml module.
 # This module defines PYYAML_FOUND.
 
-exec_program ("${PYTHON_EXECUTABLE}"
-  ARGS "-c 'import yaml; print(yaml.__version__)'"
+execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import yaml; print(yaml.__version__)"
   OUTPUT_VARIABLE pyyaml_version_number
-  RETURN_VALUE PYYAML_NOT_FOUND)
+  ERROR_VARIABLE  pyyaml_err_msg
+  RESULT_VARIABLE PYYAML_NOT_FOUND
+  OUTPUT_STRIP_TRAILING_WHITESPACE
+  ERROR_STRIP_TRAILING_WHITESPACE)
 
 if (PYYAML_NOT_FOUND)
-    message(FATAL_ERROR "python-yaml not found (ret='${PYYAML_NOT_FOUND}', out='${pyyaml_version_number}')")
+    message(FATAL_ERROR "python-yaml not found (ret='${PYYAML_NOT_FOUND}', "
+        "out='${pyyaml_version_number}', "
+        "err='${pyyaml_err_msg}')")
     set(PYYAML_FOUND FALSE)
 else()
     message (STATUS "Found python module yaml, version ${pyyaml_version_number}.")