पर स्पष्ट रूप से निर्दिष्ट नहीं होने पर स्वचालित रूप से कस्टम पथ पर स्थापना उपसर्ग सेट करें, कुछ आंतरिक परीक्षणों के लिए, मैं बिल्ड निर्देशिका के उपनिर्देशिका में डिफ़ॉल्ट रूप से अधिष्ठापन स्थापित करना चाहता हूं, जब तक उपयोगकर्ता द्वारा स्पष्ट रूप से ओवरराइड नहीं किया जाता। मैं जानता हूँ कि उपयोगकर्ता द्वारा एक उपसर्ग स्थापित निर्दिष्ट कर सकते हैं:कमांड लाइन
$ cmake -DCMAKE_INSTALL_PREFIX=/foo/bar ..
लेकिन, यह है, उदा लिए डिफ़ॉल्ट होने चाहिए यह निर्दिष्ट करता है, तो उपयोगकर्ता नहीं करता है ${PWD}/installed
।
परिवर्तनीय CMAKE_INSTALL_PREFIX
पहले से ही /usr/local
पर सेट है, इसलिए मैं यह देखने के लिए जांच नहीं कर सकता कि यह इसे सेट करने से पहले अनसेट/खाली है या नहीं।
option(ENABLE_INSTALL_PREFIX "Install build targets to system (path given by '-DCMAKE_INSTALL_PREFIX' or '${CMAKE_INSTALL_PREFIX}' if not specified)." OFF)
if (ENABLE_INSTALL_PREFIX)
set (CMAKE_INSTALL_PREFIX installed CACHE PATH "Installation root")
else()
set (CMAKE_INSTALL_PREFIX installed CACHE PATH "Installation root" FORCE)
endif()
मेरे सवाल कर रहे हैं:
मेरे वर्तमान समाधान है कि उपयोगकर्ता निर्दिष्ट करने के लिए कि CMAKE_INSTALL_PREFIX
चर का सम्मान हो जाता है को लागू करने की है एक कस्टम स्विच जोड़ना है
(क) वहाँ रहे हैं किसी भी मुद्दे उपरोक्त के साथ, CMAKE_INSTALL_PREFIX
प्राप्त करने के लिए सीएमके को पारित करने के लिए आवश्यक अतिरिक्त ध्वज की परेशानी से परे?
(बी) क्या ऊपर प्राप्त करने के लिए एक बेहतर, साफ, अधिक मजबूत, अधिक मूर्खतापूर्ण और/या कम परेशान तरीका है?
धन्यवाद।
बिल्कुल सही! धन्यवाद! – Jeet
मेरी इच्छा है कि मुझे कुछ दिन पहले यह पोस्ट मिले, जबकि मैं सही चीज करने के लिए कई बाहरी प्रोजेक्ट निर्भरताओं को प्राप्त करने की कोशिश कर अपने बालों को खींच रहा था। धन्यवाद! – KarateSnowMachine