[Haskell-cafe] Additional functionality using cabal configure flags

Konstantine Rybnikov k-bx at k-bx.com
Fri Mar 13 07:35:15 UTC 2015


Sumit,

Here's an example:

```
flag production
  default: False

Executable Foo
  if flag(production)
    cpp-options: -DPRODUCTION
```

I should note that while I have this mechanism in my code, I think that
overall it wasn't a good choice, and I'd rather prefer parsing a
command-line argument and passing it through my code in stead of having a
flag like this. It makes code much harder to write, because each usage has
heavy syntax of:

```
#ifdef PRODUCTION
something
#else
somethingElse
#endif
```

while instead you could just write:

```
if production then something else somethingElse
```



On Thu, Mar 12, 2015 at 11:43 PM, Sumit Sahrawat, Maths & Computing, IIT
(BHU) <sumit.sahrawat.apm13 at iitbhu.ac.in> wrote:

> Hi Konstantine, thanks for the reply
>
> I decide to use flags, but then the trouble is that I will need some
> mechanism to flag parts of the code, possibly using the CPP extension.
> I wanted to know whether there is a better way. Also, does CPP allow
> checking cabal configure flags? The user-guide did not mention such
> usecases.
>
> On 13 March 2015 at 02:23, Konstantine Rybnikov <k-bx at k-bx.com> wrote:
>
>> Hi Sumit,
>>
>> Documentation clearly mentions it is related to API, so don't worry with
>> executable and feel free to use the flags (still, depending on what are you
>> doing, flags might not be the best solution).
>> 12 бер. 2015 18:40, користувач "Sumit Sahrawat, Maths & Computing, IIT
>> (BHU)" <sumit.sahrawat.apm13 at iitbhu.ac.in> написав:
>>
>>> Hi everybody,
>>>
>>> I am looking for the correct way to provide additional functionality
>>> using cabal configure flags.
>>> Even though the developer faq [1] says that it is not recommended, I
>>> don't see any downsides for an executable package.
>>>
>>> Is it 'not recommended' even for executable packages? If not, then how
>>> can I do it?
>>>
>>> [1]: https://wiki.haskell.org/Cabal/Developer-FAQ
>>>
>>> --
>>> Regards
>>>
>>> Sumit Sahrawat
>>>
>>> _______________________________________________
>>> Haskell-Cafe mailing list
>>> Haskell-Cafe at haskell.org
>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>>>
>>>
>
>
> --
> Regards
>
> Sumit Sahrawat
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20150313/52473b13/attachment.html>


More information about the Haskell-Cafe mailing list