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) :
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) :
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".