Edificio J2ObjC

Requisiti

  • Sistema Apple Mac OS X
  • La versione più recente di Xcode
  • JDK 11 installato
  • Apache Maven
  • (Consigliato, ma non obbligatorio) Origine Google Protocol Buffer

Configurazione di Mac

  • Installa gli strumenti a riga di comando di Xcode eseguendo:
sudo xcode-select --install
  • Aggiungi al tuo .bash_profile:
export JAVA_HOME=`/usr/libexec/java_home -v 11`
  • Se Maven non è installato (prova mvn -version in un terminale), utilizza Homebrew:
brew install maven

Crea un fork del progetto J2ObjC

Per eseguire il fork del progetto J2ObjC, apri la relativa pagina principale e fai clic sul pulsante Fork:

Fork

Seleziona il nome del tuo account GitHub e il fork verrà creato in pochi secondi.

Successivamente, clona una copia del fork sul tuo sistema locale per lo sviluppo. Innanzitutto, fai clic sul pulsante [Clona o scarica], quindi sul pulsante Copia negli appunti:

Clona

Quindi clona in una directory locale:

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

Installa protobuf e abseil

Per poter compilare J2ObjC, devi installare protobuf C++.

Per installare il pacchetto binario protobuf, usa Homebrew:

brew install protobuf

La compilazione di Protobuf C++ ora dipende dalla libreria Abseil, quindi installala anche:

brew install abseil

Devi impostare PROTOBUF_ROOT_DIR sulla directory principale in cui è installato protobuf. In genere, è il valore predefinito di Homebrew /usr/local. Aggiungi quanto segue al tuo .bash_profile:

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

Per verificare, esegui $PROTOBUF_ROOT_DIR/bin/protoc --version.

Creazione di J2ObjC

Per eseguire la compilazione da una riga di comando in una finestra del terminale, esegui:

# 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

Test di J2ObjC

Per eseguire il test da una riga di comando in una finestra del terminale, esegui:

# Run translator and library unit tests
make test

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

Pulizia di una build

# Remove all files generated by the build
make clean

Build parallele

La compilazione J2ObjC supporta le compilazioni parallele, che vengono specificate utilizzando il -j<n> flag, dove n è il numero massimo di attività simultanee. Il valore massimo dipende dalla velocità del sistema. Ti consigliamo di iniziare con -j4. Aumenta il numero per ridurre i tempi di compilazione se il sistema lo supporta e diminuiscilo se make non riesce con errori di sistema.

Creazione di architetture iOS a 32 bit

Le architetture iOS a 32 bit ("iphone" e "simulator") non vengono compilate per impostazione predefinita. Puoi compilare j2objc con questi specificandoli prima nella variabile di ambiente J2OBJC_ARCHS:

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

In genere, la specifica di un sottoinsieme di architetture supportate può essere utilizzata per velocizzare le build locali, specificando solo le architetture necessarie per la tua app. Per compilare solo iOS a 64 bit ("iphone64") e il relativo simulatore associato ("simulator64"), ad esempio, definisci J2OBJC_ARCHS="iphone64 simulator64" prima di eseguire make.

Creazione della distribuzione completa

Anche se il team di j2objc non pubblica più su GitHub le distribuzioni precompilate a causa delle limitazioni delle dimensioni dei file, lo script "build everything in one step" può essere ancora utilizzato:

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

L'esecuzione di questo script richiede molto tempo perché viene creata ogni architettura per ogni pacchetto j2objc. Tuttavia, è molto utile in caso di errori di compilazione generali, in quanto viene eseguita con solo l'insieme minimo di variabili di ambiente. Se lo script build_distribution va a buon fine, ma i normali passaggi di compilazione non vanno a buon fine, controlla se le variabili di ambiente locali sono impostate in modo errato.