Index: GccBuilder.cpp =================================================================== --- GccBuilder.cpp (revisione 15939) +++ GccBuilder.cpp (copia di lavoro) @@ -225,6 +225,16 @@ sfile.AppendPick(pick(isfile)); soptions.AppendPick(pick(isoptions)); + VectorMap objMap; + String mapPath = CatAnyPath(outdir, "OBJFILES.MAP"); + if(FileExists(mapPath)) + { + FileIn f(mapPath); + f % objMap; + } + else + objMap.Add("") = 0; + int ccount = 0; for(i = 0; i < sfile.GetCount(); i++) { if(!IdeIsBuilding()) @@ -234,7 +244,17 @@ bool rc = (ext == ".rc"); bool brc = (ext == ".brc"); bool init = (i >= first_ifile); - String objfile = CatAnyPath(outdir, GetFileTitle(fn) + (rc ? "$rc.o" : brc ? "$brc.o" : ".o")); + +// String objfile = CatAnyPath(outdir, GetFileTitle(fn) + (rc ? "$rc.o" : brc ? "$brc.o" : ".o")); + + int objIdx = objMap.Get(fn, -1); + if(objIdx == -1) + { + objIdx = objMap[0]++; + objMap.Add(fn) = objIdx; + } + String objfile = CatAnyPath(outdir, Format("%08d", objIdx) + (rc ? "$rc.o" : brc ? "$brc.o" : ".o")); + if(GetFileName(fn) == "Info.plist") Info_plist = LoadFile(fn); if(HdependFileTime(fn) > GetFileTime(objfile)) { @@ -303,6 +323,12 @@ obj.Add(objfile); } + // store objmap back + { + FileOut f(mapPath); + f % objMap; + } + if(error) { // if(ccount) // PutCompileTime(time, ccount);