הבניין 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`

יוצרים Fork של פרויקט J2ObjC

כדי לפצל את פרויקט J2ObjC, פותחים את הדף הראשי ולוחצים על הלחצן Fork:

Fork

בוחרים את שם החשבון שלכם ב-GitHub. המזלג ייווצר תוך כמה שניות.

לאחר מכן, משכפלים עותק של המזלג במערכת המקומית לצורך פיתוח. תחילה לוחצים על [הלחצן 'שכפול או הורדה'], ולאחר מכן לוחצים על הלחצן 'העתקה ללוח':

שכפול

לאחר מכן, משכפלים לספרייה מקומית:

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

התקנת protobuf

כדי לבנות את J2ObjC, צריך להתקין את protobuf C++.

כדי להתקין את החבילה הבינארית של protobuf, משתמשים ב-Homebrew:

brew install protobuf

עליך להגדיר את PROTOBUF_ROOT_DIR לבסיס שבו מותקן protobuf. בדרך כלל, זו ברירת המחדל של Homebrew /usr/local. צריך להוסיף את הפרטים הבאים אל .bash_profile:

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

כדי לבצע אימות, מריצים את $PROTOBUF_ROOT_DIR/bin/protoc --version.

בניין J2ObjC

כדי לפתח משורת פקודה בחלון Terminal, מריצים את:

# 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 Protocol Buffers ומשך הריצה ל- Protocol Buffers (בגרסה 3.21.3 לפחות), צריך להתקין אותם.

  • מורידים את קוד המקור מהמהדורה Protocol Buffers 3.21.7 (מאגרי אחסון לפרוטוקולים).
  • פועלים לפי הוראות ההתקנה של C++ מ-README. שימו לב לאפשרות --prefix כדי לציין את מיקום ההתקנה.
  • מגדירים את משתנה הסביבה PROTOBUF_ROOT_DIR כדי להצביע על מיקום ההתקנה של מאגרי הפרוטוקולים.

פרסום תכונות שפה של Java 8.

להצגת ההודעה, בנוסף לשלבים הקודמים, צריך ליצור מודול JRE באמצעות JDK 11:

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

בדיקת J2ObjC

כדי לבצע בדיקה משורת פקודה בחלון Terminal, מריצים את:

# 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

גרסאות build במקביל

ה-build של J2ObjC תומך בגרסאות build מקבילות, שמצוינות באמצעות הדגל -j<n>, כאשר n מייצג את המספר המקסימלי של משימות בו-זמניות. הערך המקסימלי תלוי במהירות או בעוצמה של המערכת שלכם. אנחנו מציעים להתחיל ב--j4. כדאי להגדיל את המספר כדי לקצר את זמני ה-build אם המערכת שלכם יכולה לטפל בו, ולהקטין אותו אם הוא נכשל עקב שגיאות מערכת.

ארכיטקטורות למעבדי בניינים

החל מגרסה 2.3 של j2objc, ארכיטקטורות iOS של 32 סיביות ("iPhone" ו "סימולטור") לא נכללות בהפצה הציבורית. אפשר ליצור j2objc עם הפרמטרים האלה על ידי ציון משתנה הסביבה J2OBJC_ARCHS:

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

אפשר להשתמש באפשרות הזו גם כדי לזרז את ה-build באמצעות ציון של הארכיטקטורות הנדרשות בלבד לאפליקציה. כדי לבנות רק את גרסת 64 ביט של iOS ("iPhone64") ואת הסימולטור המשויך אליה ("simulator64"), לדוגמה, צריך להגדיר את J2OBJC_ARCHS="iphone64 simulator64" לפני שמריצים את הפקודה.