¿Cómo se ejecutan los comandos CMake execute_process?

Tengo las siguientes líneas en mi archivo CMakeLists.txt. Estoy ejecutando CMake 3.5.2 en Windows 7, y uso Visual Studio 12 2013 como generador con "Usar compiladores nativos predeterminados" marcado en la interfaz gráfica de usuario.

find_path(FORTRAN_DIR NAMES cdll.cpp fdll.f90 Makefile PATHS ../source)
execute_process(COMMAND make
                WORKING_DIRECTORY ${FORTRAN_DIR})

Esto funciona bien.

Pero, ¿cómo se está ejecutando exactamente? ¡Está en Windows!

He compilado el Makefile a través de MSYS2 (MinGW) en Windows anteriormente, pero si eso es lo que está usando CMake, entonces no estoy seguro de cómo sabe hacerlo.

Editar: pongoexecute_process(COMMAND uname -a) en el archivo CMakeLists.txt y obtuveMSYS_NT-6.1 MYCOMPUTERNAMEHERE 2.5.2(0.297/5/3) 2016-07-15 08:31 x86_64 Msys. Así que supongo que eso responde que se está ejecutando a través de MSYS ... pero ¿cómo sabe CMake hacer esto?

La documentación dice:

"CMake ejecuta el proceso secundario utilizando las API del sistema operativo directamente. Todos los argumentos se pasan VERBATIM al proceso secundario. No se utiliza un shell intermedio, por lo que los operadores de shell como> se tratan como argumentos normales".

Pero no entiendo lo que eso significa, especialmente teniendo en cuenta que si uso la siguiente línea, obtengo/usr/bin/make como la salida:

execute_process(COMMAND which make)

¿Qué está sucediendo y / o cómo puedo averiguar en qué entorno / shell / cualesquiera que sean estos comandos?

Respuestas a la pregunta(1)

Su respuesta a la pregunta