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 submodule
git subtree