Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cabal: build dir with source

Tags:

haskell

cabal

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.

like image 913
0xAX Avatar asked Dec 17 '11 06:12

0xAX


1 Answers

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.

like image 112
ehird Avatar answered Oct 06 '22 12:10

ehird