[Hackage] #179: support GHC's main-is extension
Hackage
cvs-ghc at haskell.org
Wed Mar 23 08:46:16 CET 2011
#179: support GHC's main-is extension
----------------------------+-----------------------------------------------
Reporter: duncan | Owner:
Type: enhancement | Status: new
Priority: low | Milestone: _|_
Component: Cabal library | Version: 1.2.2.0
Severity: normal | Keywords:
Difficulty: normal | Ghcversion: 6.4.2
Platform: Linux |
----------------------------+-----------------------------------------------
Comment(by Evi1M4chine):
Hey, I just noticed the same problem, and I think it’s weird to force the
main function to be “main” in the module “Main”. First of all, because
most people in the world don’t prefer English as it isn’t their native
language, and secondly because the main module, main function and main
file name should 1. be the same and 2. be the name of your project.
I have a program called “Ozon”, which has to build targets:
Programm: ghc -threaded -static -O2 -fPIC -Wall -Wwarn -outputdir bauen
-fglasgow-exts -iquellen -main-is Ozon.ozon -o ozon --make quellen/Ozon.hs
Test: ghc -threaded -static -debug -O0 -fPIC -Wall -Wwarn -outputdir bauen
-fglasgow-exts -iquellen -main-is Ozon.teste -o teste --make
quellen/Ozon.hs
As you can see, the main module (Ozon) in the main file (Ozon.hs) has
*two* main functions. One for each mode/target.
With Cabal, it’s not possible do do this, and you’re forced to make a mess
out of it, by inconsistently naming things and splitting up files that
shouldn’t be split up.
Even enforcing “-main-is" in “ghc-options:” is not working with two build
targets. (Unless leksah 0.8.0.8 generates the cabal file wrongly, but I
don’t think so.) The second one is simply ignored, and both resulting
binaries are exactly the same.
It would be enough, if those ghc-options would work properly. But of
course, main-is should be renamed main-file-is, and a main-function-is
should be added. (The main module name can be automatically deduced from
the “module” statement in the main file.)
--
Ticket URL: <http://hackage.haskell.org/trac/hackage/ticket/179#comment:12>
Hackage <http://haskell.org/cabal/>
Hackage: Cabal and related projects
More information about the cabal-devel
mailing list