# from Adam Kennedy
# on Friday 27 October 2006 08:38 pm:
>As I've explained a few times now requires and build_requires (and
>dev_requires/devel_require etc if we get them) can ONLY reliably be
>determined by running the Build.PL to resolve variations in
> dependencies on different platforms.
Please give a realistic example of requiring different *build* or
*install* plugins on different platforms. Perhaps my builder.pm hack
needs rethinking.
Actually, as long as Module::Build::Plugins runs on all platforms,
you'll still be able to just build_requires MBP (if you really need an
install plugin) and builder('Module::Build::Pluggable') then returns
'Module::Build::Pluggable' and hopefully your custom build class can
handle the rest at runtime.
What part of that does not work for you?
I think it is okay if dev_requires takes a bit of critical thinking.
Most programmers should be able to understand the concept of a
dependency. Sure, I would love for it to be seamless, but it is not
worth blocking the deployment of a 98% solution.
>It also means that plugins won't be allowed if you have different
>dependencies on different platforms.
I cannot really see a good reason to dynamically choose a
platform-specific M::B plugin. If the plugin needs something special,
that is solved during its own install process. Thus, which *plugin*
your build requires is static. If that doesn't work for some reason,
just release another plugin and declare a static dependency on it.
Aside: I think you might be harping on a completely different (and yes,
valid) problem. Would the ability to require "A or B or C" solve that?
--Eric
--
You can't whack a chisel without a big wooden mallet.
---------------------------------------------------
http://scratchcomputing.com
---------------------------------------------------