বিল্ডিং J2ObjC

আবশ্যকতা

  • অ্যাপল ম্যাক ওএস এক্স সিস্টেম
  • এক্সকোডের সর্বশেষ সংস্করণ
  • JDK 21 ইনস্টল করা হয়েছে
  • অ্যাপাচি মাভেন
  • (প্রস্তাবিত কিন্তু প্রয়োজন নয়) গুগল প্রোটোকল বাফার উৎস

ম্যাক সেটআপ

  • Xcode কমান্ড লাইন টুলগুলি ইনস্টল করার জন্য নিম্নলিখিতটি ব্যবহার করুন:
sudo xcode-select --install
  • আপনার .bash_profile এ যোগ করুন:
export JAVA_HOME=`/usr/libexec/java_home -v 21`
  • যদি Maven ইনস্টল না থাকে (টার্মিনালে mvn -version চেষ্টা করুন), Homebrew ব্যবহার করুন:
brew install maven

J2ObjC প্রকল্পের একটি ফর্ক তৈরি করুন

J2ObjC প্রজেক্টটি ফোর্ক করতে, এর প্রধান পৃষ্ঠাটি খুলুন এবং ফোর্ক বোতামটি ক্লিক করুন:

কাঁটাচামচ

আপনার GitHub অ্যাকাউন্টের নাম নির্বাচন করুন, এবং কয়েক সেকেন্ডের মধ্যে ফর্কটি তৈরি হয়ে যাবে।

এরপর, আপনার ফর্কের একটি কপি আপনার স্থানীয় সিস্টেমে ডেভেলপমেন্টের জন্য ক্লোন করুন। প্রথমে, [ক্লোন বা ডাউনলোড বোতাম] ক্লিক করুন, তারপর কপি টু ক্লিপবোর্ড বোতামে ক্লিক করুন:

ক্লোন

তারপর একটি স্থানীয় ডিরেক্টরিতে ক্লোন করুন:

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

প্রোটোবফ এবং অ্যাবসেইল ইনস্টল করুন

J2ObjC তৈরি করার আগে আপনার প্রোটোবফ C++ ইনস্টল করা প্রয়োজন।

প্রোটোবফ বাইনারি প্যাকেজ ইনস্টল করতে, হোমব্রু ব্যবহার করুন:

brew install protobuf

প্রোটোবফ সি++ বিল্ড এখন অ্যাবসেইল লাইব্রেরির উপর নির্ভর করে, তাই এটিও ইনস্টল করুন:

brew install abseil

আপনাকে 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 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 পরীক্ষা করা হচ্ছে

টার্মিনাল উইন্ডোতে কমান্ড-লাইন থেকে পরীক্ষা করতে, চালান:

# 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 দিয়ে শুরু করার পরামর্শ দিচ্ছি। যদি আপনার সিস্টেম এটি পরিচালনা করতে পারে তবে বিল্ড সময় কমাতে সংখ্যাটি বাড়ান, এবং যদি সিস্টেম ত্রুটির সাথে make ব্যর্থ হয় তবে এটি হ্রাস করুন।

৩২-বিট iOS আর্কিটেকচার তৈরি করা

৩২-বিট iOS আর্কিটেকচার ("আইফোন" এবং "সিমুলেটর") ডিফল্টভাবে তৈরি করা হয় না। আপনি J2OBJC_ARCHS এনভায়রনমেন্ট ভেরিয়েবলে প্রথমে এগুলি নির্দিষ্ট করে j2objc তৈরি করতে পারেন:

$ export J2OBJC_ARCHS="iphone simulator"
$ make -j8 all_dist

সমর্থিত আর্কিটেকচারের একটি উপসেট নির্দিষ্ট করে সাধারণত স্থানীয় বিল্ডগুলিকে গতিশীল করতে ব্যবহার করা যেতে পারে, শুধুমাত্র আপনার অ্যাপের প্রয়োজনীয় আর্কিটেকচারগুলি নির্দিষ্ট করে। শুধুমাত্র 64-বিট iOS ("iphone64") এবং এর সাথে সম্পর্কিত সিমুলেটর ("simulator64") তৈরি করতে, উদাহরণস্বরূপ, make চালানোর আগে J2OBJC_ARCHS="iphone64 simulator64" সংজ্ঞায়িত করুন।

সম্পূর্ণ বিতরণ তৈরি করা

যদিও j2objc টিম ফাইলের আকারের সীমাবদ্ধতার কারণে আর GitHub-এ প্রি-বিল্ট ডিস্ট্রিবিউশন পোস্ট করে না, তবুও "এক ধাপে সবকিছু তৈরি করুন" স্ক্রিপ্টটি ব্যবহার করা যেতে পারে:

$ scripts/build_distribution.sh HEAD-<current-date> $PROTOBUF_ROOT_DIR

এই স্ক্রিপ্টটি চালাতে অনেক সময় নেয় কারণ প্রতিটি j2objc প্যাকেজের জন্য প্রতিটি আর্কিটেকচার তৈরি করা হয়। তবে, সাধারণ বিল্ড ব্যর্থতার ক্ষেত্রে এটি খুবই কার্যকর, কারণ এটি কেবলমাত্র ন্যূনতম পরিবেশ ভেরিয়েবলের সেট দিয়ে তৈরি করে। যদি build_distribution স্ক্রিপ্ট সফল হয় কিন্তু সাধারণ বিল্ড ধাপগুলি না করে, তাহলে কোন স্থানীয় পরিবেশ ভেরিয়েবল ভুলভাবে সেট করা আছে কিনা তা পর্যালোচনা করুন।