2020-04-24 03:48:49 +03:00
|
|
|
|
# implicit-hie
|
2020-05-01 03:59:13 +03:00
|
|
|
|
```bash
|
|
|
|
|
cd your-stack-or-cabal-package
|
2020-05-09 06:08:30 +03:00
|
|
|
|
gen-hie > hie.yaml
|
2020-05-01 03:59:13 +03:00
|
|
|
|
```
|
2020-05-04 22:52:56 +03:00
|
|
|
|
`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.
|
|
|
|
|
|
|
|
|
|
# Cabal Multi project example
|
|
|
|
|
```bash
|
|
|
|
|
❯ git clone https://github.com/well-typed/optics.git
|
|
|
|
|
❯ cd optics
|
|
|
|
|
❯ gen-hie
|
2020-05-09 06:08:30 +03:00
|
|
|
|
cradle:
|
|
|
|
|
cabal:
|
|
|
|
|
- path: "indexed-profunctors/src"
|
|
|
|
|
component: "lib:indexed-profunctors"
|
2020-05-09 06:14:26 +03:00
|
|
|
|
|
2020-05-09 06:08:30 +03:00
|
|
|
|
- path: "optics-th/src"
|
|
|
|
|
component: "lib:optics-th"
|
2020-05-09 06:14:26 +03:00
|
|
|
|
|
2020-05-09 06:08:30 +03:00
|
|
|
|
- path: "optics-th/tests"
|
|
|
|
|
component: "optics-th:test:optics-th-tests"
|
2020-05-09 06:14:26 +03:00
|
|
|
|
|
2020-05-09 06:08:30 +03:00
|
|
|
|
- path: "optics-vl/src"
|
|
|
|
|
component: "lib:optics-vl"
|
2020-05-09 06:14:26 +03:00
|
|
|
|
|
2020-05-09 06:08:30 +03:00
|
|
|
|
- path: "codegen/./Subtypes.hs"
|
|
|
|
|
component: "optics-codegen:exe:optics-codegen-subtypes"
|
2020-05-09 06:14:26 +03:00
|
|
|
|
|
2020-05-09 06:08:30 +03:00
|
|
|
|
- path: "optics-core/src"
|
|
|
|
|
component: "lib:optics-core"
|
2020-05-09 06:14:26 +03:00
|
|
|
|
|
2020-05-09 06:08:30 +03:00
|
|
|
|
- path: "optics-sop/src"
|
|
|
|
|
component: "lib:optics-sop"
|
2020-05-09 06:14:26 +03:00
|
|
|
|
|
2020-05-09 06:08:30 +03:00
|
|
|
|
- path: "optics-extra/src"
|
|
|
|
|
component: "lib:optics-extra"
|
2020-05-09 06:14:26 +03:00
|
|
|
|
|
2020-05-09 06:08:30 +03:00
|
|
|
|
- path: "template-haskell-optics/src"
|
|
|
|
|
component: "lib:template-haskell-optics"
|
2020-05-09 06:14:26 +03:00
|
|
|
|
|
2020-05-09 06:08:30 +03:00
|
|
|
|
- path: "optics/src"
|
|
|
|
|
component: "lib:optics"
|
2020-05-09 06:14:26 +03:00
|
|
|
|
|
2020-05-09 06:08:30 +03:00
|
|
|
|
- path: "optics/tests"
|
|
|
|
|
component: "optics:test:optics-tests"
|
2020-05-09 06:14:26 +03:00
|
|
|
|
|
2020-05-09 06:08:30 +03:00
|
|
|
|
- path: "metametapost/src/Cli.hs"
|
|
|
|
|
component: "metametapost:exe:metametapost-optics"
|
|
|
|
|
|
2020-05-04 22:52:56 +03:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 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
|
2020-05-13 01:12:14 +03:00
|
|
|
|
- [x] multiple paths provided to `hs-source-dirs`
|
|
|
|
|
- [x] lookup nested packages in `cabal.project` or `stack.yaml`
|
2020-05-20 05:22:41 +03:00
|
|
|
|
- [x] Handle Exe and Bench `other-modules`
|
2020-05-04 22:52:56 +03:00
|
|
|
|
- [ ] common stanzas
|
|
|
|
|
|
2020-05-04 23:03:25 +03:00
|
|
|
|
### Work, Twitter
|
2020-05-04 22:52:56 +03:00
|
|
|
|
- Follow me on twitter [@AviDessauer](https://twitter.com/AviDessauer).
|