2009-06-27 4 views
20

У нас есть довольно большой проект C/C++, использующий scons для здания. Я хотел бы попытаться построить это через Eclipse-CDT. У кого-нибудь есть опыт с этим, и я могу сказать, какие шаги нужно для создания браков в качестве строителя. (НЕ используя плагин SConsBuilder, он не будет работать с Eclipse-CDT от Fedora-11).Как создать проекты SCons с Eclipse CDT?

ответ

11

Я пробовал Waf in Eclipse CDT до этого момента, Сконс ​​был бы очень похож. Решение заключалось в создании пустого проекта Makefile, а затем просто измените «make» на «scons» в параметрах. В Windows, который, вероятно, понадобится файл scons.bat на вашем пути. Это не намного лучше, чем создание манекена Makefile с шаблоном типа all:\n\tscons, но это наименьшая работа.

SConsBuilder plugin не является хорошей идеей. В нем есть целая куча закодированного кода Python с жестким кодом, который он выплевывает в SConstruct. Он не обновлялся в возрасте и много кода, вероятно, устарело в SCons. Я думаю, что лучший подход - сделать то, что делает SCons для Visual Studio, или то, что делает CMake для Eclipse CDT. Это означает, что вы создаете файл .cproject на лету на основе вашей конфигурации сборки.

В какой-то момент я написал Eclipse project generator for Waf, в котором узлы сборки собирают исходные файлы и выплескивают файл .project и .cproject. Подобно тому, как это делает CMake, но поведение Waf по умолчанию для создания варианта-каталога означает, что вам не нужно иметь дело с проблемами сборки вне источника. С тех пор это было добавлено как extra in waf itself. Он использует только часть API Waf, поэтому можно было бы преобразовать его в SCons с небольшим количеством работы. Другими словами, там ничего особенного нет. Формат .cproject на самом деле нигде не документирован и действительно уродлив по сравнению с версией Java.

Я не слишком хорошо справлялся с CDT - это далеко от инструментов Java dev, и я все еще использую Vim с :make, поэтому в конце концов все было немного академично.

14

Вы можете использовать Makefile, что просто делегирует важные задания для Scons

.PHONY: all clean install 
default: all 
all:  
    scons 
clean: 
    scons -c 
install: 
    scons install 

Тогда можно использовать «Standard Make C Project» из коробки.

16

Один из наших учеников реализовал новую интеграцию SCons для CDT Eclipse, которая работает в двунаправленной, то есть может импортировать файлы SCons и заполнять проекты Eclipse CDT соответствующими настройками и может генерировать файлы SCons из настроек проекта Eclipse. Кроме того, он обеспечивает интерактивный режим «Сканы», который значительно ускоряет постепенное построение больших проектов SCons. Он скоро будет опубликован для общественности, см. http://sconsolidator.com

+1

WOW это выглядит хорошо. Престижность для ваших учеников. – supertux

+0

Я проголосовал за это, потому что я использовал sconsolidator, и он работает. Единственное предостережение в том, что он является закрытым источником. Я не вижу его широкого использования, если он не открыт. –

+0

Я пробовал sconsolidator и, увы, он не работает над нашим проектом. Он утверждает, что возникла проблема с импортом настроек и что консоль будет иметь больше информации о том, что пошло не так (и дисплей консоли пуст). Ну что ж. –

4

Просто измените настройки компоновщика, никаких плагинов не требуется. Выберите внешний строитель и установите вместо него scons и установите workdir в директорию, где размещается SConstruct.

Теперь вы можете использовать make target view для создания команд сборки scons и выполнения его как команды make. Парсеры ошибок с помощью scons отлично работают по умолчанию, дополнительной настройки не требуется.

0

Будьте ОЧЕНЬ ОЧЕНЬ осторожны с использованием Sconsolidator с существующим проектом! Он будет вслепую перезаписывать любые существующие файлы SConstruct/SConscript, которые у вас есть в корневом каталоге вашего проекта, когда вы нажимаете ссылку, чтобы добавить природу SCons к вашему проекту. (Я пытаюсь сообщить об этом как об ошибке в проекте, но блокироваться на каждом шагу до сих пор.)

+0

У вас должна быть возможность сообщить о своей проблеме здесь: http: //sconsolidator.com/projects/sconsolidator/issues –

 Смежные вопросы

  • Нет связанных вопросов^_^