The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

C_DependAndBuildDepender.pm

This modules overrides the way PBS generates dependencies to allow the generation of the object files while generating dependencies.

This is usefull when compiling with Microsoft 'cl' which takes as much time to generated dependencies and object code as it takes to only generate dependencies. This effectively halves the build time with 'cl'.

That is done by first replacing the C Depender and generating a $PreprocessorDepend which is used by the generic C dependency generator.

=depend_flow

 +---------------------------+
 | PBS::CreateDependencyTree |
 +---------------------------+
   |
 -------------------------------------------------------------    depend only   --------------------------------------------------------------
   |
   |   +----------+     +------------------+     +------------------------+     +------------------------+     +---------------------------+
   +-> | Depender | +-> | C_SourceDepender | --> | GenerateDependencyFile | +-> |   $PreprocessorDepend  | --> | Devel::Depend::Cl::Depend |
       +----------+ |   +------------------+     +------------------------+ |   +------------------------+     +---------------------------+
                    |             ^                                         |
                    |             |                                         |
                    |             |                                         |
 ----------------------------------------------------   depend and build simulteanously   ----------------------------------------------------
                    |             |                                         |
                    |             |                                         |
                    |   +--------------------------+                        |
                    +-> | C_DependAndBuildDepender |                        |
                        +--------------------------+                        |
                          |  ^                                              |
                          v  |                                              |
                        +-----------------------------------+               |   +------------------------+     +--------------------------------+
                        |   Generate $PreprocessorDepend2   |               +-> |  $PreprocessorDepend2  | --> | Devel::Depend::Cl::RunAndParse |
                        +-----------------------------------+                   +------------------------+     +--------------------------------+