Ticket #837 (new enhancement)

Opened 2 years ago

Compile the same package with respect to several sets of flag states

Reported by: lemming Owned by:
Priority: normal Milestone:
Component: Cabal library Version: 1.10.1.0
Severity: major Keywords:
Cc: cabal@… Difficulty: unknown
GHC Version: 6.12.3 Platform:

Description

Currently I have configured my cabal with --enable-library-profiling, --enable-shared, what leads to problems with the GHC-7.0.* archives that do not contain shared objects for profiling. Actually, I do not need them, but I cannot tell Cabal to omit shared objects for profiling. If I use --enable-library-profiling and --enable-shared, then all combinations of {static, dynamic} x {non-profiling, profiling} are generated.

Instead of enabling two variants by each of those 'enable' options and then generating code for all possible combinations, I would find it more useful to define sets of flags and compile modules with respect to all of these flag sets. E.g. I could write something like the following to ~/.cabal/config:

flagset: dyn
   shared: True
   optimization: True

flagset: p
   shared: False
   profiling: True
   optimization: True
   rts-options: True

flagset: dbg
   flags: debug
   optimization: True

For every module A this should generate A_dyn.o, A_p.o, A_dbg.o.

I do not know whether this problem can be solved in Cabal alone, or whether it also needs adaption of GHC.

See also:

Note: See TracTickets for help on using tickets.