Здание со стеком, у меня есть lib.hs
в src/
и main.c
в app/
.При построении lib_stub.h
генерируется в .stack-work/dist/x86_64-linux/Cabal-2.2.0.1/build
.
Чтобы включить этот файл в main.c
, я либо пишу полный абсолютный путь за директивой #include
, либо перед вторым ручным проходом,вручную скопируйте файл lib_stub.h
в app/
, что довольно глупо.
Есть ли лучший способ?
Дополнительная информация:
Мой package.yaml
выглядиткак
name: mylib
version: 0.1.0.0
github: "gituser/mylib"
license: BSD3
author: "Author name here"
maintainer: "example@example.com"
copyright: "2018 Author name here"
extra-source-files:
- README.md
- ChangeLog.md
# Metadata used when publishing your package
# synopsis: Short description of your package
# category: Web
# To avoid duplicated efforts in documentation and dealing with the
# complications of embedding Haddock markup inside cabal files, it is
# common to point users to the README.md file.
description: Please see the README on GitHub at <https://github.com/gituser/mylib#readme>
dependencies:
- base >= 4.7 && < 5
library:
source-dirs: src
dependencies:
- free
- mtl
executables:
cont-demo:
main: main.c
source-dirs: app
ghc-options:
- -threaded
# - -rtsopts
# - -with-rtsopts=-N
dependencies:
- mylib
tests:
mylib-test:
main: Spec.hs
source-dirs: test
ghc-options:
- -threaded
- -rtsopts
- -with-rtsopts=-N
dependencies:
- mylib
И моя структура пути выглядит как
.
├── app
│ ├── MyLib_stub.h
│ └── main.c
├── ChangeLog.md
├── mylib.cabal
├── LICENSE
├── package.yaml
├── README.md
├── Setup.hs
├── src
│ └── MyLib.hs
├── stack.yaml
└── test
└── Spec.hs
, где app/MyLib_stub.h
копируется вручную, а не помещается туда автоматически.