Autor Beitrag
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19277
Erhaltene Danke: 1741

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 11.05.05 15:56 
Hallo!

Es gibt eine neue Version. Ich habe auch den Eröffnungspost komplett überarbeitet.
Screenshot:
Preview
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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 203
Erhaltene Danke: 18

Win > XP, Vista, 7; Android 2.1
C# > VS '08,'10; Delphi7
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 203
Erhaltene Danke: 18

Win > XP, Vista, 7; Android 2.1
C# > VS '08,'10; Delphi7
BeitragVerfasst: 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? :P
jaenicke Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19277
Erhaltene Danke: 1741

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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. :D

Genauer schaue ich mir das dann nachher nach den Delphi-Tagen an. ;-)
jaenicke Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19277
Erhaltene Danke: 1741

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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. :D

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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 203
Erhaltene Danke: 18

Win > XP, Vista, 7; Android 2.1
C# > VS '08,'10; Delphi7
BeitragVerfasst: Mo 20.09.10 09:26 
wäre echt super, freu mich schon :D
jaenicke Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19277
Erhaltene Danke: 1741

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 203
Erhaltene Danke: 18

Win > XP, Vista, 7; Android 2.1
C# > VS '08,'10; Delphi7
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19277
Erhaltene Danke: 1741

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 203
Erhaltene Danke: 18

Win > XP, Vista, 7; Android 2.1
C# > VS '08,'10; Delphi7
BeitragVerfasst: 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 :o

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
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Di 28.09.10 11:28 
Hallo user profile iconjaenicke, 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19277
Erhaltene Danke: 1741

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 491
Erhaltene Danke: 19

Windows 7x64
Delphi 7
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19277
Erhaltene Danke: 1741

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 20.11.10 10:22 
Hmm, stimmt. :gruebel:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 491
Erhaltene Danke: 19

Windows 7x64
Delphi 7
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19277
Erhaltene Danke: 1741

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 203
Erhaltene Danke: 18

Win > XP, Vista, 7; Android 2.1
C# > VS '08,'10; Delphi7
BeitragVerfasst: 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 :)

ausblenden volle Höhe C#-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:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
 private FileInfo[] GetFiles()
        {
            /* Überflüssig das richtige File zu suchen, einfach angeben lassen als parameter^^
            DirectoryInfo dir = new DirectoryInfo(config.BufferPath + "\\" + config.ProjectRep + "\\bpg");
            FileInfo[] bpgs = dir.GetFiles("*.bpg");
            string content = "";
            foreach (FileInfo bpg in bpgs)
                if (bpg.Name.Contains("AllFiles")) */

                    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();
                    /* die relativen Pfade anpassen. */
                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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 491
Erhaltene Danke: 19

Windows 7x64
Delphi 7
BeitragVerfasst: So 08.05.11 18:28 
Hi Sebastian,

bei mir ergibt ein Versuch einen Fehler:

ausblenden volle Höhe 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:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19277
Erhaltene Danke: 1741

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 08.05.11 18:41 
Ich habe die neue Version nie ohne Versionsangabe für den Compiler getestet. Gib einfach die Version explizit an. :-)
ausblenden Quelltext
1:
compileproject.exe -ver 7 -p Project1.dpr					
trm
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 491
Erhaltene Danke: 19

Windows 7x64
Delphi 7
BeitragVerfasst: So 08.05.11 19:02 
Es geht nicht darum, sondern um die Meldungen weiter unten:

ausblenden 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 ;)