2013-12-07 15 views
12

外部ライブラリの場合、ユーザーはCMAKE_FLAGSにパスを追加するか、または-DMYLIB_ROOTを追加することで、非標準の場所を指定できます。 CMakeスクリプトの中で、私はライブラリのpkg-config pcファイルを探したいと思います。 pcファイルは標準フォルダにないので、pkg-configでFindPkgConfigpkg_search_moduleを使って見つけられません。CMakeスクリプト内の一時的なパスをpkg-configに追加しますか?

私はPKG_CONFIG_PATHにユーザーが指定したパスを追加しようとしたが、それを無視しているように見えた:

include(FindPkgConfig) 
set(PKG_CONFIG_PATH "${PKG_CONFIG_PATH}:${MYLIB_ROOT}/lib/pkgconfig") 
pkg_search_module(PKG_MYLIB mylib) 

if(${PKG_MYLIB_FOUND}) 
... 

私は修正PKG_CONFIG_PATHセットで端末からのpkg-config設定を呼び出すと、それはPCのファイルを見つけます。私は間違って何をしていますか? pkg_search_moduleはどのように動作させることができますか?私はCMakeから直接pkg-configを呼び出すことを避けたいと思います。

答えて

8

これは既知の問題で、ticket exists in CMake's bugtrackerですが、開発者の関心が足りないためバックロックされています。私はパッチを最初に提供しなければならないと思う。

:bugtrackerによれば、この機能は実装されており、CMake 3.1の一部である。

10

たぶん、次はあなたが正しい仕事

set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:${MYLIB_ROOT}/lib/pkgconfig") 
+0

を行います、それはCMakeの3.0以前を使用した場合に移動するための方法です。 3.1では自動的にインクルードされます。 – usr1234567

+0

私のために働く唯一のソリューションと思われる... –

関連する問題