私は C++ リポジトリ用に CMake を少し試していますが、追加の CMake コードをあまり使わずに、同じソース ツリー内のライブラリに対してアプリケーションを簡単にビルドできるようにしようとすると、いくつかの問題が発生します。
ソース ツリーのレイアウトは基本的に次のとおりです。
ROOT
libs/
lib1/
lib2/
lib3/
apps/
app1/
app2/
app3/
ライブラリは互いに独立しており、アプリケーションは 1 つまたは複数のライブラリにリンクできます。
現在、各アプリケーションとライブラリをサブディレクトリとしてリストするルート CMakeLists.txt があるため、ライブラリが変更されてアプリケーションが再構築された場合、ライブラリも再構築されます。これは問題なく動作し、CMake はライブラリの場所を指定しなくてもリンクしますが、インクルード ディレクトリに対して同様のことを行う方法がわかりません。
これを処理する一般的な方法はありますか?各アプリケーションの CMakeLists.txt で、必要なライブラリへのパスを手動でリストする必要はありません。