2015-08-28 19 views
6

पर्ल समुदाय ने पर्ल के सभी निर्माणों के लिए MACOSX_DEPLOYMENT_TARGET=10.3 पर भरोसा किया है, ठीक है, लंबे समय तक। लेकिन अब, एल कैपिटन बीटा के साथ, it no longer works। ऐसा लगता है कि उन्हें इसे टक्कर देना चाहिए, लेकिन क्या? क्या ओएस एक्स के रिलीज द्वारा समर्थित सबसे पुराना संस्करण जो प्रोग्राम्सैटिक रूप से इसे सेट करने का कोई तरीका है जिस पर पर्ल वर्तमान में बनाया जा रहा है? या गतिशील रूप से सेट करने के लिए कोई और तरीका है? या यह स्थैतिक और समय-समय पर अद्यतन होना चाहिए? यदि उत्तरार्द्ध, यह ओएस एक्स के पुराने संस्करणों पर बनाता है कैसे प्रभावित करता है?MACOSX_DEPLOYMENT_TARGET सेट करने का सबसे अच्छा तरीका क्या है?

+0

मुझे मैकोज़ 10.3 चलाने वाला कोई भी व्यक्ति नहीं जानता ... क्या आप वास्तव में 2003 में जारी ओएस का समर्थन करना चाहते हैं? –

+0

@MichaelDautermann लोग सभी प्रकार की पागल विन्यास पर पर्ल परीक्षण करते हैं। [यहां कोई है] (https://rt.perl.org/Ticket/Display.html?id=123985#txn-1334270) जो ओएस एक्स 10.4 के रूप में अब तक परीक्षण करता है। – theory

उत्तर

2

यह hints/darwin.sh में काफी सरल परिवर्तन होना चाहिए, जो जांचता है कि ओएसएक्स संस्करण क्या चल रहा है और तदनुसार MACOSX_DEPLOYMENT_TARGET सेट करता है।

पर्ल एक ओपन सोर्स प्रोजेक्ट है, और डेवलपर समय पर हमेशा इतना छोटा होता है। यदि आप इसके लिए पैच बनाना चाहते हैं और इसे पी 5 पी पर जमा करना चाहते हैं, तो मुझे यकीन है कि इसकी सराहना की जाएगी।

+0

धन्यवाद, मैंने [बग रिपोर्ट] (https://rt.perl.org/Ticket/Display.html?id=123985) में उस समाधान को प्रोत्साहित किया है। – theory

0

@ Calle-Dybedahl के उत्तर को स्वीकृत, क्योंकि यह तकनीकी रूप से सही है। पर्ल 5 कोर हैकर जर्को हिटानीमी ने this solution को धक्का दिया, जो एक नज़र में अपेक्षा की तुलना में थोड़ा अधिक जटिल साबित हुआ। बुनियादी नुस्खा वह पर नीचे आया था:

OS X 10.6 या इसके बाद के संस्करण के लिए, किसी भी अधिक का उपयोग नहीं करते MACOSX_DEPLOYMENT_TARGET, toolchains बिना ठीक काम करना चाहिए। अब तक तैनाती लक्ष्य 10.3 पर कड़ी मेहनत की गई थी। यह तर्क RT#117433 से आता है।

ओएस एक्स 10.3 से 10.5 तक रिलीज के लिए, कोई बदलाव नहीं, अभी भी MACOSX_DEPLOYMENT_TARGET=10.3 लिंकिंग के लिए उपयोग कर रहा है।

ओएस एक्स 10.3 से पहले रिलीज के लिए, कोई बदलाव नहीं, अभी भी MACOSX_DEPLOYMENT_TARGET=10.3 का उपयोग नहीं कर रहा है।

नई: हमेशा env var $MACOSX_DEPLOYMENT_TARGET, अगर सेट से ccflags और ldflags करने के लिए -mmacosx-version-min जोड़ें। यदि var सेट नहीं है, sw_vers (1) से ओएस एक्स संस्करण से मिनट सेट करें। Var को सेट करना पहले ओएस एक्स संस्करणों के लिए पर्ल बनाने और पैकेजिंग के लिए आसान हो जाना चाहिए।

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