yaml-cpp
gitリポジトリをサブモジュールとして追加し、add_subdirectory
を使ってCMakeプロジェクトに追加しました。正しく既存のプロジェクトにyaml-cppを追加するときにCMake変数を設定しました
すべては問題ありませんが、YAML_CPP_INCLUDE_DIR
とYAML_CPP_LIBRARIES
を手動で設定して自分のターゲットに設定する必要があります。
ファイルyaml-cpp-config.cmake
(ビルドフォルダに生成された)、私はちょうどそれを含めるようにしようとしたこれらの変数を設定することがありますので:
include("${CMAKE_BINARY_DIR}/yaml-cpp/yaml-cpp-config.cmake")
は、その後私は得る:
CMake Error at /bla/bla/build/yaml-cpp/yaml-cpp-config.cmake:11 (include):
The file
/bla/bla/aml-cpp/yaml-cpp-targets.cmake
was generated by the export() command. It may not be used as the argument
to the include() command. Use ALIAS targets instead to refer to targets by
alternative names.
私は本当にドン」このメッセージを理解する。ハードコーディングされた変数を設定することなく、yaml-cpp
ディレクトリとライブラリをターゲットにどのように提供しますか?
私はへの道を探していません。include()
ファイルを作成する必要はありません。私はちょうど私がどのように私のターゲットに必要な情報を提供する必要があります興味があります。
残念ながらyaml-cpp
は、target_include_directories()
を使用していないようですが、必要に応じて自動的にインクルードディレクトリが設定されます。
export
コマンドの
descriptionから
これは、開発者の警告であるとCMakeポリシー[CMP0024](https://cmake.org/cmake/help/latest/policy/CMP0024.html)で制御できます。警告の理由: "CMake 2.8.12以前では、export()コマンドの結果とinclude()コマンドの使用が許可されました。これは、export()コマンドがconfigure-time ...将来のリファクタリングは、生成時に実行されるexport()コマンドの効果を変更します。別の名前でターゲットを参照することが目標である場合は、代わりにALIASターゲットを使用します。 – Florian