• Alexander Neundorf's avatar
    cmDepends: allow multiple dependees per depender · e74ff7c2
    Alexander Neundorf authored
    This patch is heavily inspired by Michael Wild.
    
    The interfaces cmDepends::Write and cmDepends::WriteDependencies where
    extended to allow multiple dependees (sources) per depender (object).
    cmDepends::Write first collect all dependencies into a std::set before
    passing it to cmDepends::WriteDependencies.
    
    cmDependsC::WriteDependencies also first collects all explicit and
    implicit dependencies into a std::set and only then writes
    depend.{internal,make}. The implementation of cmDependsFortran simply
    loops over all sources and proceeds as before, whereas the cmDependsJava
    implementation is as trivial as before.
    
    This is for preventing exponential growth of depend.{internal,make} in
    the next commit which fixes dependency-vector erasure in
    cmDepends::CheckDependencies.
    Inspired-by: default avatarMichael Wild <themiwi@users.sourceforge.net>
    e74ff7c2
cmDepends.cxx 10.1 KB