CMake と CPack を使用してライブラリを構成およびパッケージ化します。私は独自の find-module: を作成しFindMyLib.cmake
ました。
CMake/CPack にこのファイルを CMake モジュール ディレクトリに追加して、将来の開発者がFIND_PACKAGE(MyLib)
私のライブラリを使用するように簡単に指定できるようにするにはどうすればよいですか?
プロジェクトでカスタムを設定CMAKE_MODULE_PATH
して配布できFindFoo.cmake
ます。例えば:
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
CMake モジュール ディレクトリは、CMake 自体のインストール ツリーの一部であるため、そこに何も追加しようとしないでください。
CMake モジュール ディレクトリには、Kitware によって作成された、または少なくともレビューされたモジュールが含まれています。そこに独自のモジュールを追加すると、プロジェクトのユーザーに、これがプロジェクトにも当てはまったという印象を与えます。
FindMyLib.cmake を で検索された場所の 1 つにインストールすることをお勧めしfind_package
ます。
<prefix>/ (Windows) <prefix>/(cmake|CMake)/ (Windows) <prefix>/<name>*/ (Windows) <prefix>/<name>*/(cmake|CMake)/ (Windows) <prefix>/(lib/<arch>|lib|share)/cmake/<name>*/ (Unix) <prefix>/(lib/<arch>|lib|share)/<name>*/ (Unix) <prefix>/(lib/<arch>|lib|share)/<name>*/(cmake|CMake)/ (Unix) <prefix>/<name>.framework/Resources/ (Apple) <prefix>/<name>.framework/Resources/CMake/ (Apple) <prefix>/<name>.framework/Versions/*/Resources/ (Apple) <prefix>/<name>.framework/Versions/*/Resources/CMake/ (Apple) <prefix>/<name>.app/Contents/Resources/ (Apple) <prefix>/<name>.app/Contents/Resources/CMake/ (Apple)
検索方法の詳細については、ドキュメントをfind_package
参照してください。find_package
この場合、CMake のパッケージ化チュートリアルも役立ちます。
許可する最善の方法
将来の開発者は FIND_PACKAGE(MyLib) を指定するだけでライブラリを使用できます
検索モジュールではなく、パッケージ構成ファイル (-config.cmake) を作成することです。パッケージ構成ファイルは、FindPackage モジュールが検索するフォルダーの 1 つにインストールする必要があります (/lib/package/ または /lib/cmake/package のようなものが優先されます)。
FindPackage モジュールは、設定ファイルが見つかった場合、自動的に読み込みます。
CMake wiki には、 https: //gitlab.kitware.com/cmake/community/wikis/doc/tutorials/Packaging でより詳細な手順があります。