Su comprensión de CMake es correcta... determinará cómo crear el sistema de compilación que solicita (o el predeterminado para la plataforma en la que se encuentra actualmente) en función de las reglas de su CMakeLists.txt
expediente. Sin embargo, esto no necesariamente lo ayudará a compilar para Linux en una máquina con Windows si no tiene algo instalado que pueda apuntar a Linux.
Para compilar con destino a Linux, necesitará usar un compilador de Linux. El enlace publicado por @stjin le indica cómo instalar uno en cygwin. Luego, para configurar su compilación CMake, haga esto en la terminal:
CC=gcc-linux CXX=g++-linux cmake . [options]
Esto le indicará a CMake que ubique los compiladores especiales para Linux. Con suerte, después de compilar con estos compiladores, podrá ejecutar Linux.
Querrá mirar aquí:cmake-toolchains(7) si realiza compilaciones cruzadas. Sin embargo, le sugiero que instale una VM de Linux como una caja virtual en su máquina con Windows y construya ingenuamente en Linux. Se compilará mucho más rápido y no tendrá que preocuparse por la compilación cruzada. Puede montar el disco de Windows desde la máquina virtual de Linux para poder compartir el mismo árbol de origen. La máquina virtual Linux se compilará mucho más rápido que gcc ejecutándose en Windows.