[Haskell-cafe] how to set extra-lib-dirs for a dependency in a stack project?

Henning Thielemann lemming at henning-thielemann.de
Sun Jan 30 17:05:56 UTC 2022

On Sun, 30 Jan 2022, Johannes Waldmann wrote:

> is it possible to specify include-dirs and extra-lib-dirs
> for a dependency?
> I have
> * top-level project A, depends on:
> * project B, depends on:
> * C: external library (written in C)
> I am building A with stack. I don't want to put
> fixed locations (include/lib) for C  in  B.cabal,
> because it depends on the (top-level) build environment of A
> (e.g., my machine, or CI).
> Concrete example: C = kissat SAT solver, B = Haskell API for C.

Are B and C part of Stackage?

It sounds as if they are not.

If so, then why would you want to build with 'stack', at all?

> With cabal.project, I could set options for (all?) dependencies?
> https://cabal.readthedocs.io/en/3.4/cabal-project.html#foreign-function-interface-options
> Would stack use this setting (will it read that file at all)?

stack ignores cabal.project.

> Will I have to copy  all extra-deps source repo locations
> to cabal.project?

In cabal.project you can add:

package C
    extra-include-dirs: /usr/local/C/include
    extra-lib-dirs: /usr/local/C/lib

More information about the Haskell-Cafe mailing list