1

言い換えられた質問

CMake が FindXXX.cmake モジュールを使用する順序を制御するにはどうすればよいですか?

私の正確な問題

たとえば、OpenSceneGraph には独自の FindZLIB が付属していますが、これは Cmake に付属の FindZLIB ほど優れていません。OSG に付属の FindZLIB モジュールは、ZLIB インストールを見つけることができません。ZLIB を CMAKE_INSTALL_PREFIX パスにインストールしました。

ビルド中に、cmake はこれについて警告します。

OSG はモジュール パスを独自のディレクトリに設定するため、FindPNG (CMake から) は OpenSceneGraph に付属の FindZLIB を不適切に使用します。そのため、ZLIB を見つけることができません。

どうすればこれを防ぐことができますか? ExternalProject_Add を呼び出して OpenSceneGraph を構築しています。cmakeポリシー(正確にはCMP0017)を設定すると修正される可能性があることを読みましたか?ExternalProject_Add を使用してそれを行う方法がわかりません。

詳細

これは、cmake (生成されたビジュアル スタジオ ソリューションから呼び出される) が OSG を構成およびビルドしようとしたときに関連する警告です。 /FindPNG.cmake:34 (find_package):

4>    File C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindPNG.cmake
4>    includes E:/project/third-party/OpenSceneGraph/CMakeModules/FindZLIB.cmake
4>    (found via CMAKE_MODULE_PATH) which shadows C:/Program Files (x86)/CMake
4>    2.8/share/cmake-2.8/Modules/FindZLIB.cmake.  This may cause errors later on
4>    .
4>  
4>    Policy CMP0017 is not set: Prefer files from the CMake module directory
4>    when including from there.  Run "cmake --help-policy CMP0017" for policy
4>    details.  Use the cmake_policy command to set the policy and suppress this
4>    warning.
4

1 に答える 1