Настройка Eclipse для работы с cmake проектами
В отличии от NetBeans, где достаточно всего лишь создать проект из существующего Makefile, Eclipse требует некоторой настройки. В этой статье я подробно разберу настройку отладчика и компилятора.
Предположим, что у вас есть такой, вполне обычный CMakeLists.txt.
Теперь давайте создадим проект Eclipse. Нажимайте File > New > Project. В появившимся мастере выбирайте C++ Project. Далее как обычно: вводите название, выбирайте Toolchain.
Теперь откройте окно Make Target, проследуя Window > Show View > Make Target. Оно появится справа от главного окна. Выберете в этом окне корневую директорию для CMake, именно она станет его рабочей директорией.
Теперь:
- кликайте правой кнопкой мыши по выбранной папке и в контекстном меню нажимайте "New...".
- В появившемся диалоге, уберите две галочки "Same as the target name" и "Use builder settings".
Затем заполните форму:
- Target Name: Cmake Release
- Make Target: (оставить пустым)
- Build command:
cmake -E chdir Release/ cmake -G "Unix Makefiles" ../ -DCMAKE_BUILD_TYPE:STRING=Release
- Жмём Ок.
Тоже самое нужно сделать для цели Debug. Target Name, естественно будет Cmake Debug, а Build command:
Как вы уже наверняка поняли, в директории проекта необходимо создать директории, в которых будут собираться цели:
Теперь кликните правой кнопкой мыши по созданной цели и нажмите Build Target. Eclipse зайдёт в рабочую директорию и выполнит там команду "cmake ../". Естественно это действие нужно будет повторять после каждой правки CMakeLists.txt
Теперь необходимо настроить, собственно сам Builder.
- В левом меню найдите свой проект
- Вызовите контекстное меню правым щелчком мыши и нажмите Properties
- В появившемся окне выберите слева в списке, пункт "C/C++ Build"
- В верхнем выпадающем меню, выберете конфигурацию "Release" (если такой нет, создайте в этом же окошке)
- Снимите галочки "Use default build command" и "Generate make files automatically"
В активизировавшемся поле ввода "Build command", укажите:
Переходим на вкладку Behaviour. Там всё должно быть вот так:
Тоже самое следует повторить и для конфигурации Debug, с той лишь разницей, что в поле "Build command" я обычно указываю опцию VERBOSE=1, чтобы получать подробный лог компиляции. Поле у меня при этом выглядит вот так:
Стоит заметить, что после каждого изменения файла CMakeLists.txt необходимо обновить цель. Для этого нужно щёлкнуть на ней правой кнопкой мыши и в контекстном меню нажать "Rebuild Last Target".
Компиляция и дебагинг
Как выяснилось, просто иметь цели компиляции не достаточно. Нужно ещё настроить соответствующие кнопки на верхней панели. Начнём с самого интересного - c Debug`а.
- Найдите на верхней панели иконку с маленьким зеленоватым жучком и нажмите на стрелку вниз рядом с ним.
- В выпадающем меню выберете "Debug Configurations"
- В появившемся окне, в списке слева выберете пункт "C/C++ Application" и кликните по нему правой кнопкой мыши.
- Далее "New" и это создаст вам новый профиль отладки для текущего приложения в проекте.
Далее нажимайте кнопку "Browse", рядом с полем Project и выбирайте проект, с которым будете работать. После этого нажимает "Search Project" и там вы должны увидеть исполняемый файл, который получается после компиляции. Выбирайте его.
Стоит отметить, что бывали случаи, когда путь на выходной бинарник, в поле C/C++ Application по умолчанию указывал куда-то в CMakeFiles. Забирать его от туда не очень удобно, поэтому не стесняйтесь указывать что-то вроде "Debug/weathercollector" :-)
Теперь опять находим в левом фрейме Project Explorer свой проект, кликаем по нему правой кнопкой мыши, в выпавшем меню находим пункт "Debug as" и выбираем только что созданный профиль дебагинга.
В верхнем меню, нажмите кнопку с иконкой молоточка, в выпадающем меню которого можно найти созданные ранее профили Debug и Release.
Всё, теперь можно нажимать на иконку с зелёным жучком и пользоваться всеми прелестями отладчика Eclipse.
Следуя тому же принципу, нужно создать и назначить профили для кнопок Run и Build.