通常find_package(foo)
はfind_package()がCMakeでどのように動作するかについてコンセンサスがありますか?
${FOO_FOUND}
${FOO_INCLUDE_DIRS}
${FOO_LIBRARIES}
を定義しますしかし、唯一の${FOO_FOUND}
はCMakeのドキュメントに記載されています。そして、いくつかのライブラリはこの規則に従わない。 Glogなど。
find_package()
の2つのモードがあります。 1つはモジュールモードで、FindFoo.cmake
を使用します。もう一つは、コンフィグモードで、foo-config.cmake
を使用しています。
foo-config.cmake
はfooの管理者によって提供され、FindFoo.cmake
は他人が書いた可能性があります。私はそうですか?開発者の間で変数を定義する方法のコンセンサスはありますか?
"インポートされたターゲット"は、CMake 2.6以降の新機能です。これは、libを見つけるためのより良い方法を提供します。したがって、${FOO_INCLUDE_DIRS}
${FOO_LIBRARIES}
の使用は従来の方法と見なされるべきですか?あるいは、それらが互換性のために鍵を握るべきですか?これら三つの変数を定義することをお勧め私が見つけた
二つのリンク:設定ファイルに関して
https://cmake.org/Wiki/CMake/Tutorials/How_to_create_a_ProjectConfig.cmake_file https://coderwall.com/p/qej45g/use-cmake-enabled-libraries-in-your-cmake-project-iii
ヒント:旧式のWikiページにリンクしています。 ['cmake-packages'](https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html)はあなたが参照できるものです。多かれ少なかれコンセンサスを説明している。 [@ruslo](http://stackoverflow.com/users/2288008/ruslo)の[this](https://github.com/forexample/package-example)のようないくつかのチュートリアルの例があります。 – Florian