Создание J2ObjC

Требования

  • Система Apple Mac OS X
  • Последняя версия Xcode
  • JDK JDK 11 установлен
  • Апач Мавен
  • (Рекомендуется, но не обязательно) Источник буфера протокола Google

Настройка Mac

  • Установите инструменты командной строки Xcode, выполнив:
sudo xcode-select --install
  • Добавьте в свой .bash_profile :
export JAVA_HOME=`/usr/libexec/java_home -v 11`

Создайте вилку проекта J2ObjC.

Чтобы создать форк проекта J2ObjC, откройте его главную страницу и нажмите кнопку «Разветвить»:

Вилка

Выберите имя своей учетной записи GitHub, и форк будет создан через несколько секунд.

Затем клонируйте копию своего форка в локальную систему для разработки. Сначала нажмите кнопку [Клонировать или загрузить], затем нажмите кнопку «Копировать в буфер обмена»:

Клонировать

Затем клонируйте в локальный каталог:

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

Установить протобуф

Прежде чем вы сможете собрать J2ObjC, вам необходимо установить protobuf C++.

Чтобы установить двоичный пакет protobuf, используйте Homebrew:

brew install protobuf

Вам необходимо установить PROTOBUF_ROOT_DIR в корень, где установлен protobuf. Обычно это /usr/local по умолчанию для Homebrew. Добавьте следующее в свой .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 Protocol Buffers требуют, чтобы были установлены Protocol Buffers (по крайней мере 3.21.3):

  • Загрузите исходный код из версии Protocol Buffers 3.21.7 .
  • Следуйте инструкциям по установке C++ из README . Обратите внимание на параметр --prefix , чтобы указать место установки.
  • Определите переменную среды PROTOBUF_ROOT_DIR , чтобы указать место установки буферов протокола.

Возможности языка Post Java 8.

Смотрите объявление . В дополнение к шагам, описанным в предыдущем разделе, модуль JRE необходимо собрать с помощью JDK 11:

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 . Увеличьте это число, чтобы сократить время сборки, если ваша система может справиться с этим, и уменьшите его, если make завершится сбоем из-за системных ошибок.

Создание архитектур процессоров

Начиная с версии j2objc 2.3, 32-битные архитектуры iOS («iphone» и «симулятор») не включены в общедоступный дистрибутив. Вы можете собрать j2objc с их помощью, сначала указав переменную среды J2OBJC_ARCHS:

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

Это также можно использовать для ускорения сборки, указав только те архитектуры, которые нужны вашему приложению. Например, чтобы собрать только 64-разрядную версию iOS («iphone64») и связанный с ней симулятор («simulator64»), определите J2OBJC_ARCHS="iphone64 simulator64" перед запуском make.