[Haskell-cafe] Cabal, sdist and flags
Magnus Therning
magnus at therning.org
Thu Oct 8 04:31:57 EDT 2009
A while ago I moved a project away from using a mix of Cabal and make
to build (Cabal to build the library and make to build the tests) to
using only Cabal. I added a flag and then made a construct like this:
flag BuildTests
Description: Build unit and quickcheck tests.
Default: False
...
executable tests
if flag(BuildTests)
main-is: Test.hs
build-depends: test-framework, test-framework-hunit, HUnit,
test-framework-quickcheck2, QuickCheck >= 2.1.0.0
hs-source-dirs: test-src src
else
main-is: Test.hs
buildable: False
Interestingly that does work for things like 'configure' and 'build',
but it doesn't work for 'sdist':
% ./Setup.hs sdist
Distribution quality errors:
Building source dist for dataenc-0.13.0.1...
Setup.hs: Test.hsTest.hs doesn't exist
To make this work I had to move the 'main-is' outside of the if-else:
executable tests
main-is: Test.hs
hs-source-dirs: test-src src
if flag(BuildTests)
build-depends: test-framework, test-framework-hunit, HUnit,
test-framework-quickcheck2, QuickCheck >= 2.1.0.0
else
buildable: False
I found this surprising, so I'm tempted to call it a bug. A quick
search didn't tell me whether this is well-known already, hence the
email. Would you consider it a bug? Has it been raised already?
/M
--
Magnus Therning (OpenPGP: 0xAB4DFBA4)
magnus@therning.org Jabber: magnus@therning.org
http://therning.org/magnus identi.ca|twitter: magthe
More information about the Haskell-Cafe
mailing list