Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 50 additions & 13 deletions guides/windows.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,81 @@
# Windows Users
# Windows users

> Exqlite uses an [Erlang NIF](https://erlang.org/doc/tutorial/nif.html) under the hood.
> Means calling a native implementation in C.
> For Windows users this means compiling Exqlite does not magically just work.
> Means calling a native implementation in C.

For Windows users this means compiling Exqlite does not magically just work.
Of course, using **WSL 2** can be an alternative.

## Requirements

### Install Microsoft Visual C++ Build Tools
### Install Microsoft Visual C++ build tools

Download page:
[visualstudio.microsoft.com/visual-cpp-build-tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/)

Alternative direct download link:
[aka.ms/vs/16/release/vs_buildtools.exe](https://aka.ms/vs/16/release/vs_buildtools.exe)
_for Visual Studio 2019 - version 16_
_(aligned with Visual Studio 2019 - version 16)_

You need to install the **C++ build tools** workload with the default optional components.

## Building
## Building environment

### Start command prompt with necessary environment

> Assuming you want to build for Windows x64.
> Assuming you are building for Windows x64.

Within Windows Start menu search for:
Within Windows start menu search for:
x64 Native Tools Command Prompt

Starting this command prompt all necessary environment variables for compiling should be ready.
Starting this command prompt all necessary environment variables
for compiling should be ready within the prompt.

Means ready to run:
```cmd
Ready to run:
```powershell
mix deps.compile exqlite

# or
mix compile
mix test
...
```

**Alternative way to start prompt**

Assuming you have _latest_ version of Build Tools (Visual Studio 2019) installed.
> Assuming you have _latest_ version of Build Tools, aligned with Visual Studio **2019**,
installed in its default installation path.

```
```powershell
cmd /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
```

## Visual Studio Code users using ElixirLS

> Assuming you have _latest_ version of Build Tools, aligned with Visual Studio **2019**,
installed in its default installation path.

Start Visual Studio Code from a PowerShell prompt within your project folder.

```powershell
cmd /k '"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars64.bat" && code .'
```

With starting Visual Studio Code this way, ElixirLS should work
and even your integrated terminal should be aware or the build tools.

Probably make yourself a shortcut for this.

**Integrated terminal only**

Within your global `settings.json` or your workspace `.vscode\settings.json` add:

```json
{
"terminal.integrated.shell.windows": "cmd.exe",
"terminal.integrated.shellArgs.windows": [
"/k",
"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Auxiliary\\Build\\vcvars64.bat",
]
}
```