comparison 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
comparison
equal deleted inserted replaced
1401:e2cf1f67ca33 1402:1311dabc6a1f
141 141
142 global.params.linkswitches = new Array(); 142 global.params.linkswitches = new Array();
143 global.params.libfiles = new Array(); 143 global.params.libfiles = new Array();
144 global.params.objfiles = new Array(); 144 global.params.objfiles = new Array();
145 global.params.ddocfiles = new Array(); 145 global.params.ddocfiles = new Array();
146 146
147 global.params.moduleDeps = NULL;
148 global.params.moduleDepsFile = NULL;
147 149
148 // Set predefined version identifiers 150 // Set predefined version identifiers
149 VersionCondition::addPredefinedGlobalIdent("LLVM"); 151 VersionCondition::addPredefinedGlobalIdent("LLVM");
150 VersionCondition::addPredefinedGlobalIdent("LDC"); 152 VersionCondition::addPredefinedGlobalIdent("LDC");
151 VersionCondition::addPredefinedGlobalIdent("all"); 153 VersionCondition::addPredefinedGlobalIdent("all");
219 initFromString(global.params.hdrdir, hdrDir); 221 initFromString(global.params.hdrdir, hdrDir);
220 initFromString(global.params.hdrname, hdrFile); 222 initFromString(global.params.hdrname, hdrFile);
221 global.params.doHdrGeneration |= 223 global.params.doHdrGeneration |=
222 global.params.hdrdir || global.params.hdrname; 224 global.params.hdrdir || global.params.hdrname;
223 #endif 225 #endif
226
227 initFromString(global.params.moduleDepsFile, moduleDepsFile);
228 if (global.params.moduleDepsFile != NULL)
229 {
230 global.params.moduleDeps = new OutBuffer;
231 }
224 232
225 processVersions(debugArgs, "debug", 233 processVersions(debugArgs, "debug",
226 DebugCondition::setGlobalLevel, 234 DebugCondition::setGlobalLevel,
227 DebugCondition::addGlobalIdent); 235 DebugCondition::addGlobalIdent);
228 processVersions(versions, "version", 236 processVersions(versions, "version",
828 } 836 }
829 #endif 837 #endif
830 if (global.errors) 838 if (global.errors)
831 fatal(); 839 fatal();
832 840
841 // write module dependencies to file if requested
842 if (global.params.moduleDepsFile != NULL)
843 {
844 assert (global.params.moduleDepsFile != NULL);
845
846 File deps(global.params.moduleDepsFile);
847 OutBuffer* ob = global.params.moduleDeps;
848 deps.setbuffer((void*)ob->data, ob->offset);
849 deps.write();
850 }
851
833 // collects llvm modules to be linked if singleobj is passed 852 // collects llvm modules to be linked if singleobj is passed
834 std::vector<llvm::Module*> llvmModules; 853 std::vector<llvm::Module*> llvmModules;
835 854
836 // Generate output files 855 // Generate output files
837 for (int i = 0; i < modules.dim; i++) 856 for (int i = 0; i < modules.dim; i++)