Emacs CEDET EDE нетривиальные настройки проекта - PullRequest
4 голосов
/ 07 февраля 2012

Попытка понять, как работает EDE, используя его для создания Make-файлов для каталог проекта, который содержит несколько целей под определенным иерархия. Мне не повезло, и информационные страницы, кажется, не ответь на мой вопрос.

Моя структура каталогов выглядит примерно так: (Звездочкой (*) отмечены файлы, содержащие функции main ())

research/
  flow/
    flow.cpp
    flow.hpp
    program.cpp *

  samples/
    sample1.yuv

  utils/
    yuvreader.cpp
    yuvreader.hpp

  tests/
    yuvreader_test.cpp *

Я хочу создать проект (ы) EDE с одним или несколькими подпроектами; или, может быть, я просто хотите одну или несколько целей ...?

flow.cpp потока требует flow / и utils / sources, но yuvreader_test требуется только утилиты / источники.

Я сделал ede-new в корневом каталоге и во всех подкаталогах. Я также сделал ede-new-target в корневом каталоге, но при добавлении исходных файлов в подкаталоги он не распознает созданную мной цель.

Я был бы признателен, если бы кто-то мог указать мне на более сложные Project.ede файлы для чего-то, что я пытаюсь сделать. Вы можете догадаться что у меня есть больше подкаталогов, содержащих файлы кода класса, некоторые из которые имеют автономные программы, использующие этот код; также у меня есть больше теста тестируемый код. Любые примеры файлов / командных рабочих процессов будут оценили.

1 Ответ

2 голосов
/ 08 февраля 2012

Функция EDE, которая генерирует Makefile или Automakefiles, имеет несколько больше ограничений, чем Make или Automake.Например, файлы, принадлежащие цели, должны находиться в том же каталоге, что и проект, содержащий цель.В вашем примере у вас, вероятно, не было бы проектов в корневом каталоге.

Чтобы объединить несколько источников в одну программу, простой механизм состоит в том, чтобы каждый подкаталог создавал архив (.a) или общую библиотеку.(.so), которые связаны в вашей программе.

Если это слишком ограничиваете, вы также можете написать свои собственные файлы automake, и EDE будет читать их напрямую, так что вы можете иметь более сложную процедуру сборки, какrequired.

В дистрибутиве CEDET в качестве процесса сборки используется EDE, так что вы можете посмотреть на это как на сложный пример.Однако он не создает файлы C ++, поэтому может оказаться не таким полезным, как хотелось бы.

...