बिल्डिंग J2ObjC

ज़रूरी शर्तें

  • Apple Mac OS X सिस्टम
  • Xcode का सबसे नया वर्शन
  • JDK JDK 11 इंस्टॉल किया गया
  • Apache Maven
  • Google प्रोटोकॉल बफ़र सोर्स इस्तेमाल करने का सुझाव दिया जाता है, लेकिन यह ज़रूरी नहीं है

Mac सेटअप

  • यह चलाकर, Xcode कमांड लाइन टूल इंस्टॉल करें:
sudo xcode-select --install
  • अपने .bash_profile में जोड़ें:
export JAVA_HOME=`/usr/libexec/java_home -v 11`

J2ObjC प्रोजेक्ट का फ़ोर्क बनाना

J2ObjC प्रोजेक्ट को फ़ोर्क करने के लिए, इसका मुख्य पेज खोलें और फ़ोर्क बटन पर क्लिक करें:

Fork

अपने GitHub खाते का नाम चुनें और कुछ ही सेकंड में फ़ोर्क बन जाएगा.

इसके बाद, अपने लोकल सिस्टम को डेवलप करने के लिए, अपने फ़ोर्क की एक कॉपी क्लोन करें. सबसे पहले, [क्लोन या डाउनलोड बटन] पर क्लिक करें, फिर क्लिपबोर्ड पर कॉपी करें बटन क्लिक करें:

क्लोन

इसके बाद, किसी लोकल डायरेक्ट्री में क्लोन करें:

git clone (Command-V)  # Paste the copied URL

प्रोटोबफ़ इंस्टॉल करें

J2ObjC बनाने से पहले आपके पास Protobuf C++ इंस्टॉल होना चाहिए.

प्रोटोबफ़ बाइनरी पैकेज को इंस्टॉल करने के लिए, Homebrew का इस्तेमाल करें:

brew install protobuf

आपको PROTOBUF_ROOT_DIR को उस रूट पर सेट करना होगा जहां प्रोटोबफ़ इंस्टॉल है. आम तौर पर, Homebrew के लिए डिफ़ॉल्ट तौर पर सेट /usr/local सेटिंग लागू होती है. अपने .bash_profile में यह जोड़ें:

export PROTOBUF_ROOT_DIR=/usr/local # or your custom Homebrew dir

पुष्टि करने के लिए, $PROTOBUF_ROOT_DIR/bin/protoc --version चलाएं.

J2ObjC बिल्डिंग

टर्मिनल विंडो में कमांड-लाइन से बिल्ड करने के लिए, इसे चलाएं:

# Build just the translator and libraries
make dist

# Build the full distribution (including frameworks)
make frameworks

# Build the protocol buffer compiler and runtime for J2ObjC
make protobuf_dist

# Build everything that is included in the project's distribution bundles
make all_dist

प्रोटोकॉल बफ़र के लिए वैकल्पिक सेटअप

J2ObjC प्रोटोकॉल बफ़र कंपाइलर और रनटाइम के लिए, प्रोटोकॉल बफ़र (कम से कम 3.21.3) इंस्टॉल करना ज़रूरी है:

  • प्रोटोकॉल बफ़र 3.21.7 रिलीज़ से सोर्स कोड डाउनलोड करें.
  • README से, C++ इंस्टॉल करने के निर्देशों का पालन करें. इंस्टॉल करने की जगह तय करने के लिए, --prefix के विकल्प पर ध्यान दें.
  • प्रोटोकॉल बफ़र इंस्टॉल होने की जगह दिखाने के लिए, PROTOBUF_ROOT_DIR एनवायरमेंट वैरिएबल तय करें.

पोस्ट Java 8 भाषा सुविधाएँ.

सूचना देखें. पिछले सेक्शन में दिए गए चरणों के अलावा, JDK 11 के साथ JRE मॉड्यूल बनाना ज़रूरी है:

JAVA_HOME=`/usr/libexec/java_home -v 11` \
make -C jre_emul/ -f java.mk emul_module_dist

J2ObjC का टेस्ट करना

टर्मिनल विंडो में कमांड-लाइन से जांच करने के लिए, इसे चलाएं:

# Run translator and library unit tests
make test

# Run all unit tests, including for protocol buffers
make test_all

बिल्ड को साफ़ करना/रीसेट करना

# Remove all files generated by the build
make clean

पैरलल बिल्ड

J2ObjC बिल्ड, पैरलल बिल्ड के साथ काम करता है. इसके बारे में -j<n> फ़्लैग का इस्तेमाल करके बताया जाता है, जहां n से ज़्यादा से ज़्यादा टास्क बनाए जा सकते हैं. ज़्यादा से ज़्यादा संख्या इस बात पर निर्भर करती है कि आपका सिस्टम कितना तेज़/बेहतर है. हमारा सुझाव है कि आप -j4 से शुरुआत करें. अगर आपका सिस्टम इसे हैंडल कर सकता है, तो बिल्ड का समय कम करने के लिए इस संख्या को बढ़ाएं. साथ ही, अगर सिस्टम की गड़बड़ियों की वजह से कोई गड़बड़ी नहीं होती है, तो इसे कम कर दें.

प्रोसेसर आर्किटेक्चर बनाना

j2objc रिलीज़ 2.3 तक, 32-बिट iOS आर्किटेक्चर ("iphone" और "सिम्युलेटर") को सार्वजनिक डिस्ट्रिब्यूशन में शामिल नहीं किया गया है. पहले J2OBJC_ARCHS एनवायरमेंट वैरिएबल तय करके j2objc बनाया जा सकता है:

$ export J2OBJC_ARCHS="iphone simulator macosx iphone64 watchv7k watch64 watchsimulator simulator64"
$ make -j8 all_dist

इसका इस्तेमाल, बिल्ड की रफ़्तार बढ़ाने के लिए भी किया जा सकता है. इसके लिए, आपको सिर्फ़ उन आर्किटेक्चर की जानकारी देनी होगी जिनकी आपके ऐप्लिकेशन को ज़रूरत है. जैसे, सिर्फ़ 64-बिट iOS ("iphone64") और इससे जुड़े सिम्युलेटर ("सिम्युलेटर64") को बनाने के लिए, मेक चलाने से पहले J2OBJC_ARCHS="iphone64 simulator64" को तय करें.