Building J2ObjC

Conditions requises

  • Système Apple Mac OS X
  • La dernière version de Xcode
  • JDK JDK 11 est installé
  • Apache Maven
  • Source Google Protocol Buffer (recommandé, mais non obligatoire)

Configuration Mac

  • Installez les outils de ligne de commande Xcode en exécutant la commande suivante:
sudo xcode-select --install
  • Ajoutez ceci au fichier .bash_profile :
export JAVA_HOME=`/usr/libexec/java_home -v 11`

Créer une copie du projet J2ObjC

Pour dupliquer le projet J2ObjC, ouvrez sa page principale, puis cliquez sur le bouton "Fork" (Dupliquer) :

Fork

Sélectionnez le nom de votre compte GitHub. La copie sera créée en quelques secondes.

Clonez ensuite une copie de votre copie sur votre système local pour le développement. Cliquez d'abord sur le bouton [Clone or download] (Cloner ou télécharger), puis sur le bouton Copy to Clipboard (Copier dans le presse-papiers) :

Cloner

Ensuite, clonez-le dans un répertoire local:

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

Installer le tampon de protocole

Le tampon de protocole C++ doit être installé avant de pouvoir compiler J2ObjC.

Pour installer le package binaire protobuf, utilisez Homebrew:

brew install protobuf

Vous devez définir PROTOBUF_ROOT_DIR sur la racine où le tampon de protocole est installé. En temps normal, il s'agit du /usr/local par défaut Homebrew. Ajoutez le code suivant à votre fichier .bash_profile:

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

Pour vérifier, exécutez $PROTOBUF_ROOT_DIR/bin/protoc --version.

Bâtiment J2ObjC

Pour compiler à partir d'une ligne de commande dans une fenêtre de terminal, exécutez la commande suivante:

# 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

Configuration facultative des tampons de protocole

Le compilateur et l'environnement d'exécution J2ObjC Protocol Buffers nécessitent l'installation des tampons de protocole (au moins la version 3.21.3) :

  • Téléchargez le code source à partir de la version 3.21.7 de Protocol Buffers.
  • Suivez les instructions d'installation pour C++ du fichier README. Faites attention à l'option --prefix pour spécifier votre emplacement d'installation.
  • Définissez la variable d'environnement PROTOBUF_ROOT_DIR pour qu'elle pointe vers l'emplacement d'installation de Protocol Buffers.

Intégrer les fonctionnalités du langage Java 8

Voir annonce. En plus des étapes de la section précédente, un module JRE doit être créé avec JDK 11:

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

Test de J2ObjC

Pour effectuer un test à partir d'une ligne de commande dans une fenêtre de terminal, exécutez la commande suivante:

# Run translator and library unit tests
make test

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

Nettoyer/Réinitialiser un build

# Remove all files generated by the build
make clean

Builds parallèles

Le build J2ObjC accepte les builds parallèles, spécifiés à l'aide de l'indicateur -j<n>, où n correspond au nombre maximal de tâches simultanées. Le maximum dépend de la vitesse et de la puissance de votre système. Nous vous suggérons de commencer par -j4. Augmentez cette valeur pour raccourcir la durée de compilation si votre système peut la gérer, ou réduisez-la en cas d'échec de la commande associée à des erreurs système.

Créer des architectures de processeur

À partir de la version 2.3 de j2objc, les architectures iOS 32 bits ("iPhone" et "Simulateur") ne sont pas incluses dans la distribution publique. Vous pouvez compiler j2objc avec ceux-ci en spécifiant d'abord la variable d'environnement J2OBJC_ARCHS:

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

Cela permet également d'accélérer la compilation, en ne spécifiant que les architectures dont votre application a besoin. Par exemple, pour compiler uniquement l'iOS 64 bits ("iphone64") et le simulateur associé ("simulator64"), définissez J2OBJC_ARCHS="iphone64 simulator64" avant d'exécuter la commande "make".