AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Alle Dateien "durchcompilieren" erzwingen, auch wenn sie nicht im Projekt sind

Alle Dateien "durchcompilieren" erzwingen, auch wenn sie nicht im Projekt sind

Ein Thema von Joachim S · begonnen am 13. Jul 2023 · letzter Beitrag vom 14. Jul 2023
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.590 Beiträge
 
Delphi 12 Athens
 
#1

AW: Alle Dateien "durchcompilieren" erzwingen, auch wenn sie nicht im Projekt sind

  Alt 14. Jul 2023, 09:45
Wenn man bei einer EXE auch diese {$LIBPREFIX}, {$LIBSUFFIX} und {$LIBVERSION} verwenden könnte,
oder das {$EXTENSION} mit mehr als 4 Zeichen (inkl. Punkt), dann wäre es doch zu geil, niwa?
Oder den Ausgabenamen komplett neu zuweisen könnte (geht, aber nicht schön), via IFDEF bzw. besser noch in den verschiedenen Projektoptionen......

Alternativ kann man es aber auch im AfterBuild-Script umbenennen/umkopieren ... nur wäre es schön, wenn dann in den "inzwischen config-abhängigen" Start-Parametern das mit der Host-Anwendung bei der EXE auch richtig funktionieren würde.



Ansonsten, finde ich gegenüber einem .\$(Platform)\$(Config) es eindimensional irgendwie angenehmer/übersichtlicher, wenn die verschieden Varianten direkt nebeneinander sind,
also .\$(Platform)_$(Config) bzw. .\_$(Platform)_$(Config) oder z.B. .\_Compiled\$(Platform)_$(Config)

Und es wäre super, wenn Delphi selber Variablen für seine Version und das GroupProjekt-Verzeichnis anbieten täte. (hier über Environment-Variablen im FinalBuilder für MSBUILD, bzw. einer Kopie in der Delphi-Registry gelöst, welche der FinalBuilder da reinschreibt)



GruppenProjekt mit massig BPLs, DLLs und einigen EXEn, wobei die Ausgabepfade zentral/global liegen.
%root%\_Compiled\%ver0%_$(Platform)_$(Config)_DCU
%root%\_Compiled\%ver0%_$(Platform)_$(Config)_DCP
%root%\_Compiled\%ver0%_$(Platform)_$(Config)_BPL <- FremdComponenten, die nicht jedesmal neu kompiliert werden
%root%\_Compiled\Run oder vielleicht %root%\_Run <- EXE, DLL und BPL, sowie Kopieen aus dem aktuell passenden _BPL und weiteren Dateien (z.B. 7z.exe) ... was der FinalBuilder erledigt
Und von _DCU und _DCP eine Backup-ZIP, nach dem Neukompilieren der Fremdkomponenten, um vor dem kurzen Kompilieren es zurückzusetzen. (alternativ mehrere _DCU und _DCP, für Fremd- und Eigen-Projekte ... aber ist hier halt historisch so, nur dass ich inzwischen noch das Backup mache, um vorher schnell ausmisten/zurücksetze zu können)
Hab die letzten Jahre hier aufgeräumt ... alle Verzeichnisse mit einem _ oder zwei __ am Anfang, werden von GIT ignoriert und lassen sich zum Aufräumen einfach löschen.

Seit _DCU und Co. auch noch die Versionsnummer der Delphi-IDE, bzw. genauer die PackageVersionsNummer enthalten, lassen sich unterschiedliche Delphis hier auch wieder gleichzeitig nutzen, ohne vorher mit dem FinalBuilder ...
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (14. Jul 2023 um 09:52 Uhr)
  Mit Zitat antworten Zitat
Joachim S

Registriert seit: 13. Jul 2023
5 Beiträge
 
#2

AW: Alle Dateien "durchcompilieren" erzwingen, auch wenn sie nicht im Projekt sind

  Alt 14. Jul 2023, 09:58
Pre-Build-Befehle...

Gerade unter Projekt-Optionen gesehen, dass es sowas gibt.

Ist das mein Freund? Kann ich da was Eigenes definieren?

Tschuldigung, wenn die Frage dumm ist. Ich befasse mich halt zum Ersten Mal näher damit

Gruß Jo

Nachtrag: OK, ich hab selbst gegoogelt. Offenbar kann man gültige Dos-Befehle eintragen. Das sollte doch mein Problem lösen. Ich probiere mal damit rum, und gebe Rückmeldung...

Geändert von Joachim S (14. Jul 2023 um 10:07 Uhr)
  Mit Zitat antworten Zitat
Joachim S

Registriert seit: 13. Jul 2023
5 Beiträge
 
#3

AW: Alle Dateien "durchcompilieren" erzwingen,gelöst...

  Alt 14. Jul 2023, 10:35
Danke an Alle fürs Mitgrübeln,

die Pre-Build-Ereignisse lösen das Problem.

einfach "del \\Blabla\MeinShareOrder\*.dcu" dort eingetragen, und es tut, was es soll.

Ein Teil der Probleme beruht offenbar auch darauf, dass die Uhren der Maschinen und meines Notebooks nicht synchron laufen.

Das vorherige Löschen der DCUs hilft jedenfalls immer.

Danke und Gruß an Alle.

Geändert von Joachim S (14. Jul 2023 um 10:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.590 Beiträge
 
Delphi 12 Athens
 
#4

AW: Alle Dateien "durchcompilieren" erzwingen, auch wenn sie nicht im Projekt sind

  Alt 14. Jul 2023, 10:55
Du mußt aufpassen, denn diese sind inzwischen auch config-abhängig.
Am Besten immer auf "Basis" umschalten, bevor du etwas machst.

Hier rufe ich dort aber bloß noch ein Batch (*.cmd) auf,
weil es irgendwie nervt, wenn man da bei über 100 Projekten etwas ändern muß.
Wie haben hier eine Projektgruppe mit vielen Projekten (DLL/BPL/EXE).
Und noch Eine mit den Fremdkomponenten.






mein PostBuildScript (Tipp: rechts, den kleinen Button, für das Edit-Fenster)
Code:
"$(root)\_BuildTools\dproj__compile_postbuild.cmd" "$(Config)" "$(Platform)" "$(OutputExt)" "$(InputDir)$(InputName)" "$(OutputDir)$(OutputName)"
$(InputDir)$(InputName) anstatt $(InputName) oder $(InputFileName) hat gewisse Gründe, vor allem wegen einige Bugs bezüglich der PackageVersion beim {$LIBSUFFIX AUTO} :wand:

Und %root% ist eime Umgebungsvariable
aus Tools > Optionen > IDE > Umgebungsvariablen , bzw. HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\22.0\En vironment Variables
oder eben auch aus [Win]-Taste + "Umgebungsvariablen"



und in die dproj__compile_postbuild.cmd einfach mal das rein
Code:
echo %*
exit 1
Dort drin dann z.B. den Eurekalog-PostProcess, die Signierung der Dateien und teilweise das Umkopieren.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (14. Jul 2023 um 11:08 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz