2013-12-07 4 views
12

बाहरी पुस्तकालयों के लिए उपयोगकर्ता CMAKE_FLAGS पर पथ जोड़कर या -DMYLIB_ROOT जोड़कर एक गैर-मानक स्थान निर्दिष्ट कर सकता है। सीएमके स्क्रिप्ट के भीतर मैं लाइब्रेरी की पीकेजी-कॉन्फ़िगर पीसी फ़ाइल ढूंढना चाहता हूं। चूंकि पीसी फ़ाइल मानक फ़ोल्डर में नहीं है, इसलिए यह FindPkgConfig के pkg_search_module के साथ pkg-config द्वारा नहीं मिला है।सीएमके स्क्रिप्ट के भीतर 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 कहते हैं, यह पीसी फ़ाइल खोजने । मैं क्या गलत कर रहा हूं? मैं pkg_search_module कैसे काम कर सकता हूं? मैं सीधे सीएमके से पीकेजी-कॉन्फ़िगरेशन को कॉल करने से बचना चाहता हूं।

उत्तर

8

यह एक ज्ञात मुद्दा और ticket exists in CMake's bugtracker है, लेकिन डेवलपर ब्याज की कमी के कारण यह बैकलाक्ड है। मुझे लगता है कि किसी को पहले पैच प्रदान करना होगा ...

संपादित करें: बगट्रैकर के अनुसार सुविधा लागू की गई है और यह सीएमके 3.1 का हिस्सा है।

10

हो सकता है कि निम्नलिखित काम

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

आप ठीक कह रहे हैं क्या करेंगे, यह है कि जब CMake 3.0 या उससे अधिक प्रयोग किया जाता है जाने के लिए रास्ता नहीं है। 3.1 के साथ यह स्वचालित रूप से शामिल किया जाएगा। – usr1234567

+0

एकमात्र समाधान होने लगता है जो मेरे लिए काम करता है ... –

संबंधित मुद्दे