Mercurial > projects > ldc
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++) |