18

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.

itsjeyd
  • 5,070
  • 2
  • 30
  • 49
0xAX
  • 20,957
  • 26
  • 117
  • 206

1 Answers1

21

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.

ehird
  • 40,602
  • 3
  • 180
  • 182