Le BazelCon 2022 se déroulera du 16 au 17 novembre à New York et en ligne.
S'inscrire

Compiler Bazel à partir de la source

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Cette page explique comment installer Bazel à partir de la source et fournit des conseils de dépannage pour les problèmes courants.

Pour créer Bazel à partir de la source, vous pouvez effectuer l'une des opérations suivantes:

Créer Bazel avec Bazel

Résumé

  1. Obtenez la dernière version de Bazel sur la page des versions de GitHub ou avec Bazelisk.

  2. Téléchargez les sources Bazel de GitHub et extrayez-les quelque part. Vous pouvez également git cloner l'arborescence source à partir de https://github.com/bazelbuild/bazel

  3. Installez les mêmes prérequis que pour l'amorçage (consultez la section Pour les systèmes de type Unix ou pour Windows).

  4. Créez une version de développement de Bazel à l'aide de Bazel : bazel build //src:bazel-dev (ou bazel build //src:bazel-dev.exe sous Windows).

  5. Le binaire obtenu se trouve à bazel-bin/src/bazel-dev (ou à bazel-bin\src\bazel-dev.exe sous Windows). Vous pouvez le copier où vous le souhaitez et l'utiliser immédiatement, sans aucune autre installation.

Vous trouverez des instructions détaillées ci-dessous.

Étape 1: Téléchargez la dernière version de Bazel

Objectif: Installer ou télécharger une version de Bazel. Assurez-vous de pouvoir l'exécuter en saisissant bazel dans un terminal.

Motif : pour compiler Bazel à partir d'une arborescence source GitHub, vous avez besoin d'un binaire Bazel préexistant. Vous pouvez en installer une à partir d'un gestionnaire de packages ou en télécharger une à partir de GitHub. Consultez la page Installer Bazel. (vous pouvez également créer à partir de zéro (bootstrap)).

Dépannage :

  • Si vous ne pouvez pas exécuter Bazel en saisissant bazel dans un terminal:

    • Votre répertoire binaire Bazel n'est peut-être pas dans le chemin d'accès.

      Ce n'est pas un gros problème. Au lieu de saisir bazel, vous devrez saisir le chemin d'accès complet.

    • Le binaire Bazel n'est peut-être pas nommé bazel (sous Unix) ni bazel.exe (sous Windows).

      Ce n'est pas un gros problème. Vous pouvez renommer le binaire ou saisir le nom du binaire à la place de bazel.

    • Le binaire n'est peut-être pas exécutable (sous Unix).

      Vous devez rendre le binaire exécutable en exécutant chmod +x /path/to/bazel.

Étape 2: Téléchargez les sources Bazel depuis GitHub

Si vous connaissez Git, il suffit d'utiliser git clone https://github.com/bazelbuild/bazel

Sinon :

  1. Téléchargez les dernières sources sous forme de fichier ZIP.

  2. Extrayez le contenu quelque part.

    Par exemple, créez un répertoire bazel-src sous votre répertoire d'accueil et extrayez-le à cet emplacement.

Étape 3: Installez les prérequis

Installez les mêmes conditions préalables que pour l'amorçage (voir ci-dessous) : JDK, C++, MSYS2 (si vous compilez sur Windows), etc.

Étape 4a: Créez Bazel sur Ubuntu Linux, macOS et d'autres systèmes de type Unix

Pour obtenir des instructions pour Windows, consultez Créer Bazel sous Windows.

Objectif: exécuter Bazel pour créer un binaire Bazel personnalisé (bazel-bin/src/bazel-dev).

Instructions :

  1. Démarrer un terminal Bash

  2. cd dans le répertoire où vous avez extrait (ou cloné) les sources Bazel.

    Par exemple, si vous avez extrait les sources de votre répertoire d'accueil, exécutez la commande suivante:

    cd ~/bazel-src
    
  3. Créer Bazel à partir de la source:

    bazel build //src:bazel-dev
    

    Vous pouvez également exécuter bazel build //src:bazel --compilation_mode=opt pour générer un binaire plus petit, mais sa création est plus lente.

  4. La sortie sera à bazel-bin/src/bazel-dev (ou bazel-bin/src/bazel).

Étape 4b: Créer Bazel sous Windows

Pour obtenir des instructions pour les systèmes de type Unix, consultez Ubuntu Linux, macOS et d'autres systèmes de type Unix.

Objectif: exécuter Bazel pour créer un binaire Bazel personnalisé (bazel-bin\src\bazel-dev.exe).

Instructions :

  1. Invite de commande de démarrage (menu "Démarrer" > Exécuter > "cmd.exe")

  2. cd dans le répertoire où vous avez extrait (ou cloné) les sources Bazel.

    Par exemple, si vous avez extrait les sources de votre répertoire d'accueil, exécutez la commande suivante:

    cd %USERPROFILE%\bazel-src
    
  3. Créer Bazel à partir de la source:

    bazel build //src:bazel-dev.exe
    

    Vous pouvez également exécuter bazel build //src:bazel.exe --compilation_mode=opt pour générer un binaire plus petit, mais sa création prend plus de temps.

  4. La sortie sera à bazel-bin\src\bazel-dev.exe (ou bazel-bin\src\bazel.exe).

Étape 5: Installez le binaire créé

Il n'y a rien à installer.

Le résultat de l'étape précédente est un binaire Bazel autonome. Vous pouvez le copier dans n'importe quel répertoire et l'utiliser immédiatement. (Il est utile si ce répertoire se trouve sur votre chemin d'accès afin que vous puissiez l'exécuter partout.)


Créer Bazel à partir de zéro (amorçage)

Vous pouvez également compiler entièrement Bazel, sans utiliser de binaire Bazel existant.

Étape 1: Téléchargez les sources Bazel (archive de distribution)

(Cette étape est identique pour toutes les plates-formes.)

  1. Téléchargez bazel-<version>-dist.zip à partir de GitHub, par exemple bazel-0.28.1-dist.zip.

    Attention:

    • Il existe une seule archive de distribution indépendante de l'architecture. Il n'existe pas d'archives de distribution spécifiques à l'architecture ou au système d'exploitation.
    • Ces sources sont différentes de l'arborescence source de GitHub. Vous devez utiliser l'archive de distribution pour amorcer Bazel. Vous ne pouvez pas utiliser une arborescence source clonée à partir de GitHub. (L'archive de distribution contient des fichiers sources générés qui sont requis pour l'amorçage et ne font pas partie de l'arborescence source normale.)
  2. Décompressez l'archive de distribution quelque part sur le disque.

    Vous devez vérifier la signature effectuée par la clé de libération 3D5919B448457EE0 de Bazel.

Étape 2a: Démarrez Bazel sur Ubuntu Linux, macOS et d'autres systèmes de type Unix

Pour obtenir des instructions pour Windows, consultez la section Bootstrap Bazel sous Windows.

2.1. Installer les prérequis

  • Bash

  • zip, unzip

  • Chaîne d'outils de compilation C++

  • JDK Veuillez indiquer la version 11.

  • Python Les versions 2 et 3 sont compatibles, l'une d'entre elles suffit.

Par exemple, sous Ubuntu Linux, vous pouvez installer les éléments suivants:

sudo apt-get install build-essential openjdk-11-jdk python zip unzip

2.2. Bootstrap Bazel sous Unix

  1. Ouvrez une interface système ou une fenêtre de terminal.

  2. cd dans le répertoire où vous avez décompressé l'archive de distribution.

  3. Exécutez le script de compilation: env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" bash ./compile.sh.

Le résultat compilé est placé dans output/bazel. Il s'agit d'un binaire Bazel autonome, sans JDK intégré. Vous pouvez le copier n'importe où ou l'utiliser sur place. Pour plus de commodité, copiez ce binaire dans un répertoire de votre fichier PATH (tel que /usr/local/bin sous Linux).

Pour créer le binaire bazel de manière reproductible, définissez également SOURCE_DATE_EPOCH à l'étape "Exécuter le script de compilation".

Étape 2b: Démarrez Bazel sous Windows

Pour obtenir des instructions pour les systèmes de type Unix, consultez la section Bootstrap Bazel sur Ubuntu Linux, macOS et d'autres systèmes de type Unix.

2.1. Installer les prérequis

  • interface système MSYS2

  • Les packages MSYS2 pour la compression et la décompression. Exécutez la commande suivante dans l'interface système MSYS2:

    pacman -S zip unzip patch
    
  • Le compilateur Visual C++ Installez le compilateur Visual C++ dans Visual Studio version 2015 ou ultérieure, ou en installant les derniers outils de compilation pour Visual Studio 2017.

  • JDK Veuillez indiquer la version 11.

  • Python Les versions 2 et 3 sont compatibles, l'une d'entre elles suffit. Vous avez besoin de la version native de Windows (téléchargeable sur https://www.python.org). Les versions installées via Paman dans MSYS2 ne fonctionneront pas.

2.2. Bootstrap Bazel sous Windows

  1. Ouvrez l'interface système MSYS2.

  2. Définissez les variables d'environnement suivantes :

    • BAZEL_VS ou BAZEL_VC (elles ne sont pas identiques): indiquez le chemin d'accès au répertoire Visual Studio (BAZEL_VS) ou au répertoire Visual C++ (BAZEL_VC). Il suffit d'en définir une.
    • BAZEL_SH : chemin d'accès au fichier MSYS2 bash.exe. Consultez la commande dans les exemples ci-dessous.

      Ne définissez pas cette valeur sur C:\Windows\System32\bash.exe. (Vous disposez de ce fichier si vous avez installé le sous-système Windows pour Linux.) Bazel n'est pas compatible avec cette version de bash.exe.

    • PATH: ajoutez le répertoire Python.

    • JAVA_HOME: défini sur le répertoire JDK

    Exemple (avec BAZEL_VS):

    export BAZEL_VS="C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools"
    export BAZEL_SH="$(cygpath -m $(realpath $(which bash)))"
    export PATH="/c/python27:$PATH"
    export JAVA_HOME="C:/Program Files/Java/jdk1.8.0_112"
    

    ou (en utilisant BAZEL_VC):

    export BAZEL_VC="C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC"
    export BAZEL_SH="$(cygpath -m $(realpath $(which bash)))"
    export PATH="/c/python27:$PATH"
    export JAVA_HOME="C:/Program Files/Java/jdk1.8.0_112"
    
  3. cd dans le répertoire où vous avez décompressé l'archive de distribution.

  4. Exécutez le script de compilation: env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" ./compile.sh

Le résultat compilé est placé dans output/bazel.exe. Il s'agit d'un binaire Bazel autonome, sans JDK intégré. Vous pouvez le copier n'importe où ou l'utiliser sur place. Pour plus de commodité, copiez ce binaire dans un répertoire de votre fichier PATH.

Pour créer le binaire bazel.exe de manière reproductible, définissez également SOURCE_DATE_EPOCH à l'étape "Exécuter le script de compilation".

Vous n'avez pas besoin d'exécuter Bazel à partir de l'interface système MSYS2. Vous pouvez exécuter Bazel à partir de l'invite de commande (cmd.exe) ou de PowerShell.