1

C++ ヘッダー ファイルのコレクションを整理して、他のプロジェクトに簡単にインクルードできるようにしたいと考えています。また、これらのプロジェクトの変更を元のファイルに簡単にマージできる必要があります。
今のところ、約 30 個のヘッダー ファイル、単体テストを含む約 20 個のファイル、および Doxygen ドキュメントで部分的に参照されている使用例を含む約 15 個のファイルがあります。コードは主に Linux で開発されていますが、(少なくとも理論的には) プラットフォームに依存しない必要があります。

ファイルを整理する最初のアイデアは次のとおりです (プロジェクトの名前が であるとしますxyz):

xyz/
xyz/examples/
unit_tests/
README

次に、別のプロジェクトでこれを使用する最も簡単な方法は、xyz/サブディレクトリを独自のソース ディレクトリにコピーし、プロジェクトに次のようなヘッダー ファイルを含めることです。

#include "xyz/something.h"

これの利点の 1 つは、ビルド システムにパスを追加する必要がなく、変更なしで機能することです。

git submoduleファイルをサブディレクトリに置くことの欠点は、およびでの使用が難しいことgit subtreeです。特に、git subtree splitリポジトリのサブディレクトリのみがサブツリーとして使用されている場合は機能しませんでした。(ただし、これはさらに別のSOの質問になる可能性があります...)

私は他のいくつかの (ヘッダーのみの) リポジトリを調べましたが、多くの場合、それらのファイルはinclude/include/xyz/src/または単にリポジトリのルートにあります。

あなたの経験は何ですか、あなたの好みのレイアウトは何ですか?
どのようなワークフローを提案しますか? またはまたはまったく異なるもの
を使用しますか?git submodulegit subtree

4

1 に答える 1

0

パブリック API ヘッダー ファイルを別のリポジトリとして作成します。次に、ライブラリ コードとテストにサブモジュールとして含めることができます。また、ライブラリのユーザーは、リポジトリにサブモジュールとしてそれを含めます。

于 2012-08-16T20:46:03.890 に答える