mirror of
https://github.com/Avi-D-coder/implicit-hie.git
synced 2024-11-26 00:04:23 +03:00
71 lines
1.9 KiB
Markdown
71 lines
1.9 KiB
Markdown
# implicit-hie
|
||
```bash
|
||
cd your-stack-or-cabal-package
|
||
stack install implicit-hie # or cabal install implicit-hie
|
||
gen-hie > hie.yaml
|
||
```
|
||
`gen-hie` should be run the root of a cabal or stack project.
|
||
The config type (cabal or stack) is determined by the existence of
|
||
`dist-newstyle`, `.stack-work`, `stack.yaml`, if none are found the default is cabal.
|
||
You can use `--cabal`, or `--stack` options to override config type.
|
||
|
||
# Cabal Multi project example
|
||
```bash
|
||
❯ git clone https://github.com/well-typed/optics.git
|
||
❯ cd optics
|
||
❯ gen-hie
|
||
cradle:
|
||
cabal:
|
||
- path: "indexed-profunctors/src"
|
||
component: "lib:indexed-profunctors"
|
||
|
||
- path: "optics-th/src"
|
||
component: "lib:optics-th"
|
||
|
||
- path: "optics-th/tests"
|
||
component: "optics-th:test:optics-th-tests"
|
||
|
||
- path: "optics-vl/src"
|
||
component: "lib:optics-vl"
|
||
|
||
- path: "codegen/./Subtypes.hs"
|
||
component: "optics-codegen:exe:optics-codegen-subtypes"
|
||
|
||
- path: "optics-core/src"
|
||
component: "lib:optics-core"
|
||
|
||
- path: "optics-sop/src"
|
||
component: "lib:optics-sop"
|
||
|
||
- path: "optics-extra/src"
|
||
component: "lib:optics-extra"
|
||
|
||
- path: "template-haskell-optics/src"
|
||
component: "lib:template-haskell-optics"
|
||
|
||
- path: "optics/src"
|
||
component: "lib:optics"
|
||
|
||
- path: "optics/tests"
|
||
component: "optics:test:optics-tests"
|
||
|
||
- path: "metametapost/src/Cli.hs"
|
||
component: "metametapost:exe:metametapost-optics"
|
||
|
||
```
|
||
|
||
## Features
|
||
|
||
All common Cabal and Stack configurations should just work.
|
||
If you use more advanced features, the generated config may not be complete.
|
||
|
||
- [x] multi component cabal, stack projects
|
||
- [x] multiple executables under a single path
|
||
- [x] multiple paths provided to `hs-source-dirs`
|
||
- [x] lookup nested packages in `cabal.project` or `stack.yaml`
|
||
- [x] Handle Exe and Bench `other-modules`
|
||
- [ ] common stanzas
|
||
|
||
### Work, Twitter
|
||
- Follow me on twitter [@AviDessauer](https://twitter.com/AviDessauer).
|