id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc	difficulty	ghcversion	platform
566	Don't try and resolve dependencies for packages that are not buildable	batterseapower		"I had a component like this:

{{{
Executable edit-distance-benchmark
        Main-Is:                Text/EditDistance/Benchmark.hs
        
        if flag(splitBase)
                Build-Depends:  base >= 3 && < 5, array >= 0.1, random >= 1.0, old-time >= 1.0, process >= 1.0,
                                parallel >= 1.0, unix >= 2.3
        else
                Build-Depends:  base < 3,
                                parallel >= 1.0, unix >= 2.3
        
        if !flag(benchmark)
                Buildable:      False
            
        Ghc-Options:            -O2 -fvia-C -Wall
}}}

However, I've only just found out that this meant that you couldn't install any parts of my package on Windows, because Cabal tried to resolve the ""unix"" dependency even if ""benchmark"" was False (the default)!

I've solved this like so:

{{{
Executable edit-distance-benchmark
        Main-Is:                Text/EditDistance/Benchmark.hs
        
        if !flag(benchmark)
                Buildable:      False
        else
                if flag(splitBase)
                        Build-Depends:  base >= 3 && < 5, array >= 0.1, random >= 1.0, old-time >= 1.0, process >= 1.0,
                                        parallel >= 1.0, unix >= 2.3
                else
                        Build-Depends:  base < 3,
                                        parallel >= 1.0, unix >= 2.3
            
        Ghc-Options:            -O2 -fvia-C -Wall
}}}

But really Cabal should not need to resolve dependencies for things that are not buildable."	defect	new	normal		Cabal library	1.6.0.1	normal				hard (< 1 day)		
