LINUX.ORG.RU

Чем конвертить файлы проектов Code::Blocks и NetBeans


0

0

Здравствуйте!

Помнится, была такая прога, которая позволяла конвертировать файлы проектов из одной IDE в другую. Она перегоняла файл проекта в промежуточный формат, и генерировала в новом формате. Позиционировалась прога как "объеденитель" разных IDE. Сейчас начал искать, так не помню как называется, а поиск результатов не дал.

Сейчас на повестке дня стоит вопрос конвертирования между Code::Blocks и NetBeans, туда и обратно. В конторе корпоративный стандарт - Code::Blocks, потому что к нему главный разработчик привык. Но сие IDE не выдерживает никакой критики, работать просто невозможно, глюки подстерегают на каждом шагу. Пошел четвертый месяц этого безумия, и я хочу таки наконец слезть с этого поделия на человеческую среду разработки, какой считаю NetBeans.

Вопрос - чем можно конвертировать?


cmake? генерит и проектные файлы для Коде::Блока, для КДевелопа, Еклипса ЦДТ и просто Мейкфайлы. Используя Мейкфайлы можно сидеть в любой ИДЕ (К примеру Вим или Емакс).

stpg
()
Ответ на: комментарий от stpg

> cmake? генерит и проектные файлы для Коде::Блока, для КДевелопа, Еклипса ЦДТ и просто Мейкфайлы. Используя Мейкфайлы можно сидеть в любой ИДЕ (К примеру Вим или Емакс).

Еслиб проект был основан на make файлах, я б такого вопроса не задавал.

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

xintrea
() автор топика
Ответ на: комментарий от xintrea

Какбы моя телепатия намекает что пишешь ты на сях? Так не приходила ли тебе мысль что жабаиде несколько излишество?

wfrr ★★☆
()
Ответ на: комментарий от wfrr

> Какбы моя телепатия намекает что пишешь ты на сях? Так не приходила ли тебе мысль что жабаиде несколько излишество?

Не приходило, тем более, что на нетбинс у меня нареканий нет. Свою функцию выполняет - удобен, логичен, не глючит. И тормозов не замечаю. В кодеблоксе, кстати, при переключении между файлами исходников тормоза наблюдаются. А в нетбинсе (сюрприз) - нет.

xintrea
() автор топика
Ответ на: комментарий от xintrea

> Еслиб проект был основан на make файлах, я б такого вопроса не задавал.

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

Гхм. В чем проблема то переписать на cmake. Тебя даже никто не заставляет коммитить CMakeLists.txt файлы (хотя лично я бы хранил их историю тоже). Просто сбоку у тебя есть способ сгенерить Code::Blocks файлы.

Тоесть план таков:

1. Написать cmake-файлы

2. Работать в любой IDE

3. Перед коммитом в основной репозиторий - сгерерить Code::Blocks файлы

stpg
()
Ответ на: комментарий от xintrea

> Не приходило, тем более, что на нетбинс у меня нареканий нет. Свою функцию выполняет - удобен, логичен, не глючит. И тормозов не замечаю. В кодеблоксе, кстати, при переключении между файлами исходников тормоза наблюдаются. А в нетбинсе (сюрприз) - нет.

Странно, тормоза я только в еклипсе и идее встречал, остальные редакторы достаточно шустро работают. Я перепробовал много редакторов для сей. Вот на этой неделе денек покодил в Intellij IDEA с плагином для плюсов. По началу очень понравилось, когда пробовал на маленьком проекте (код комплишен, рефакторинг и тд), но на большом проекте идея стала падать, тормозить и в общем нехорошо себя вести. Вернулся опыть на вим;)

Как по мне то редакторы для С++ под линуксом можно поставить в таком порядке (начиная с лучшего):

1. Vim
2. Codelite
3. KDevelop
4. NetBeans
5. IDEA
6. Code::Blocks
7. Eclipse

stpg
()
Ответ на: комментарий от xintrea

Я какбы работаю в нетбинсе, но для сей бы ее советовать не стал, ибо...

wfrr ★★☆
()
Ответ на: комментарий от kemm

> > 1. Vim

> 1. Vim/Emacs

Ну да-да.

> А где QtCreator? Вроде очень приятная штука у них вырисовывается...

Я написал только то, что использовал хотя бы день. Креатор не использовал. Но сейчас установил его. По первым ощущением очень даже неплохо. Отучить бы его самостоятельно генерить Makefile-ы, которые затерают мои собственные 8(

stpg
()
Ответ на: комментарий от stpg

> Отучить бы его самостоятельно генерить Makefile-ы, которые затерают мои собственные 8(

Насколько я понимаю, он расчитан на работу с системами сборки типа qmake/cmake. Мне понравилось, что они fakeVim достаточно активно развивают. В первой версии пользоваться было совсем невозможно, сейчас те команды, которые реализованы, вроде бы не глючат и полностью повторяют по поведению vim'овские. Кому-то уже может быть вполне удобно, но я постоянно сбиваюсь на попытку использования тех возможностей, которых пока нет. Ждём-с дальше... 8))

kemm
()
Ответ на: комментарий от kemm

>он расчитан на работу с системами сборки типа qmake/cmake

Почему, с "Makefile based projects" тоже, см. New, там есть импорт. Но при работе с таким проектом, придётся кое-что делать руками (добавлять новые цели, например, т.к. сейчас парсер не видит толком ничего, да и gui не допилен).

summatus
()
Ответ на: комментарий от summatus

> см. New, там есть импорт.

Слово "импорт" нам как бе намекает. 8))

> Но при работе с таким проектом, придётся кое-что делать руками (добавлять новые цели, например, т.к. сейчас парсер не видит толком ничего, да и gui не допилен).

Ну и я примерно об этом. 8))

kemm
()

> В конторе корпоративный стандарт - Code::Blocks, потому что к нему главный разработчик привык. Но сие IDE не выдерживает никакой критики, работать просто невозможно, глюки подстерегают на каждом шагу.

Какую версию используете? Пробовали брать nightly builds или прямо из репозитория?
Я очень давно работаю с Code::Blocks - очень им доволен. Собираю из репозитория раз в неделю новый билд.

andreyu ★★★★★
()
Ответ на: комментарий от stpg

> Гхм. В чем проблема то переписать на cmake. Тебя даже никто не заставляет коммитить CMakeLists.txt файлы (хотя лично я бы хранил их историю тоже). Просто сбоку у тебя есть способ сгенерить Code::Blocks файлы.

> Тоесть план таков:


> 1. Написать cmake-файлы

> 2. Работать в любой IDE

> 3. Перед коммитом в основной репозиторий - сгерерить Code::Blocks файлы


Ну, это в одну сторону. А как из Code::Blocks сгенерить эти cmake?

Работа у меня итеративна - есть движок, который разрабатывают закрыто, от версии к версии. Мне дают очередную доработанную версию. Я отвечаю за "клиентский" код, включаемый в проект на последнем этапе. Да, все компилируется в один бинарник. Новую версию движка мне дают в формате Code::Blocks. И что, каждый раз заново разгребать что там добавили-убавили-изменили в проекте движка, чтобы сделать новый cmake?

xintrea
() автор топика
Ответ на: комментарий от kemm

> Насколько я понимаю, он расчитан на работу с системами сборки типа qmake/cmake.

Хм. Попробовал открыть CMakeLists.txt в QtCreator-е. Он открыл как проект, а не как файл! То что нужно!!! Денек покодил в нём - очень позитивное впечатление. Это пожалуй наиболее приятная IDE которую я использовал последнее время (ну кроме вима разумеется=).

> Мне понравилось, что они fakeVim достаточно активно развивают. В первой версии пользоваться было совсем невозможно, сейчас те команды, которые реализованы, вроде бы не глючат и полностью повторяют по поведению vim'овские. Кому-то уже может быть вполне удобно, но я постоянно сбиваюсь на попытку использования тех возможностей, которых пока нет. Ждём-с дальше... 8))

А мне FakeVim не очень понравился. Привык к стандартному, а тут и похоже на вим, но не всё работает. А что работает - то немного криво. Я в Kate и KDevelop прововал Vi Mode - не то 8((

stpg
()
Ответ на: комментарий от xintrea

> Ну, это в одну сторону. А как из Code::Blocks сгенерить эти cmake?
cmake файлы для большого проекта пишутся за один день максимум. дальше - только небольшие обновления.

к примеру обычно исходники лежат по директориям, в каждой создаём CMakeLists.txt примерно следущего содержания

include_directories(${CMAKE_CURRENT_SOURCE_DIR})
file(GLOB files *.cpp *.hpp)
add_library(имя_компонента STATIC ${files})

Хотя так не рекомендуют делать (при добавлении файла - приходится перезапускать cmake), но оно работает.
Для исполняемого файла:

include_directories(${CMAKE_CURRENT_SOURCE_DIR})
file(GLOB files *.cpp *.hpp)
add_executable(имя_исполняемого_файла ${test_files})
target_link_libraries(имя_исполняемого_файла ${список_зависимостей_проекта})

И всё. Ну и ещё в главном cmake файле основные настройки. cmake файлы наследуют настройки родительского файла - поэтому в таких файлах настройка компонента умещается в 3 строчки.
Если в проекте есть кастомные действия билда - они элементарно решаются add_custom_command и add_custom_target.

> Новую версию движка мне дают в формате Code::Blocks. И что, каждый раз заново разгребать что там добавили-убавили-изменили в проекте движка, чтобы сделать новый cmake?

git diff LAST_ENGINE_VERSION_SHA1..NEW_ENGINE_VERSION_SHA1 engine_code_blocks_project.pro

И все изменения видны. Ничего не надо разбирать.
Ну что кардинально может поменятся? Добавятся зависимости на новую библиотеку? Изменятся пути? Ключи компиляции? За 10 минут cmake файлы обновляются и работаем дальше. И как часто дают новую версию. Насколько много изменений именно в проекте?

stpg
()
Ответ на: комментарий от stpg

> А мне FakeVim не очень понравился. Привык к стандартному, а тут и похоже на вим, но не всё работает.

Мне динамика нравится. В 1.0 оно было совсем неюзабельно.

> А что работает - то немного криво. Я в Kate и KDevelop прововал Vi Mode - не то 8((

Угу... Вообще говоря, разумнее было бы допилить vim как таковой для возможности его полноценной интеграции в IDE. Но я пока не совсем понимаю, с какой стороны начинать...

kemm
()

в java уже давно придумали для втч таких целей maven ;)

thevery ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.