Skip to content
This repository was archived by the owner on Oct 7, 2020. It is now read-only.

Commit 02feb7c

Browse files
committed
Add section for the Shake build system in README
1 parent 9f87ce8 commit 02feb7c

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

README.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ we talk to clients.__
2626
- [macOS](#installation-on-macos)
2727
- [Nix](#installation-with-nix)
2828
- [ArchLinux](#installation-on-archlinux)
29+
- [Shake](#installation-with-shake)
2930
- [Configuration](#configuration)
3031
- [Editor Integration](#editor-integration)
3132
- Using HIE with [VS Code](#using-hie-with-vs-code), [Sublime Text](#using-hie-with-sublime-text), [Vim/Neovim](#using-hie-with-vim-or-neovim), [Atom](#using-hie-with-atom), [Oni](#using-hie-with-oni), [Emacs](#using-hie-with-emacs), [Spacemacs](#using-hie-with-spacemacs) or [Spacemacs+Nix](#using-hie-with-spacemacs-on-nix-based-projects)
@@ -295,6 +296,62 @@ Using [Aura](https://github.com/aurapm/aura):
295296
# aura -A haskell-ide-engine-git
296297
```
297298

299+
### Installation with Shake
300+
301+
Experimental build script for HIE. Feedback is appreciated.
302+
Uses the [shake](https://shakebuild.com/) build system for predictable builds.
303+
The build script is platform independent and the only prerequisites are that `git` and `stack` are installed. The dependency on `make` and other linux specific commands has been dropped.
304+
305+
Note, on first invocation of the build script, a GHC is being installed for execution. However, if you build HIE for every GHC, no GHC is downloaded twice.
306+
The GHC used for the `Shakefile.hs` can be adjusted in `shake.yaml` by using a different resolver.
307+
308+
Available commands can be seen with:
309+
310+
```bash
311+
stack ./Shakefile.hs help
312+
```
313+
314+
Remember, this will take time to download a Stackage-LTS and an appropriate GHC. However, afterwards all commands should work as expected.
315+
316+
#### Install specific GHC Version with Shake
317+
318+
Install **Nightly** (and hoogle docs):
319+
320+
```bash
321+
stack ./Shakefile.hs hie-8.6.3
322+
stack ./Shakefile.hs build-doc-8.6.3
323+
```
324+
325+
Install **LTS** (and hoogle docs):
326+
327+
```bash
328+
stack ./Shakefile.hs hie-8.4.4
329+
stack ./Shakefile.hs build-doc-8.4.4
330+
```
331+
332+
#### Install *all* available GHC versions with Shake
333+
334+
*Warning*: Requires 20+ GB of space and potentially more than 2 hours to install, so please be patient!
335+
336+
This will:
337+
338+
* install all supported GHC versions (8.2.1 - 8.6.3)
339+
* name them as expected by the VS Code plugin
340+
* build local hoogle docs for each version
341+
342+
```bash
343+
stack ./Shakefile.hs build-all
344+
```
345+
346+
Then add
347+
348+
```json
349+
"languageServerHaskell.useCustomHieWrapper": true,
350+
"languageServerHaskell.useCustomHieWrapperPath": "hie-wrapper",
351+
```
352+
353+
to VS Code user settings.
354+
298355
## Configuration
299356
There are some settings that can be configured via a `settings.json` file:
300357

0 commit comments

Comments
 (0)