Mercurial > projects > ldc
diff gen/main.cpp @ 1402:1311dabc6a1f
Merged xfBuild patch for dependency tree generation. See #286.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Wed, 20 May 2009 21:13:41 +0200 |
parents | c5a92bee639d |
children | e5c5d354c649 |
line wrap: on
line diff
--- a/gen/main.cpp Wed May 20 16:20:59 2009 +0200 +++ b/gen/main.cpp Wed May 20 21:13:41 2009 +0200 @@ -143,7 +143,9 @@ global.params.libfiles = new Array(); global.params.objfiles = new Array(); global.params.ddocfiles = new Array(); - + + global.params.moduleDeps = NULL; + global.params.moduleDepsFile = NULL; // Set predefined version identifiers VersionCondition::addPredefinedGlobalIdent("LLVM"); @@ -222,6 +224,12 @@ global.params.hdrdir || global.params.hdrname; #endif + initFromString(global.params.moduleDepsFile, moduleDepsFile); + if (global.params.moduleDepsFile != NULL) + { + global.params.moduleDeps = new OutBuffer; + } + processVersions(debugArgs, "debug", DebugCondition::setGlobalLevel, DebugCondition::addGlobalIdent); @@ -830,6 +838,17 @@ if (global.errors) fatal(); + // write module dependencies to file if requested + if (global.params.moduleDepsFile != NULL) + { + assert (global.params.moduleDepsFile != NULL); + + File deps(global.params.moduleDepsFile); + OutBuffer* ob = global.params.moduleDeps; + deps.setbuffer((void*)ob->data, ob->offset); + deps.write(); + } + // collects llvm modules to be linked if singleobj is passed std::vector<llvm::Module*> llvmModules;