Construire Firefox sous Windows avec clang-cl

Introduction

clang-cl est un nouveau compilateur du projet LLVM qui tente de remplacer le cl.exe  MSVC. Il apporte également toute la puissance de la chaîne d'outils LLVM à Windows..

lld-link est un linker de LLVM qui peut être utilisé en remplacement du fichier link.exe MSVC. Il fonctionne beaucoup plus vite que le linker de Microsoft..

Le système de compilation de Firefox supporte maintenant à la fois clang-cl et lld-link.

Prerequisites

Tout d'abord, assurez-vous d'avoir un arbre des sources de Mozilla mis à jour, car un certain nombre de correctifs du système de compilation ont atterri très récemment (mars 2018).

Vous devrez obtenir une version récente de clang-cl, en utilisant l'une de ces options  :

  • (Recommandé) mach bootstrap téléchargera le paquet clang actuellement utilisé par automation dans votre répertoire ~/.mozbuild/clang. Le système de compilation de Mozilla est capable de détecter les binaires clang-cl dans cet emplacement. Il n'est pas nécessaire de changer votre PATH.
  • Téléchargez une version 64-bit release build ou trunk snapshot à partir de LLVM. Vous devriez permettre à l'installateur de mettre LLVM sur votre PATH.
  • Build your own LLVM from source. Vous devez ajouter le répertoire build à votre  PATH ou fournir un chemin complet dans votre mozconfig.

De même, pour l'exigence du SDK "Windows 10 SDK (N) pour Desktop C++ x86 et x64", N doit être 10.0.15063.0 ou 10.0.17134.0. 10.0.16299.0 n'est pas supporté avec clang-cl.

Les chemins du SDK sont automatiquement découverts pendant le processus de construction, mais si vous avez besoin de les remplacer explicitement, les variables d'environnement suivantes sont supportées :

  • WINDOWSSDKDIR, pointant vers le SDK de la plate-forme Windows  (par exemple  %WINDOWSSDKDIR%\Include\10.0.15063.0\um\Windows.h).
  • VC_PATH, pointant vers les bibliothèques C+++ standard (par exemple  %VC_PATH%\include\string).
  • DIA_SDK_PATH,  pointant vers l'interface de débogage Access SDK (par exemple  %DIA_SDK_PATH%\include\dia2.h).

Construiser votre configuration

Pour construire avec clang-cl comme compilateur, ajoutez ce qui suit à votre mozconfig:

export CC="clang-cl.exe"
export CXX="clang-cl.exe"

Pour construire avec lld-link comme éditeur de liens, ajoutez ce qui suit à votre mozconfig:

export LINKER="lld-link.exe"

Ensuite, procédez à la construction comme d'habitude.

Pousser pour essayer

Si vous souhaitez utiliser la chaîne d'outils clang sur votre try push, ajoutez l'une ou les deux lignes suivantes pour build/mozconfig.common.override:

. "$topsrcdir/build/mozconfig.clang-cl"
. "$topsrcdir/build/mozconfig.lld-link"

Ces fichiers définissent les exports et ont en outre la logique pour trouver les binaires clang sur les systèmes de fichiers d'automatisation.

Vous pouvez sélectionner une révision LLVM SVN différente en éditant build/build-clang/clang-win64.json (ce fichier gère aussi les builds 32-bit). Quand vous poussez le changement pour essayer, il construira d'abord cette révision de clang (~1hr) et utilisera le compilateur résultant pour construire votre code.

Étiquettes et contributeurs liés au document

Étiquettes : 
Contributeurs à cette page : hellosct1
Dernière mise à jour par : hellosct1,