Cmake, Windows, MinGW, MSYS2

Смотрите.

я живу под виндой, разрабатываю на C++ и при этом я не пользуюсь ни Visual Studio, ни Microsoft'овским компилятором.

До сих пор очень хорошо себя проявлял установленный через MSYS2 пакет WinGW-64 с gcc - шными компилятором и дебаггером. А в качестве редактора - легковесная Visual Studio Code.

Однако, это порождает ряд проблем.

Мне очень тяжело собрать какой нибудь проект, взятый c github.

То, что в убунте делается тремя командами git clone - make - make install для меня выливается в несколько дней поисков и чтения форумов.

Сейчас я пытаюсь сделать следующее:

подавляющее большинство проектов собираются при помощи CMake.

То есть, сначала CMake, а потом уже make и make install

Но CMake, будучи запущенным под Windows, автоматически создает проект типа *.sln - солюшен для Visual Studio.

Я поискал - нашел вот такой вот вопрос-ответ

Но всё равно непонятно, как при запуске CMake сказать ему, чтобы он собирал проект для обычного make. Ну, или хотя бы для чего нибудь, что я могу использовать совместно с gcc.

Подскажите, пожалуйста, как правильно мучить CMake под виндой?

Спасибо.

Дополняю вопрос Мне @Fat-Zer любезно подсказал, что команда должна быть такой:

cmake -G "MSYS Makefiles" ..

Вот я беру hello world

    #include <iostream>
    int main(int argc, char** argv)
    {
        std::cout << "Hello, World!" << std::endl;
        return 0;
    }

и такого же вида heelo world в смысле cmake: CMakeLists.txt:

    project(HelloWorld)

    cmake_minimum_required(VERSION 3.10)

    add_executable(main main.cpp)

Запускаю cmake -G "MSYS Makefiles" .. (во временной вложенной директории), получаю:

    CMake Error: CMake was unable to find a build program corresponding to "MSYS Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
    CMake Error: CMake was unable to find a build program corresponding to "MSYS Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
    CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
    CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
    CMake Error: CMAKE_AR was not found, please set to archive program.
    -- Configuring incomplete, errors occurred!

Не могли бы Вы подсказать мне следующие шаги, что нужно сделать, чтобы проект для MSYS собирался?


Ответы (1 шт):

Автор решения: Joker

Запуская cmake с явным выбором генератора, как команда cmake -G "MSYS Makefiles" .., запускать её нужно в подходящей среде, т.е. в данном случае в шелле msys, или её эмуляции. Посмотреть требования cmake можно в соответствующем модуле, в данном случае нужно посмотреть файл CMakeMSYSFindMake.cmake в котором имеются инструкции для поиска программы make и где она ищется.

→ Ссылка