Search code examples
haskellcabal

It is possible for cabal.project to have two seperate build units?


I want to avoid cabal dependency hell problem.

I have three packges. cabal.project

packages: schema/
          client/
          server/

Where client would depend on schema, and server depend on schema. Building schema&client or schema&server would be fine. But client and server have transitive dependency on two versions of same package.

Is it possible to group build units in cabal. So I can build schema&client and schema&server separately to avoid the dependency hell in cabal, under a single cabal.project.


Solution

  • I believe it is impossible to use two conflicting packages in one cabal project.

    As an alternative, you could consider making two project files, e.g. client.project and server.project, and switching between them using the --project-file cabal option.