0xAX
0xAX

Reputation: 21817

Cabal: build dir with source

I have a src directory. In this directory I have Main.hs file and Test directory. In the Test directory I have Test.hs module. I need to compile it with cabal.

In my cabal file I have:

Executable main
  -- .hs or .lhs file containing the Main module.
      Main-is: src/Main.hs  

and

  -- Modules not exported by this package.
     Other-modules: Test.Test

When I do cabal configure it's OK, but when I try to cabal build I get the following error:

cabal build
Preprocessing executables for main-0.0.1...
cabal: can't find source for Test/Test in ., dist/build/autogen

How can I correctly build Main.hs and some other directories with .hs files?

Thank you.

Upvotes: 18

Views: 4964

Answers (1)

ehird
ehird

Reputation: 40787

If Test.Test is defined in src/Test/Test.hs, you need

hs-source-dirs: src

in the Executable section of your Cabal file. Note that your main-is file path should be relative to the source directory, so in this case, you should change it to Main.hs.

Upvotes: 21

Related Questions