2 つのプロジェクトがあり、どちらも CMake を使用しています。ここで、プロジェクトの 1 つをライブラリとして別のプロジェクトに含めたいと考えていますが、スタンドアロン プロジェクトとしてコンパイルする機能は維持したままです。
これまでに行ったことは次のとおりです。バージョン管理システムを使用して、親プロジェクトのサブディレクトリにある子プロジェクトのコピーを複製します。「add_subdirectory」を使用して、子プロジェクトの CMakeLists.txt を親プロジェクトに含めました。また、子プロジェクトの一部のターゲットの名前を変更することで、ターゲット間の名前の競合を修正しました。
ただし、私が実行している問題は、子プロジェクトのさまざまな構成テストが実行されていないように見えることです。たとえば、子プロジェクトは FindThreads モジュールを使用して、使用可能な同期プリミティブを判別します。親プロジェクトはスレッド化の問題を認識していないため、これに関連するテストはありません。同様に、子プロジェクトには、親プロジェクトでは必要のないヘッダーなどのさまざまなテストがあります。これらのテストはどれも実行されていないようであり、これらのテストで定義されたシンボルは CMakeCache.txt ファイルに追加されていません。
親プロジェクトの CMakeLists.txt に、子プロジェクトのすべてのテスト (主に、親に関係のないプラットフォーム固有の問題を処理する) を巻き上げる必要はありません。