Skip to content
  • Emmanuele Bassi's avatar
    Allow expressing arguments for Ninja · 57d00a93
    Emmanuele Bassi authored
    Ninja-based modules, like MesonModule and CMakeModule, need a way to
    control the arguments passed to Ninja — mostly, the ability to set the
    `-j 1` argument to disable parallel builds.
    
    We tried with commit f8c05196 to overload makeargs for that, but it
    had to be reverted because, unsurprisingly, make and ninja have
    different ideas about what arguments are valid, and jhbuild has global
    options for Make arguments.
    
    Let's try again, this time introducing a NinjaModule base class, in
    parallel to the existing MakeModule one; the NinjaModule class can do
    all the Ninja discovery and execution, and control the configuration
    options — both global and per module.
    
    The MesonModule class can inherit straight from NinjaModule, thus
    removing all the ad hoc code that used MakeModule for the set up, but
    then ignored its `make()` method.
    
    The CMakeModule is a bit of a nasty case, as CMake can have both a Make
    and a Ninja backend, which means we need to inherit from MakeModule and
    NinjaModule; luckily, both MakeModule and NinjaModule inherit from the
    shared Package class, so we don't have conflicting initializations.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=782320
    57d00a93