Skip to content

Instantly share code, notes, and snippets.

@jdunkerley
Last active October 6, 2023 08:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jdunkerley/b1c859605d2f9ce816ad36df28c4b24e to your computer and use it in GitHub Desktop.
Save jdunkerley/b1c859605d2f9ce816ad36df28c4b24e to your computer and use it in GitHub Desktop.
Set up a Windows 10 machine from empty to ready to build Enso

Install latest Powershell

winget install --id Microsoft.Powershell --source winget

Open Powershell 7 (or later) as admin (pwsh)

## Install Git, NVM, MSVC, Rust
winget install --id 7zip.7zip
winget install --id Git.Git
winget install --id GitHub.cli
winget install --id Microsoft.VisualStudioCode
winget install --id Microsoft.WindowsTerminal
winget install --id Microsoft.VisualStudio.2022.Community --silent --override "--wait --quiet --addProductLang En-us --add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended"
winget install --id CoreyButler.NVMforWindows
winget install --id Rustlang.Rustup
winget install --id sbt.sbt
winget install --id Chocolatey.Chocolatey

Restart Powershell 7

Invoke-WebRequest -Uri https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-17.0.7/graalvm-community-jdk-17.0.7_windows-x64_bin.zip -OutFile graalvm.zip
Expand-Archive graalvm.zip .
Remove-Item graalvm.zip
$javaHome=(Get-ChildItem graalvm*).fullname
$msvc=(Get-ChildItem "$Env:Programfiles\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\").Name
$winsdk=(Get-ChildItem "${env:ProgramFiles(x86)}\Windows Kits\10\Include\").FullName
$winlib=(Get-ChildItem "${env:ProgramFiles(x86)}\Windows Kits\10\Lib\").FullName
$winunion=(Get-ChildItem "${env:ProgramFiles(x86)}\Windows Kits\10\UnionMetadata\").FullName
$winref=(Get-ChildItem "${env:ProgramFiles(x86)}\Windows Kits\10\References\").FullName
setx PATH "$env:path;%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\$msvc\bin\Hostx64\x64;%ProgramFiles%\7-zip\;$javaHome\bin" -m
setx INCLUDE "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\$msvc\include;$winsdk\ucrt;$winsdk\shared;$winsdk\um;$winsdk\winrt;$winsdk\cppwinrt" -m
setx LIB "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\$msvc\lib\x64;$winlib\ucrt\x64;$winlib\um\x64" -m
setx LIBPATH "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\$msvc\lib\x64;%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\$msvc\lib\x64\store;$winunion;$winref" -m
setx JAVA_HOME "$javaHome" -m

Run old Powershell (powershell)

choco install flatc --version 1.12.0

Restart Powershell 7 (pwsh) in Terminal if prefered

nvm install lts
nvm use lts
rustup toolchain install stable
cargo +stable install wasm-pack
cargo +stable install cargo-watch
gu.cmd install js
git config --global core.eol lf
git config --global core.autocrlf input
git clone https://github.com/enso-org/enso.git
cd enso
sbt bootstrap
.\run
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment