Servo: Ajout de documentation pour MSVC

Créé le 8 sept. 2016  ·  37Commentaires  ·  Source: servo/servo

À la lumière de l'achèvement de #12916, il est important de faire savoir aux contributeurs comment configurer leurs environnements Windows pour Servo.

Fichiers à modifier : tout ce qui contient de la documentation (par exemple, README.md)

cc @larsbergstrom

A-documentation C-assigned P-windows

Commentaire le plus utile

Merci! J'essaie cela en ce moment, et voici ce que j'ai pour quelques étapes initiales. Je ne l'ai essayé que sur une machine virtuelle non propre jusqu'à présent, cependant...

Pré-installation de Windows MSVC

  • Installez Git pour Windows (https://git-scm.com/download/win)
    L'autoriser à ajouter git.exe au PATH (les paramètres par défaut du programme d'installation conviennent)
  • Installez Visual Studio 2015 Community Edition (https://www.visualstudio.com/)
    Vous DEVEZ ajouter "Visual C++" à la liste des composants installés. Il n'est pas activé par défaut.
  • Installez Python pour Windows (https://www.python.org/downloads/release/python-2711/)
    Le programme d'installation de Windows x86-64 MSI est correct.
    Vous devez modifier l'installation pour installer la fonctionnalité "Ajouter python.exe au chemin".
  • Installer virtualenv
    Dans un shell Windows normal (cmd.exe ou "Invite de commandes" dans le menu Démarrer), procédez comme suit :
pip install virtualenv

Si cela ne fonctionne pas, vous devrez peut-être redémarrer pour que les paramètres PATH modifiés prennent effet.

Cloner le servo

  • Ouvrez un shell Windows normal (cmd.exe ou "Invite de commandes" dans le menu Démarrer)
  • Faire un clone de Servo :
git clone https://github.com/servo/servo

Construire un servo

cd servo
mach.bat build -d

Tous les 37 commentaires

Merci! J'essaie cela en ce moment, et voici ce que j'ai pour quelques étapes initiales. Je ne l'ai essayé que sur une machine virtuelle non propre jusqu'à présent, cependant...

Pré-installation de Windows MSVC

  • Installez Git pour Windows (https://git-scm.com/download/win)
    L'autoriser à ajouter git.exe au PATH (les paramètres par défaut du programme d'installation conviennent)
  • Installez Visual Studio 2015 Community Edition (https://www.visualstudio.com/)
    Vous DEVEZ ajouter "Visual C++" à la liste des composants installés. Il n'est pas activé par défaut.
  • Installez Python pour Windows (https://www.python.org/downloads/release/python-2711/)
    Le programme d'installation de Windows x86-64 MSI est correct.
    Vous devez modifier l'installation pour installer la fonctionnalité "Ajouter python.exe au chemin".
  • Installer virtualenv
    Dans un shell Windows normal (cmd.exe ou "Invite de commandes" dans le menu Démarrer), procédez comme suit :
pip install virtualenv

Si cela ne fonctionne pas, vous devrez peut-être redémarrer pour que les paramètres PATH modifiés prennent effet.

Cloner le servo

  • Ouvrez un shell Windows normal (cmd.exe ou "Invite de commandes" dans le menu Démarrer)
  • Faire un clone de Servo :
git clone https://github.com/servo/servo

Construire un servo

cd servo
mach.bat build -d

J'essaye ça en ce moment, mais ça ne parvient pas à compiler mozjs_sys :

error: failed to run custom build command for `mozjs_sys v0.0.0 (https://github.com/servo/mozjs#7cd66925)`
process didn't exit successfully: `D:\Code\servo\target\release\build\mozjs_sys-661d4efe7c7ca939\build-script-build` (ex
it code: 101)
--- stderr
makefile.cargo:98: *** recipe commences before first target.  Stop.
thread 'main' panicked at 'assertion failed: result.success()', D:\Code\servo\.cargo\git\checkouts\mozjs-fa11ffc7d4f1cc2
d\master\build.rs:43
stack backtrace:
   0:     0x7ff7538547ea - std::rand::thread_rng::hf605c918a7eb7363
   1:     0x7ff753852f82 - std::rt::lang_start::haaae1186de9de8cb
   2:     0x7ff75385392d - std::panicking::rust_panic_with_hook::hb1322e5f2588b4db
   3:     0x7ff753841be3 - __ImageBase
   4:     0x7ff7538439c0 - __ImageBase
   5:     0x7ff7538572e1 - _rust_maybe_catch_panic
   6:     0x7ff7538529ba - std::rt::lang_start::haaae1186de9de8cb
   7:     0x7ff75385bfa8 - __scrt_common_main_seh
                        at f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253
   8:     0x7ffff0cf8363 - BaseThreadInitThunk

_Edit :_ J'ai oublié de mentionner que je suis en train de faire une version de version ( mach.bat build -r ), au cas où cela compte.
_Edit 2:_ Même résultat avec mach.bat build -d

Notez qu'il ne suffit pas d'avoir simplement python.exe dans mon PATH , je devais aussi m'assurer que le dossier scripts était dans mon PATH pour que je puisse exécutez pip pour installer virtualenv et pour mach voir virtualenv.

Aussi, je suis déçu qu'il n'y ait pas de mach.ps .

La sélection de l'option "Ajouter au CHEMIN" dans le programme d'installation de Python a ajouté à la fois le répertoire racine de l'installation de Python et le répertoire scripts . J'avais juste besoin de me déconnecter et de me reconnecter à Windows pour que ces modifications prennent effet.

Finished debug [unoptimized + debuginfo] target(s) in 2395.9 secs

Je suppose que cela a fonctionné, en quelque sorte. Tenter d'exécuter réellement le résultat...

Servo exited with return value -1073741515 ce qui signifie STATUS_DLL_NOT_FOUND . Je crois que la dll manquante est freetype.dll . Hmmm, cela pourrait être dû à mon .cargo/config qui spécifie un remplacement de script de construction pour freetype afin que cela fonctionne normalement, et cela pourrait être en conflit avec le freetype de servo.

D'accord, après avoir commenté mon .cargo/config , le servo fonctionne maintenant, puis est totalement inutile. Le chargement de n'importe quelle page obtient le titre, mais la page elle-même est totalement vierge.

De plus, il mange jusqu'à 2 cœurs de processeur sans rien faire.

Si je ferme le servo, le processus continue de s'exécuter et commence à consommer _tous_ mes cœurs de processeur.

@retep998 Vous devez spécifier une URL.

@Coder206 J'ai fait cmd /c mach.bat run -d http://www.purple.com . N'est-ce pas suffisant ?

@ retep998 Cela devrait le faire. Je suis corrigé, le mien sort comme le vôtre. Gagner 10 anniversaire ?

@ retep998 Je soupçonne que c'est à cause des paramètres de police factices dans gfx.

OS Name:                   Microsoft Windows 10 Pro
OS Version:                10.0.10586 N/A Build 10586

AMD Radeon R9 380 avec pilotes à jour avec prise en charge complète d'OpenGL 4.5.

@ retep998 Merci, cela semble être un problème général de Windows ou peut-être simplement de Windows 10.

En regardant makefile.cargo:98 dans mosjs-sys j'ai trouvé la ligne

$(message You must either have the Native Win32 python installed in C:/python27, or set NATIVE_WIN32_PYTHON to point to the appropriate python.exe.)

qui n'est malheureusement jamais affiché lors de la construction, car il se retrouve dans stdout au lieu de stderr, il ne sera donc pas acheminé par fret.

Le réglage de NATIVE_WIN32_PYTHON alors résolu le problème :smiley:
Maintenant, je suis également au point où l'exécution de servo affiche une fenêtre blanche vide avec le titre correct, mais rien d'autre. J'utilise Windows 10 Famille.

Merci à tous! Il semble que les instructions soient correctes (bien qu'elles aient besoin d'un correctif pour le problème de @Boddlnagg , potentiellement) suffisamment pour être mises sur le site Web.

Cela dit, comme @ retep998 et @ Coder206 l' ont remarqué et je peux le confirmer, la version MSVC ne termine actuellement pas le chargement et est vide. Il va falloir se renseigner :-)

@larsbergstrom Je pense que j'ai eu des problèmes avec l'espace de stockage sur ma machine virtuelle. Que pensez-vous (ou que pensez-vous) de l'ajout d'un espace disque recommandé ?

En ce qui concerne l'espace disque... pour un build de développement simple, sans tests, ni build de release, et sans compter l'espace occupé dans le cache cargo...

Je dirais donc au moins 10 Go d'espace libre.

@ retep998 Merci d'avoir fait cela. Je pense que c'est pourquoi j'ai eu des problèmes de compilation (c'est-à-dire que la compilation du "script" a échoué).

Oui, je pense qu'un "avertissement d'espace disque faible" (en tant que problème distinct) pourrait valoir la peine. À l'heure actuelle, lorsque nous manquons d'espace, la construction du script échoue d'une manière à la fois opaque et non triviale à récupérer - vous devez généralement effectuer une construction propre.

@larsbergstrom Succès sur une machine Windows 10 propre

Vous n'avez pas besoin de Visual Studio.
Vous pouvez obtenir Visual C++ de manière autonome à partir d'ici :
http://landinghub.visualstudio.com/visual-cpp-build-tools
Utilisation de l'option d'installation par défaut

@Jayflux J'aime beaucoup mieux ça, ça fait gagner beaucoup d'espace

Échec de la construction pour moi
https://pastebin.mozilla.org/8909561

OS Name Microsoft Windows 10 Pro
Version 10.0.10586 Build 10586
<vlad> Jayflux: you want https://github.com/vvuk/mozjs/commit/f9b707cbeb6ad653b8afb8e457b0b2d609ec66ef

Lorsque j'utilise la fourchette de Vlad, j'obtiens ceci
https://pastebin.mozilla.org/8909575

Test sur cmd

  Compiling miniz-sys v0.1.7
   Compiling unreachable v0.1.1
   Compiling ordered-float v0.2.3
   Compiling quickersort v2.1.0
   Compiling openssl v0.7.14
Build failed, waiting for other jobs to finish...
error: failed to run custom build command for `mozjs_sys v0.0.0 (https://github.com/servo/mozjs#87c47526)`
process didn't exit successfully: `C:\Users\Jason\workspace\servo\target\debug\build\mozjs_sys-661d4efe7c7ca939\build-script-build` (exit code: 101)
--- stdout
[[ /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/configure -ot /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/configure.in ]] && touch /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/configure || true
[[ /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/old-configure -ot /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/old-configure.in ]] && touch /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/old-configure || true
! [[ /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/configure.in -ot /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/configure ]] && touch /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/configure || true
! [[ /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/old-configure.in -ot /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/old-configure ]] && touch /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/old-configure || true
if [[ /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/configure -nt C:\Users\Jason\workspace\servo\target\debug\build\mozjs_sys-661d4efe7c7ca939\out/config.status ]] ; then \
  cd C:\Users\Jason\workspace\servo\target\debug\build\mozjs_sys-661d4efe7c7ca939\out && \
  PYTHON="python" MOZ_TOOLS="" \
  CC="gcc" CPP="gcc -E" CXX="g++" AR="ar" \
  /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/configure --disable-jemalloc --disable-js-shell --disable-tests --without-intl-api --build-backends=RecursiveMake --disable-shared-js || (cat config.log && exit 1) ; \
fi
makefile.cargo:120: recipe for target 'maybe-configure' failed

--- stderr
C:/Users/Jason/AppData/Local/Temp/make7000-5.sh: line 2: cd: C:UsersJasonworkspaceservotargetdebugbuildmozjs_sys-661d4efe7c7ca939out: No such file or directory
cat: config.log: No such file or directory
mozmake: *** [maybe-configure] Error 1
thread 'main' panicked at 'assertion failed: result.success()', C:\Users\Jason\workspace\servo\.cargo\git\checkouts\mozjs-fa11ffc7d4f1cc2d\master\build.rs:43
note: Run with `RUST_BACKTRACE=1` for a backtrace.

Build FAILED in 0:05:56

Pouvez-vous faire set PATH et coller les résultats ici ? Je crains qu'il y ait un autre python, plus diabolique, qui soit le premier dans votre PATH . Le mien ressemble à :

C:\Users\larsberg>set PATH
Path=C:\Python27\;C:\Python27\Scripts;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\system32\config\systemprofile\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Git\cmd;C:\Program Files (x86)\WiX Toolset v3.10\bin
C:\Users\Jason\workspace\servo>set PATH
Path=C:\Program Files (x86)\MSBuild\14.0\bin\amd64;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Windows\Microsoft.NET\Framework64\;C:\Program Files (x86)\Windows Kits\10\bin\x64;C:\Program Files (x86)\Windows Kits\10\bin\x86;C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\;C:\Python27\;C:\Python27\Scripts;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\nodejs\;C:\ProgramData\chocolatey\bin;C:\Program Files\Oracle\VirtualBox;C:\Program Files\Sublime Text 3;C:\Program Files (x86)\Skype\Phone\;C:\HashiCorp\Vagrant\bin;C:\Program Files\Git\cmd;C:\Users\Jason\AppData\Roaming\npm;C:\Program Files (x86)\Nmap
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

NATIVE_WIN32_PYTHON n'a pas fonctionné pour moi

Les instructions ont fonctionné pour moi aussi.

@Coder206 Existe-t-il un problème ouvert pour le problème de voir un écran blanc au lieu du contenu du site Web? Je rencontre le même problème sur Windows 10 Education (Version 10.0.10586) avec un Intel HD Graphics 4000.

@aochagavia Non, il n'y a pas de problème pour cela

Dois-je en créer un nouveau ?

Je pense que ce serait une bonne idée. Merci d'avoir fait ça @aochagavia !

dans mozjs makefile.cargo, il y a une ligne : SRC_DIR = $(shell pwd) Je me demande si pour vous, pwd donne c:......, et pour moi, c'est c:/....

Pour moi %MOZTOOLS_PATH%\pwd donne /c/proj/r ; mais c'est avec un MOZTOOLS_PATH local. Vous devriez voir tout ce que mach fait pour configurer $PATH/$MOZTOOLS_PATH et quel pwd il trouve.

@vlad existe-t-il des étapes pour déterminer ce que pwd me donne ?
Ces commandes ne s'exécutent pas dans la console

Dois-je définir la variable env des chemins moztools?

@vvuk voici les résultats (ma machine hôte, pas la VM)
cmder :

C:\Users\Jason\workspace\servo (master)
λ .servo\msvc-dependencies\moztools\bin\pwd.exe
/c/Users/Jason/workspace/servo

CMD

C:\Users\Jason\workspace\servo>.servo\msvc-dependencies\moztools\bin\pwd.exe
/c/Users/Jason/workspace/servo

C:\Users\Jason\workspace\servo>

Aussi...
Je ne sais pas si cela aide, mais j'ai remarqué que vous avez ajouté un chemin vers python ici :
https://github.com/servo/mozjs/commit/7ba7cfa262dd6864d581855bad47c28d4ad97970#diff -9080a05d9a2f1078a5790475b50fdb37L96

Cependant, mon installation de python est:
C:\Python27 avec un P majuscule

En regardant makefile. cargo:98 dans mosjs-sys j'ai trouvé la ligne

$(message Vous devez soit avoir installé le python natif Win32 dans C:/python27, soit définir NATIVE_WIN32_PYTHON pour pointer vers le python.exe approprié.)
qui n'est malheureusement jamais affiché lors de la construction, car il se retrouve dans stdout au lieu de stderr, il ne sera donc pas acheminé par fret.

La définition de NATIVE_WIN32_PYTHON a alors résolu le problème :smiley:
Maintenant, je suis également au point où l'exécution de servo affiche une fenêtre blanche vide avec le titre correct, mais rien d'autre. J'utilise Windows 10 Famille.

@Boddlnagg J'ai fait la même chose mais ça échoue toujours pour moi :sob: :sob:
On dirait qu'il est codé en dur sur c:\python27 qui échouera pour certains, car c'est un P majuscule à l'installation (ou du moins pour moi c'était le cas)

@Jayflux L' avez-vous défini sur le chemin contenant python.exe ou en fait pour pointer sur python.exe lui-même ? Ce doit être ce dernier.
Et je ne sais pas pourquoi le P majuscule devrait avoir de l'importance ici, puisque (a) c'est la valeur par défaut et (b) les noms de fichiers devraient être insensibles à la casse sous Windows ...

@Boddlnagg j'ai pointé directement vers le python.exe lui-même et j'obtiens toujours la même erreur
Ok, je ne savais pas pour l'insensibilité à la casse, c'est bon à savoir

Donc, si https://github.com/servo/servo/issues/13272 est quelque chose à faire .. Les outils de construction Visual C++ donnent des résultats différents à la construction complète de Visual Studio

Je vais essayer de le faire à nouveau, en désinstallant les outils de construction Visual C++ et en utilisant à la place l'installation complète de Visual Studio, pour voir si cela a quelque chose à voir avec cela

@larsbergstrom @vvuk
Il s'avère que le problème était que j'utilisais http://landinghub.visualstudio.com/visual-cpp-build-tools au lieu d'installer Visual Studio.

J'ai maintenant l'écran blanc comme tout le monde

Cette page vous a été utile?
0 / 5 - 0 notes