Zitat von
mjustin:
- die globalen
IDE Bibliotheks- und Suchpfade (die auch Variablen enthalten können)
1- die Build-Konfiguration des Projekts (die auch hierarchisch sein kann), mit weiteren Source-Pfaden
2- {$IFDEF} und {$IF} & Co.
3- explizit angegebene Units in der
DPR Datei
4-
Unit-Aliase
5- Namespaces (!), siehe DCC32 Option -NS
1: die kann man ja aus der Registry aus lesen und bei mehreren Compilern/IDEs eine Auswahlbox anbieten
2: das würde sich im geparsten Baum "leicht finden und auswerten lassen (wenn sowas vorm/beim Parsen nicht entfernt würde)
3/4: da ja eh alle nötigen Units/Projektdateien ausgelesen würden, wäre das auch kein Problem
Aber ohne die Datei "qualifiziert" zu parsen, ist es nahezu unmöglich auch nur die Uses-Abschnitte in einer Datei sicher zu finden.
[add]
CreateFile zu hooken bring jetzt in "meinem" Fall nicht viel,
da ich so zwar die Reinfolge der Dateien bekomm, wie sie geöffnet werden, aber eine "optimale" Reinfolge läßt sich dann dennoch nicht bestimmen, da man ja immernoch nicht weiß wer wann was aufruft.
Wenn die Dateien komplett geparst sind, könnte man eventuell sogar bestimmen ob eine Datei wirklich benötigt wird ... man müßte ja theoretisch dann nur die geparsten Dateibäume durchgehen und schauen was von wo verwendet wird.
also im Prinzip muß man nur das nachmachen, was der COmpiler auch macht ... wobei es dann natürlich viel schöner wäre, wenn man dafür den Compiler direkt ansprechen könnte