次の構造を考慮してください。
dev_root/
\__ common/
\__ inc/
\__ src/
\__ CMakeLists.txt
\__ project1/
\__ inc/
\__ src/
\__ CMakeLists.txt
\__ project2/
\__ inc/
\__ src/
\__ CMakeLists.txt
Project1 と Project2 は別のプロジェクトです。どちらも共通のコードを使用します。IDE で編集できるように、いくつかの一般的なソース ファイルを各プロジェクトのビジュアル スタジオ プロジェクト ファイルに (選択的に) リストしたいと考えています。
共通コード用のスタンドアロン ライブラリは必要ありません。
ここでは、たとえば project1 の cmake ファイルで相対パスを使用します。
set(_hdr
inc/proj1.h
../common/inc/common1.h
)
set(_src
src/proj1.cxx
../common/src/common1a.cxx
../common/src/common1b.cxx
)
source_group("common\\inc" FILES
../common/inc/common1.h
)
source_group("common\\src" FILES
../common/src/common1a.cxx
../common/src/common1b.cxx
)
source_group("inc" FILES inc/proj1.h)
source_group("src" FILES src/proj1.cxx)
add_executable( project1 ${_src} ${_hdr} )
これは柔軟ではありません。フォルダーを移動したい場合は、すべての CMakeLists.txt を確認して変更する必要があります。依存関係を分離するためのより洗練された方法はありますか、または共通のソース ファイルを処理するより良い方法は何ですか?
どんな提案も歓迎します。どうもありがとう。