CMakeのfind_package
ドキュメントは言う:CMakeでは、find_packageを呼び出した後、インポートされたターゲットを見つけるにはどうしたらいいですか?
パッケージが発見されたパッケージ固有の情報は、パッケージ自体によって文書化ターゲットの変数を通じて提供してインポートされます。
私はライブラリを持っている場合、私はfind_package
を使用して得ることができABCD
は、cmakeのは、適切なABCDConfig.cmake
ファイルを見つけることができます提供しました。次に、上述のように、インポートされたターゲット(例えば、abcd10 abcdExtra
)を作成する。
それから私は、コンパイルなどのように、これらのライブラリをリンクすることができます。問題は他の誰かが書いたABCDConfig.cmake
ファイルの内容は、ターゲットの名前がほとんどかもしれない方法に応じて、ある
target_include_directories(mytarget abcd10 abcdExtra)
target_link_libraries(mytarget abcd10 abcdExtra)
まったく同じライブラリかもしれませんが、何か(例:abcdlib
、abcdX64
、Foobar
、...)です。ABCD
!
私は多くのドキュメントを見てきましたが、インポートされたターゲットを取得する方法がわかりません。そのため、インポートされた共通のターゲット名が何であるかを知り、 。これは私には少し不合理なようです。私はここに何かを逃していますかどのようにして、これらの詳細を知らないで、異なるパッケージマネージャ(または自分自身のABCDConfig.cmake
ファイルを書いた人)によって生成されたライブラリを読み込んでリンクすることができますか?