CMake for Code::Blocks, как НЕ получить Makefile

Вот моя установка: Windows 7 x64, MingW, Msys, CMake, Freescale Kinetis SDK, Code::Blocks

Я пытаюсь настроить параметры проекта, установленные CMake, в правильный проект Code:: Blocks. Когда я изменяю предоставленный файл build_debug.bat с помощью -G "CodeBlocks - Unix Makefiles", он действительно создает файл .cbp, а также обычный файл Makefile (и он создает проект). Однако, когда я открываю этот файл .cbp в Code::Blocks, он в основном просто указывает на Makefile, а сборка проекта просто запускает make на Makefile.

Если я отменю выбор «Это пользовательский Makefile» в параметрах проекта и добавлю исходный файл в дерево проекта, как обычную IDE, он не будет собран правильно, т. е. включаемые файлы, библиотеки, компоновщик, параметры компиляции и т. д. ., не импортируются в сам проект. Кажется, что проект в основном просто держатель для Makefile, так что от него как от IDE не так много пользы.

Конечно, если я добавлю исходный файл к исходному CMakeLists.txt, который является частью дистрибутива, и перезапущу cmake (через файл build_debug.bat), то он будет работать нормально.

Итак, есть ли способ получить «настоящую» конфигурацию IDE из CMake? Я предполагаю, что ответ - Нет, поскольку "настоящая" конфигурация IDE является статической вещью, а Makefile - это общая (завершенная по Тьюрингу) программа, поэтому в целом нет способа создать ее автоматически, хотя я подозреваю, что для 99 % случаев, которые вы просто указываете, включают каталоги, файлы lib и параметры компилятора, поэтому на самом деле нет необходимости в общем программировании.

Я, вероятно, могу попытаться выяснить, откуда глубоко скрытые вызовы gcc получают свои включаемые файлы, какие библиотеки связаны и какие параметры компиляции используются, и добавить все это вручную в собственный проект Code:: Blocks, но это, кажется, противоречит цели того, что поставщики пакетов уже сделали это для меня, и становится очень утомительным при сборке для другого процессора или платы разработки.

Спасибо


person Sonicsmooth    schedule 23.12.2014    source источник


Ответы (1)


  1. «Настоящая конфигурация» является CMakeLists.txt, и вам необходимо изменять CMakeLists при редактировании конфигурации проекта. И make-файлы, и настройки IDE, сгенерированные CMake, являются временными, и их не следует редактировать.

  2. Некоторые IDE могут управлять конфигурацией проекта непосредственно в CMakeLists.txt

person vitalyster    schedule 26.12.2014