Как управлять структурой каталогов проекта, который использует стороннюю библиотеку с открытым исходным кодом? - PullRequest
3 голосов
/ 11 декабря 2011

Я разрабатываю приложение с открытым исходным кодом. Структура каталогов моего проекта:

app
|-include
|-src
|-doc
|-build
|-lib
|-bin

Я хочу использовать другую библиотеку с открытым исходным кодом. Есть несколько вариантов:

  • Добавить исходный код сторонней библиотеки в каталог include и src.
  • Скомпилируйте стороннюю библиотеку и добавьте в каталог include и lib.
  • Создайте каталог third_party и добавьте в него полный исходный код сторонней библиотеки.
  • Создайте каталог third_party и добавьте в него скомпилированную стороннюю библиотеку.

Какой лучший выбор? Есть ли лучший способ управлять структурой каталогов проекта, который использует стороннюю библиотеку с открытым исходным кодом?

Ответы [ 2 ]

3 голосов
/ 11 декабря 2011
  • Если вы когда-либо планируете обновить стороннюю библиотеку, будет гораздо удобнее хранить ее в определенном подкаталоге.Вам не нужно иметь конкретный «сторонний» каталог;Вы можете назвать его по имени библиотеки.

  • Подумайте, что входит в систему контроля версий.

    • Если вы копируете стороннюю библиотеку в свой repository , тогда вы НЕ ДОЛЖНЫ включать скомпилированные продукты (используя вместо этого исходный код), поскольку их, как правило, невозможно различить и для конкретной платформы.
    • Если пользователь собирается получитьбиблиотеку отдельно и добавьте ее в дерево вашего проекта, затем использование подкаталога упростит разархивирование и гарантирует отсутствие конфликтов имен;исходный код против двоичного должен быть оставлен на усмотрение пользователя.
    • С другой стороны, если вы используете ссылку, которой управляет ваша VCS (например, внешние SVN или подмодули Git), вы, вероятно, будете иметь включить источник в подкаталог.
0 голосов
/ 28 июня 2016

В зависимости от ситуации вам следует учитывать одну проблему: придется ли вам когда-нибудь учитывать эти сторонние компоненты с открытым исходным кодом и соблюдение лицензий и т. Д. Управлять подобными вещами проще, если вы храните сторонние файлы в своих собственных каталогах. Полезно было бы иметь под рукой неизмененный исходный код и лицензии, а также ссылку туда, где вы получили исходный код и можете его получить снова. Я работал в компаниях, где были процессы проверки соответствия лицензий, которые было бы легче пройти, если бы сторонние источники были разделены таким образом.

https://softwareengineering.stackexchange.com/questions/234511/what-is-the-best-practice-for-arranging-third-party-library-licenses-paperwork имеет отношение к этому.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...