On May 24, 2010, at 12:06, Bradley Giesbrecht wrote:
> On May 24, 2010, at 8:59 AM, Ryan Schmidt wrote:
>
>> Conflicting variants is easy. Check out for example the GraphicsMagick
>> port's quality variants (q8, q16, q32).
>
> Right, conflicting is easy. I looked for variant_isset in port sources and
> came up with this.
> Would this be a reasonable way to ensure that a variant is set?
> Keep in mind that ONE and ONLY ONE variant MUST be set.
>
> pre-fetch {
> if {![array size variations]} {
> variant_set {mailtrain}
> }
> }
>
> Port appears to handle misspelled or nonexistent variations so [array size
> variations] seems to be zero if the user did not pass in valid variations for
> this port. I mention this incase the user is installing more then one package
> or if this port ever became a dependency and variations for other ports are
> on the command line.
GraphicsMagick uses:
if {![variant_isset q16] && ![variant_isset q32]} {
default_variants +q8
}
This ensures that if the user does not specify +q8, +q16 or +q32, it selects
+q8.
The one thing this does not handle is if the user specifically tries to install
"GraphicsMagick -q8"; in this case no variant will be selected. I've never been
entirely comfortable with that. Perhaps we should indeed be using variant_set
instead:
if {![variant_isset q16] && ![variant_isset q32]} {
variant_set q8
}
I'm not certain why we haven't been doing that.
_______________________________________________
macports-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev