Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Структура директорий в сложном проекте
Форум на CrossPlatform.RU > Разработка > Инструменты разработчика
Sokoloff
Подскажите как правильно организовать структуру директорий в проекте.

Я пишу плагин для вывода дерева классов, плагин можно собрать либо для Kate, либо для Juffed (есть такой редактор под Qt). Возник вопрос как правильно организовать структуру директорий в проекте. Сейчас сделал так:
symbolbrowser
  +--/juffed   # H и cpp файлы специфичные для Juffed, т.е плагинный интерфейс juffed-а, плюс файлы для сборки juffed-плагина.
  |      +-- juffed.pro
  |      ...      
  |
  +--/images # Иконки общие для обоих плагинов
  |      
  +--/kate     # H и cpp файлы специфичные для Kate, т.е плагинный интерфейс kate, плюс файлы для сборки kate-плагина.
  |      +-- CMakeLists.txt
  |      ...  
  |
  +--/parsers  # Общие парсеры, h и cpp файлы
  |      
  |
... Общие h и cpp файлы, используются как в juffed, так и в kate. Файлов для сборки здесь нет.

Еще должны добавиться три директории с переводами - общие, juffed-овские (оба ts) и для kate (KDE-шные).

Плагин для kate собирается cmakе, я положил CMakeList.txt в поддиректорию kate, и прописал в нем пути как ../commonfile.cpp. Все вроде собирается, но как-то это нестандартно, коряво и не очевидно будет для людей как это собирать.

Вообще Juffed использует qmake и можно в корне положить и CMakeList.txt для kate и pro-файл для juffed-а, но IMHO это решение еще хуже.

Может есть у кого мысли как реорганизовать это все?
kwisp
Цитата(Sokoloff @ 28.9.2010, 18:49) *
Все вроде собирается, но как-то это нестандартно, коряво и не очевидно будет для людей как это собирать.

странно.
а ты сталкивался со стандартным методом сборки?
клади в корень REDME с описанием и делай как тебе легче.
Sokoloff
Цитата(kwisp @ 28.9.2010, 19:03) *
странно.
А почему бы ему и не собираться?

Цитата(kwisp @ 28.9.2010, 19:03) *
а ты сталкивался со стандартным методом сборки?
Аж с тремя:) configure/make, qmake и cmake. Когда заходишь в директорию с чужими исходниками, по файлам сразу видно как собирать, а здесь вообще ничего не будет.

Цитата(kwisp @ 28.9.2010, 19:03) *
клади в корень REDME с описанием и делай как тебе легче.
Если бы я знал. Я потому и спрашиваю, может кто делал что-то похожее и подскажет как легче/правильнее организовать.

Еще вопрос, я так понял cmake всегда использует CMakeList.txt файл или можно указать ему другой файл?

kwisp
Цитата(Sokoloff @ 28.9.2010, 19:26) *
Еще вопрос, я так понял cmake всегда использует CMakeList.txt файл или можно указать ему другой файл?

дуамю что можно, но в этом не помошник.

Цитата(Sokoloff @ 28.9.2010, 19:26) *
Цитата(kwisp @ 28.9.2010, 19:03) *
странно.
А почему бы ему и не собираться?

читай внимательно из моего коммента не следует что - не собирается . :)
странно то что тебя это смущает.
Цитата(Sokoloff @ 28.9.2010, 19:26) *
Аж с тремя

ну возьми исходники любых открытых программ.
в 90% лежит REDME где написано как и что делать.
а "по файлам" определять как и что собирается - я бы не был уверен в верности действий.

igor_bogomolov
Как тебе такая структура
Раскрывающийся текст
/symbolbrowser
    |---/juffed
    |        |---/resources
    |                 |---/images
    |                 |---/translations
    |                 |--- resources.qrc
    |        |--- juffed.pro
    |        |--- ...
    |---/kate
    |        |---/resources
    |                 |---/images
    |                 |---/translations
    |                 |--- resources.qrc
    |        |--- CMakeLists.txt
    |        |--- ...
    |---/common # Все общие файлы
    |        |---/resources
    |                 |---/images
    |                 |---/translations
    |                 |--- resources.qrc
    |        |---/parsers
    |                 |--- parsers.pri
    |                 |--- parsers.cmake
    |                 |--- ...
    |        |--- common.pri
    |        |--- common.cmake
    |        |--- ...
    |--- README.TXT
    |--- LICENSE
    |--- ... # можно приложить набор скриптов для сборки разных версий
Sokoloff
Цитата(igor_bogomolov @ 28.9.2010, 20:19) *
Как тебе такая структура
Раскрывающийся текст
/symbolbrowser
    |---/juffed
    |        |---/resources
    |                 |---/images
    |                 |---/translations
    |                 |--- resources.qrc
    |        |--- juffed.pro
    |        |--- ...
    |---/kate
    |        |---/resources
    |                 |---/images
    |                 |---/translations
    |                 |--- resources.qrc
    |        |--- CMakeLists.txt
    |        |--- ...
    |---/common # Все общие файлы
    |        |---/resources
    |                 |---/images
    |                 |---/translations
    |                 |--- resources.qrc
    |        |---/parsers
    |                 |--- parsers.pri
    |                 |--- parsers.cmake
    |                 |--- ...
    |        |--- common.pri
    |        |--- common.cmake
    |        |--- ...
    |--- README.TXT
    |--- LICENSE
    |--- ... # можно приложить набор скриптов для сборки разных версий

Да, не плохо. Спасибо.
Но еще появились доп. ограничения связанные с системой сборки juffed-а. Похоже можно что-то замутить через SVN .
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.