Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#13

Re: Über Kommandozeile die Abhängigkeiten von Units auslesen

  Alt 19. Jun 2009, 10:24
Zitat von Tyrael Y.:
Nur rein Interresse halber....wozu Braucht man so eine Auflistung?
Ganz einfach: QA (Quality Assurance). Unter diesen Oberbegriff fallen z.B.

- statische Codeanalyse zur Fehlersuche
- Dokumentation
- Statistiken
- Versions- und Konfigurationskontrolle
- Continuous Integration / Buildskripte
- Abhängigkeitsanalyse

Delphi macht QA etwas schwer, da die Metadaten über die Projekte nicht über eine Standard-API ausserhalb von Delphi verfügbar sind. Innerhalb von Delphi kann man mit der OTA (Open Tools API) einige Informationen erhalten. Tools auf Kommandozeilenebene haben es schwer, da man ja z.B. noch nicht einmal die effektiven Source- und Libraryverzeichnisse auf einfache Weise ermitteln kann.

Für kleine Projekte, deren Unitabhängigkeiten der Entwickler noch leicht überschauen kann, braucht man so etwas natürlich nicht (da hat man halt Unit1.pas und Unit2.pas - bei Projekten, die sich noch in der Entwicklung durch häufiges Refactoring ändern und an denen viele Entwickler (also mehr als einer) arbeiten, ist Qualitätssicherung schon aufwendiger.

Man könnte sich schnell mit einem TRegEx statische Codeanalysetools selber schreiben, um z.B. leere except .. end Blöcke zu finden. Dazu braucht man aber die Verzeichnisse, in denen der Sourcecode liegt. Schon diese Information läßt sich nicht dem Compiler entlocken. Mit MSBUILD gibt es eine Möglichkeit, eine komplette Liste der Suchverzeichnisse zu erhalten - nur hilft dies nicht, wenn in der DPR die Units über relative Pfade eingebunden werden.

Mein Fazit: es wäre für Toolentwickler sehr hilfreich, wenn der Delphi Compiler eine vollständige Liste der verwendeten Units erzeugen könnte, mit Pfadangaben. Dann würde es vermutlich viel mehr Tools geben, insbesondere auch freie / kostenlose Tools, da der (sicher immens hohe) Aufwand für die Abhängigkeitsermittlung entfiele.

Cheers,
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat