Servo: Adicionando documentação para MSVC

Criado em 8 set. 2016  ·  37Comentários  ·  Fonte: servo/servo

À luz da conclusão do # 12916, é importante permitir que os colaboradores saibam como configurar seus ambientes Windows para Servo.

Arquivos para modificar: qualquer coisa com documentação (ou seja, README.md)

cc @larsbergstrom

A-documentation C-assigned P-windows

Comentários muito úteis

Obrigado! Estou tentando fazer isso agora e aqui está o que tenho para algumas etapas iniciais. Só tentei em uma máquina virtual não limpa até agora, no entanto ...

Pré-configuração do Windows MSVC

  • Instale o Git para Windows (https://git-scm.com/download/win)
    Permita que ele adicione git.exe ao PATH (as configurações padrão do instalador são adequadas)
  • Instale o Visual Studio 2015 Community Edition (https://www.visualstudio.com/)
    Você DEVE adicionar "Visual C ++" à lista de componentes instalados. Não está ativado por padrão.
  • Instale o Python para Windows (https://www.python.org/downloads/release/python-2711/)
    O instalador MSI do Windows x86-64 está bom.
    Você deve alterar a instalação para instalar o recurso "Adicionar python.exe ao caminho".
  • Instalar virtualenv
    Em um Windows Shell normal (cmd.exe ou "Prompt de Comando" no menu Iniciar), faça:
pip install virtualenv

Se isso não funcionar, pode ser necessário reinicializar para que as configurações alteradas de PATH tenham efeito.

Clone servo

  • Abra um shell normal do Windows (cmd.exe ou "Prompt de comando" no menu iniciar)
  • Faça um clone do Servo:
git clone https://github.com/servo/servo

Construir servo

cd servo
mach.bat build -d

Todos 37 comentários

Obrigado! Estou tentando fazer isso agora e aqui está o que tenho para algumas etapas iniciais. Só tentei em uma máquina virtual não limpa até agora, no entanto ...

Pré-configuração do Windows MSVC

  • Instale o Git para Windows (https://git-scm.com/download/win)
    Permita que ele adicione git.exe ao PATH (as configurações padrão do instalador são adequadas)
  • Instale o Visual Studio 2015 Community Edition (https://www.visualstudio.com/)
    Você DEVE adicionar "Visual C ++" à lista de componentes instalados. Não está ativado por padrão.
  • Instale o Python para Windows (https://www.python.org/downloads/release/python-2711/)
    O instalador MSI do Windows x86-64 está bom.
    Você deve alterar a instalação para instalar o recurso "Adicionar python.exe ao caminho".
  • Instalar virtualenv
    Em um Windows Shell normal (cmd.exe ou "Prompt de Comando" no menu Iniciar), faça:
pip install virtualenv

Se isso não funcionar, pode ser necessário reinicializar para que as configurações alteradas de PATH tenham efeito.

Clone servo

  • Abra um shell normal do Windows (cmd.exe ou "Prompt de comando" no menu iniciar)
  • Faça um clone do Servo:
git clone https://github.com/servo/servo

Construir servo

cd servo
mach.bat build -d

Estou tentando fazer isso agora, mas não consigo compilar 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

_Editar: _ Esqueci de mencionar que estou fazendo um build de lançamento ( mach.bat build -r ), caso isso importe.
_Editar 2: _ Mesmo resultado com mach.bat build -d

Observe que não é suficiente simplesmente ter python.exe em minha PATH , eu também tive que me certificar de que a pasta scripts estava em minha PATH para que eu pudesse execute pip para instalar o virtualenv e para mach para ver o virtualenv.

Também estou desapontado por não haver mach.ps .

Selecionar a opção "Adicionar ao PATH" no instalador do Python adicionou o diretório raiz da instalação do Python e o diretório scripts . Eu só precisava fazer logoff e logon no Windows novamente para que essas alterações tenham efeito.

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

Eu acho que funcionou, sorta. Tentando realmente executar o resultado ...

Servo exited with return value -1073741515 que significa STATUS_DLL_NOT_FOUND . Acredito que a dll que está faltando é freetype.dll . Hmmm, pode ter sido devido ao meu .cargo/config que especifica uma substituição de script de construção para freetype para que funcione normalmente e pode estar em conflito com o freetype do servo.

Ok, depois de comentar meu .cargo/config , o servo agora realmente roda, e então é totalmente inútil. Carregar qualquer página obtém o título, mas a página em si está totalmente em branco.

Além disso, ele fica comendo 2 núcleos da CPU sem fazer absolutamente nada.

Se eu fechar o servo, o processo continua a ser executado e começa a consumir _todos_ os núcleos da minha CPU.

@ retep998 Você precisa especificar um URL.

@ Coder206 Eu fiz cmd /c mach.bat run -d http://www.purple.com . Isso não é suficiente?

@ retep998 Isso deve

@ retep998 Suspeito que isso seja devido às configurações de fonte fictícias no gfx.

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

AMD Radeon R9 380 com drivers atualizados com suporte total a OpenGL 4.5.

@ retep998 Obrigado, este parece ser um problema geral do Windows ou talvez apenas do Windows 10.

Olhando para makefile.cargo:98 em mosjs-sys encontrei a linha

$(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.)

que infelizmente nunca é mostrado durante a construção, porque termina em stdout ao invés de stderr, então não será encaminhado por carga.

A configuração NATIVE_WIN32_PYTHON corrigiu o problema: smiley:
Agora também estou no ponto em que a execução do servo mostra uma janela branca vazia com o título correto, mas nada mais. Estou executando o Windows 10 Home.

Obrigado a todos! Parece que as instruções estão corretas (embora precise de uma correção para o problema de @Boddlnagg , potencialmente) o suficiente para colocar no site.

Dito isso, como @ retep998 e @ Coder206 notaram e posso confirmar, a compilação do MSVC atualmente não completa o carregamento e está em branco. Teremos que verificar isso :-)

@larsbergstrom Acho que tive problemas com espaço de armazenamento na minha VM. Qual é a sua opinião (ou a de alguém) sobre a adição de um espaço em disco recomendado?

Com relação ao espaço em disco ... para uma compilação de desenvolvimento simples, sem testes e sem compilação de lançamento, e sem contar o espaço ocupado no cache de carga ...

Então, eu diria pelo menos 10 GB de espaço livre.

@ retep998 Obrigado por fazer isso. Acho que é por isso que tive problemas de compilação (ou seja, a compilação do "script" falhou).

Sim, acho que um "aviso de pouco espaço em disco" (como um problema separado) pode valer a pena. Agora, quando ficamos sem espaço, a construção do script falha de uma forma que é opaca e não trivial para recuperação - normalmente você precisa fazer uma construção limpa.

@larsbergstrom Sucesso em máquina limpa com Windows 10

Você não precisa do Visual Studio.
Você pode obter o Visual C ++ autônomo aqui:
http://landinghub.visualstudio.com/visual-cpp-build-tools
Usando a opção de instalação padrão

@Jayflux Eu gosto muito mais disso, economiza muito espaço

Construir falhando para mim
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

Ao usar o garfo do Vlad eu entendo isso
https://pastebin.mozilla.org/8909575

Testando em 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

Você pode fazer set PATH e colar os resultados aqui? Estou preocupado que haja outra python, mais maligna, que está primeiro em sua PATH . O meu se parece com:

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ão funcionou para mim

As instruções funcionaram para mim também.

@ Coder206 Existe um problema aberto para o problema de ver uma tela branca em vez do conteúdo do site? Estou tendo o mesmo problema no Windows 10 Educacional (versão 10.0.10586) com um Intel HD Graphics 4000.

@aochagavia Não, não há problema para isso

Devo criar um novo?

Eu acho que seria uma boa ideia. Obrigado por fazer isso @aochagavia!

em mozjs makefile.cargo, há uma linha: SRC_DIR = $(shell pwd) Gostaria de saber se para você, pwd está dando c: ......, e para mim, está dando c: / ....

Para mim, %MOZTOOLS_PATH%\pwd/c/proj/r ; mas isso é com um MOZTOOLS_PATH local. Você deve ver o que mach faz para configurar $ PATH / $ MOZTOOLS_PATH e o pwd que ele encontra.

@vlad, há alguma etapa para descobrir o que o pwd está me fornecendo?
Esses comandos não são executados no console

Preciso definir a variável de env de caminhos moztools?

@vvuk aqui estão os resultados (minha máquina host, não 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>

Também...
Não sei se isso ajuda, mas percebi que você adicionou um caminho para python aqui:
https://github.com/servo/mozjs/commit/7ba7cfa262dd6864d581855bad47c28d4ad97970#diff -9080a05d9a2f1078a5790475b50fdb37L96

No entanto, minha instalação do python é:
C:\Python27 com P maiúsculo

Olhando para makefile. carga: 98 em mosjs-sys encontrei a linha

$ (mensagem Você deve ter o Win32 python nativo instalado em C: / python27 ou definir NATIVE_WIN32_PYTHON para apontar para o python.exe apropriado.)
que infelizmente nunca é mostrado durante a construção, porque termina em stdout ao invés de stderr, então não será encaminhado por carga.

Configurar NATIVE_WIN32_PYTHON resolveu o problema: smiley:
Agora também estou no ponto em que a execução do servo mostra uma janela branca vazia com o título correto, mas nada mais. Estou executando o Windows 10 Home.

@Boddlnagg Eu fiz a mesma coisa, mas ainda é ruim para mim: soluço:: soluço:
Parece que está codificado em c: \ python27, o que irá falhar para alguns, pois é um P maiúsculo na instalação (ou pelo menos para mim era)

@Jayflux Você o configurou para o caminho que contém python.exe ou para apontar para o próprio python.exe ? Deve ser o último.
E eu não sei por que o P maiúsculo deve importar aqui, já que (a) esse é o padrão e (b) os nomes de arquivo devem ser insensíveis a maiúsculas no Windows ...

@Boddlnagg eu apontei diretamente para o próprio python.exe e ainda recebo o mesmo erro
Ok, não sabia sobre a insensibilidade a maiúsculas e minúsculas, é bom saber

Portanto, se https://github.com/servo/servo/issues/13272 for algo a seguir ... As ferramentas de compilação do Visual C ++ estão dando resultados diferentes para a compilação completa do Visual Studio

Vou tentar fazer isso novamente, desinstalando as ferramentas de compilação do Visual C ++ e, em vez disso, usando a instalação completa do Visual Studio, para ver se isso tem algo a ver com isso

@larsbergstrom @vvuk
Acontece que o problema era eu usando http://landinghub.visualstudio.com/visual-cpp-build-tools em vez de instalar o Visual Studio.

Agora fico com a tela branca como todo mundo

Esta página foi útil?
0 / 5 - 0 avaliações