Autor |
Beitrag |
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 11.05.05 15:56
Hallo!
Es gibt eine neue Version. Ich habe auch den Eröffnungspost komplett überarbeitet.
Screenshot:
Download:
Neue Version 2.0 (zip, 154.15 KB)
Ich hab mich immer geärgert, dass ich in den Batch-Dateien, die meine größeren Projekte automatisch in wenigen Minuten erstellen immer die Pfade zu den ganzen Komponenten angegeben werden mussten, weil sich der Kommandozeilencompiler von Delphi diese nicht aus der Registry holt. Bei neuen Delphiversionen gibt es zwar via msbuild Kommandozeilenmöglichkeiten, aber da meine Open Source Projekte z.B. automatisiert mit verschiedenen auch älteren Delphiversionen getestet werden, ist es praktischer einen Aufruf für alle Versionen zu haben.
Das Programm funktioniert mit dem Win32-Compiler von Delphi 2.0 bis XE2.
Das Projekt steht unter den Bedingungen der GPL zur Verfügung, diese ist als Lizenz auch beigefügt.
Mögliche Parameter:
Quelltext 1: 2: 3: 4:
| -ver 2,3,4,5,6,7,2005,2006,2007,2009,2010,XE,XE2,highest // Compilerversion bestimmen (bei mehreren Delphiversionen an Bord) -directives DEBUG;NOERROR // Compilerdirektiven angeben -p MyProject.dpr // Projekt angeben -debug // nach dem Kompilieren anhalten um die Ausgabe zu sehen |
Viel Spaß damit,
Sebastian
Einloggen, um Attachments anzusehen!
Zuletzt bearbeitet von jaenicke am Di 11.10.11 06:32, insgesamt 4-mal bearbeitet
Für diesen Beitrag haben gedankt: Boldar, DonManfred, Heimo T., Hidden, Horschdware, Necaremus, trm
|
|
Necaremus
      
Beiträge: 203
Erhaltene Danke: 18
Win > XP, Vista, 7; Android 2.1
C# > VS '08,'10; Delphi7
|
Verfasst: Mi 25.08.10 14:47
eine kleine Frage hätte ich:
welche Optionen kann ich alle per -o alle angeben? X_x
kenn mich leider mit dem net so gut aus^^
|
|
Necaremus
      
Beiträge: 203
Erhaltene Danke: 18
Win > XP, Vista, 7; Android 2.1
C# > VS '08,'10; Delphi7
|
Verfasst: Do 16.09.10 16:49
kleiner bug: dein prog kommt nicht mit leerzeichen im pfad zurecht...
du progst nicht zufällig für oracle? 
|
|
jaenicke 
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 18.09.10 07:56
Das Problem sind nicht direkt die Leerzeichen, sondern dass ich seinerzeit die Suchpfade nicht ordentlich genug untersucht habe. Dadurch kommen dann Anführungszeichen ohne entsprechend beginnende und leere Anführungszeichen und so was hinein.
Heißt: Wenn ich das heute geschrieben hätte, wäre mir sowas nicht passiert.
Genauer schaue ich mir das dann nachher nach den Delphi-Tagen an. 
|
|
jaenicke 
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 20.09.10 06:23
Kurze Ankündigung: Aus dem alten Code lässt sich nicht viel machen (sprich: war schlecht geschrieben), er ruhe in Frieden.
Ich schreibe eine neue objektorientierte Version, bin da auch schon fast fertig. Ich denke die wird es morgen Abend dann geben. Außerdem unterstützt die dann auch alle Versionen von Delphi und unterstützt Live-Ausgaben beim Kompilierprozess.
|
|
Necaremus
      
Beiträge: 203
Erhaltene Danke: 18
Win > XP, Vista, 7; Android 2.1
C# > VS '08,'10; Delphi7
|
Verfasst: Mo 20.09.10 09:26
wäre echt super, freu mich schon 
|
|
jaenicke 
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 22.09.10 06:24
Ich hänge mal eine kleine Vorschauversion an, die kann noch nicht viel, sollte aber korrekt mit den Pfaden umgehen. Das muss ich noch richtig überprüfen.
Bis jetzt kennt die Version nur zwei Parameter und deren Implementierung ist noch provisorisch, damit ich es hier erst einmal reinstellen kann. Beispiel:
Quelltext 1:
| -p "xy\xyz.dpr" -ver 2006 |
Die Projektdatei und die Compilerversion müssen im Moment noch immer angegeben werden.
In den nächsten Tagen implementiere ich auch noch die restlichen Sachen.
Einloggen, um Attachments anzusehen!
|
|
Necaremus
      
Beiträge: 203
Erhaltene Danke: 18
Win > XP, Vista, 7; Android 2.1
C# > VS '08,'10; Delphi7
|
Verfasst: Di 28.09.10 09:45
kannst du dem ding auch ne log funktion einbauen? wäre echt hilfreich^^
des weiteren: irgendwie klappt das bei mir nicht.
wenn ich das mit compileprojekt.exe -p "x\y\z.dpg" -ver 7 aufrufe, kommt bei mir dauernd:
Zitat: | z.bpg(N) Fehler: Ungültiges Zeichen in Eingabedatei: '\' ($5C) |
0<N<106
wobei N doppelt vorkommen kann und die fehlermeldung ab und an leicht abweicht (daher wäre nen log vlt sinnvoll^^)
liegt es daran, dass es ein .dpg statt .dpr file ist? oder liegt es an -ver 7? oo"
|
|
jaenicke 
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 28.09.10 10:11
Ich habe keine Ahnung ob man Projektgruppen so an den Compiler übergeben kann...
Hast du den Aufruf denn schon einmal manuell versucht?
Wegen einem Log: Es sollten alle Compilerausgaben 1:1 ausgegeben werden.
|
|
Necaremus
      
Beiträge: 203
Erhaltene Danke: 18
Win > XP, Vista, 7; Android 2.1
C# > VS '08,'10; Delphi7
|
Verfasst: Di 28.09.10 10:51
ah sry, ich meinte mit log, dass er das alles direkt in ne datei abspeichert.
find sowas sehr handlich
und öhm - hab es über ne batch datei gestartet. allerdings habe ich eine kleine frage (teste die gleichmal) reicht es wenn ich meinen ordner nach allen .dpr files durchsuche und dann für jede 1x dein programm starte? hab nicht sooo viel ahnung hinter den wirklichen mechanismen dahinter, da ich ja noch relativ neu beim proggen bin und kaum mit delphi (wobei der mechanismus an sich sich nicht großartig zu c# unterscheidet wird, oder?^^), daher sry, wenn ich "doofe" fragen stelle
habe gerade herausgefunden, dass die probs, die ich mit dem prog bisher hatte hauptsächlich an mir lagen (die projekte brauchen vorinstallierte komponenten bei delphi ohne die der compileprojekt.exe bzw delphi selbst die src nicht richtig darstellen kann (diese tnt controls)
bei nem neuen projekt funktioniert das ding ohne probs^^
ich bräuchte daher eigentlich nur noch eine funktion wie -d "path"(d für destination), damit ich die dest selbst angeben kann
/edit: perfekt wäre natürlich wann man dem ding auch .dpg übergeben könnte 
|
|
Dude566
      
Beiträge: 1592
Erhaltene Danke: 79
W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
|
Verfasst: Di 28.09.10 11:28
Hallo jaenicke, du hattest mal in einem Thread (finde ihn gerade nicht) erwähnt, dass du Scripte verwendest um die unnötigen Delphi Dateien aus dem Projektordner vor der Veröffentlichung zu löschen. Wäre schon wenn du diese(s) mal veröffentlichen könntest, ist nervig immer alles einzeln rauszusuchen.
_________________ Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
|
|
jaenicke 
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 28.09.10 19:14
Ja, wenn ich dann dazu komme...
Ich habe ja ein kleines Build-Management-System erstellt, das auch Plugins für das Hochladen auf meine Homepage, ins Forum usw. beinhaltet. Das ganze ist aber zu stark auf mich angepasst, sonst hätte ich das längst veröffentlicht.
Das genannte Skript ist aber sehr kurz und hatte ich auch schon gepostet. Das ist aber wirklich zum Säubern vor der Veröffentlichung gedacht, die History sollte normalerweise ja nicht unbedingt weg.
Zurück zum Thema:
Ich schau mit das mit den .dpg Dateien usw. einmal an... Bin ja eh noch nicht fertig mit dem Tool...
|
|
trm
      
Beiträge: 491
Erhaltene Danke: 19
Windows 7x64
Delphi 7
|
Verfasst: Sa 20.11.10 04:15
Huhu,
kurz eine Frage zum zip-Archiv.
Da sind 2x die gleichen Dateinamen enthalten.
Unter Windows wird dadurch einmal eine beim entpacken (nicht) ersetzt.
Warum machst Du so was?
_________________ In Erfurt gibt es eine Pension, in der es gemütlich ist, Google einfach nach Pension Fiege
|
|
jaenicke 
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 20.11.10 10:22
Hmm, stimmt.
Ja, was hatte ich gemacht? Ich hatte die neue Version der Exe einfach auf das alte Zip gezogen. Normalerweise wird die dann ja ersetzt...
Ich setze mich mal an die neue Version nochmal und poste dann gleich die.
|
|
trm
      
Beiträge: 491
Erhaltene Danke: 19
Windows 7x64
Delphi 7
|
Verfasst: Sa 20.11.10 12:41
Huhu
Nur nochmal der Interesse halber.
Unter welchem Betriebssystem und mit welchem Packprogramm hast Du das Archiv "re-gepackt", so dass 2 gleiche Dateinamen drin waren?
_________________ In Erfurt gibt es eine Pension, in der es gemütlich ist, Google einfach nach Pension Fiege
|
|
jaenicke 
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 22.11.10 02:54
Das war vermutlich 7-Zip oder ZipGenius, keine Ahnung, ist 5 Jahre her.
Es gibt eine neue Version (erst einmal zusätzlich). Diese kompiliert bisher ausschließlich Delphiprojekte. Das ganze ist jetzt in eine Klasse gekapselt, damit sich das auch als Unit einbinden lässt, falls gewünscht.
Zudem erkennt das Tool jetzt, ob ein Fehler aufgetreten ist. Das wird bisher nicht weiter analysiert, aber entsprechende Sachen wie ExitCode für die %ERRORLEVEL% Abfrage usw. kommt alles noch.
Für diesen Beitrag haben gedankt: trm
|
|
Necaremus
      
Beiträge: 203
Erhaltene Danke: 18
Win > XP, Vista, 7; Android 2.1
C# > VS '08,'10; Delphi7
|
Verfasst: Mo 22.11.10 07:11
wegen dpg: ich hab es etwas unschön gelöst bei mir, aber vlt hilft es dir trotzdem:
ist allerdings c#, hoffe stört nicht weiter
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44:
| private FileInfo[] GetFiles() { content = GetContent(bpg); return GetFiles(content); } private FileInfo[] GetFiles(string content) { List<FileInfo> files = new List<FileInfo>(); string[] s1 = content.Split(new string[] { "$(DCC)" }, StringSplitOptions.RemoveEmptyEntries); foreach (string s in s1) { string[] s2 = s.Split(new string[] { ".dll: " }, StringSplitOptions.RemoveEmptyEntries); string file = ""; if (s2.Length == 2) file = s2[1].Replace("..\\", config.BufferPath + "\\" + config.ProjectRep + "\\").Trim(); else { s2 = s.Split(new string[] { ".exe: " }, StringSplitOptions.RemoveEmptyEntries); if (s2.Length == 2) file = s2[1].Replace("..\\", config.BufferPath + "\\" + config.ProjectRep + "\\").Trim(); } if (!String.IsNullOrEmpty(file)) files.Add(new FileInfo(file)); }
return files.ToArray(); }
private string GetContent(FileInfo bpg) { string content = ""; using (StreamReader reader = new StreamReader(bpg.FullName)) { content = reader.ReadToEnd(); } return content; } |
_________________ [Master of dangerous sciolism]. "Never assume malice when stupidity will suffice." Hanlon's Razor
-= Some people see the glass half full. Others see it half empty. I see a glass that's twice as big as it needs to be. =-
|
|
trm
      
Beiträge: 491
Erhaltene Danke: 19
Windows 7x64
Delphi 7
|
Verfasst: So 08.05.11 18:28
Hi Sebastian,
bei mir ergibt ein Versuch einen Fehler:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57:
| D:\[..gekürzt..]\compileproject.exe -p Project1.dpr
******************************************************************************** * * * * * * * * * Delphi Batch Compiler * * * * * * * * * * * * * * * * * * 2.0 * * * * * * * * * * * * * * * * Copyright (c) 2005 - 2010 by Sebastian Jänicke * * * * * * * ********************************************************************************
Compiling: D:\[..gekürzt..]\Project1.dpr
Delphi version specified: Delphi XE2
Delphi version specified: Delphi XE
Delphi version specified: Delphi 2010
Delphi version specified: Delphi 2009
Delphi version specified: Delphi 2007
Delphi version specified: Delphi 2006
Delphi version specified: Delphi 2005
Delphi version specified: Delphi 8
Delphi version specified: Delphi 7
No Delphi version specified, found as highest version: Delphi 7
Borland Delphi Version 15.0 Copyright (c) 1983,2002 Borland Software Corporation Unit1.pas(13179) Fehler: Undefinierter Bezeichner: 'UseCustomBinCode' Unit1.pas(13184) Fehler: Undefinierter Bezeichner: 'UseCustomBinCode' Unit1.pas(13189) Fehler: Undefinierter Bezeichner: 'UseCustomBinCode' Unit1.pas(13254) Fehler: Undefinierter Bezeichner: 'UseCustomBinCode' Unit1.pas(13255) Fehler: Undefinierter Bezeichner: 'CustomBinCode' Unit1.pas(13256) Fehler: Undefinierter Bezeichner: 'UseCustomPaperCode'Unit1.pas (13257) Fehler: Undefinierter Bezeichner: 'CustomPaperCode' Unit1.pas(13320) Fehler: Undefinierter Bezeichner: 'UseCustomBinCode' Unit1.pas(13321) Fehler: Undefinierter Bezeichner: 'CustomBinCode' Unit1.pas(13325) Fehler: Undefinierter Bezeichner: 'UseCustomPaperCode' Unit1.pas(13326) Fehler: Undefinierter Bezeichner: 'CustomPaperCode' Project1.dpr(13) Fatal: Verwendete Unit 'Unit1.pas' kann nicht compiliert werden
Build was not successful |
Die Fehler sind Quickreport-spezifisch. Ich habe Quickreport im Suchpfad, das habe ich geprüft.
Was kann ich tun?
_________________ In Erfurt gibt es eine Pension, in der es gemütlich ist, Google einfach nach Pension Fiege
|
|
jaenicke 
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 08.05.11 18:41
|
|
trm
      
Beiträge: 491
Erhaltene Danke: 19
Windows 7x64
Delphi 7
|
Verfasst: So 08.05.11 19:02
Es geht nicht darum, sondern um die Meldungen weiter unten:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| D:\[..]>compileproject.exe -ver 7 -p Project1.dpr
******************************************************************************** * * * * * * * * * Delphi Batch Compiler * * * * * * * * * * * * * * * * * * 2.0 * * * * * * * * * * * * * * * * Copyright (c) 2005 - 2010 by Sebastian Jänicke * * * * * * * ********************************************************************************
Compiling: D:\[..]\Project1.dpr
Delphi version specified: Delphi 7
Borland Delphi Version 15.0 Copyright (c) 1983,2002 Borland Software Corporation Unit1.pas(13179) Fehler: Undefinierter Bezeichner: 'UseCustomBinCode' Unit1.pas(13184) Fehler: Undefinierter Bezeichner: 'UseCustomBinCode' Unit1.pas(13189) Fehler: Undefinierter Bezeichner: 'UseCustomBinCode' Unit1.pas(13254) Fehler: Undefinierter Bezeichner: 'UseCustomBinCode' Unit1.pas(13255) Fehler: Undefinierter Bezeichner: 'CustomBinCode' Unit1.pas(13256) Fehler: Undefinierter Bezeichner: 'UseCustomPaperCode'Unit1.pas (13257) Fehler: Undefinierter Bezeichner: 'CustomPaperCode' Unit1.pas(13320) Fehler: Undefinierter Bezeichner: 'UseCustomBinCode' Unit1.pas(13321) Fehler: Undefinierter Bezeichner: 'CustomBinCode' Unit1.pas(13325) Fehler: Undefinierter Bezeichner: 'UseCustomPaperCode' Unit1.pas(13326) Fehler: Undefinierter Bezeichner: 'CustomPaperCode' Project1.dpr(13) Fatal: Verwendete Unit 'Unit1.pas' kann nicht compiliert werden
Build was not successful |
_________________ In Erfurt gibt es eine Pension, in der es gemütlich ist, Google einfach nach Pension Fiege
|
|
|