Einzelnen Beitrag anzeigen

Rollo62

Registriert seit: 15. Mär 2007
3.901 Beiträge
 
Delphi 12 Athens
 
#12

AW: Zugriff auf Environmental-Variablen mit compiler directives (Pre-Compile-Script)

  Alt 29. Apr 2020, 18:16
Sowas naheliegendes "Const User = '$(MyVar)';" hatte ich schon probiert, geht leider nicht.
Was soll denn dabei herauskommen? Der User, der den Compiler angeworfen hat, oder der User, der das Programm gestartet hat?
Das war ja nur ein Beispiel aus einem FPC Dokument, wie man irgendwelche Werte da rausholt.
http://www.math.uni-leipzig.de/pool/...00000000000000

Zitat:
Write ('This program was compiled at ',{$I %TIME%});
Writeln (' on ',{$I %DATE%});
Writeln ('By ',User);
Writeln ('Compiler version : ',{$I %FPCVERSION%});
Writeln ('Target CPU : ',{$I %FPCTARGET%});

Zitat:
Zitat:
Solche Pre-Compiler Wünsche müsste doch fast jeder IDE-Nutzer haben.
Scheint nicht wirklich verbreitet zu sein. Vielleicht fehlt mir auch nur das Verständnis mangels eines konkreten Anwendungsfalls.
Mit einem richtigen PreCompiler oder PreCompile-Script wäre manches möglich.

Ein Beispiel s.u. von Delphi.Narium, um Version Info settings zu holen und auch für externe Setup-Tools zu setzen.

Ausserdem könnte ein solches Tool einen Versionszähler bauen der wirklich funktioniert.

Bei mehreren Platformen, Konfigurationen kommt bei der Version Info manchmal was Durcheinander.
Das könnte ein PreCompile-Script womöglich setzen und korrigieren.

Auch könnte ein PreCompile-Script vorhandene Konfigurations-Vorlagen mit in die Options und Includes einbinden, und zwar fehlerfrei.
Zum Beispiel nur die Versions-Nummer, die man bei mehreren Konfigurationen mehrfach setzen muss.
Das könnte ein Script womöglich einmalig, und dann für Alle gleich übernehmen.

Es könnte auch Testen ob noch Alle settings richtig sind, oder ob ein Permission-Schalter fehlt,
besser noch setzt er das fehlene gleich.

Es könnte das Signieren und die erforderlichen Key's und so weiter erzeugen, verwalten, setzen.

Ich meine die ganze Handarbeit in den Optionen könnte größtenteils automatisiert werden.

Ich weiss das Du die OptionSets benutzt, das ist auch OK, mir felt da aber das sichere Automatisieren und Konfigurieren von mehreren OptionSets.
Z.B. würde ich gerne OptionsSets für Features anlegen,
OptionSet-Camera : setzt alles Notwendige für Camera in Win/iOS/Android/...
OptionSet-Location: setzt alles Notwendige für Camera in Win/iOS/Android/...
OptionSet-Maps : setzt alles Notwendige für Camera in Win/iOS/Android/...
....

Diese OptionSets wären dann erstmal wiederverwendbar, ich mus mir mein neues Projekt aber von Hand zusammenklicken.

OptionSet-Maps käme s.o. auch schon an eine Grenze, weil zwei individuelle API-Keys (DEBUG/RELEASE) benötigt werden.

Sowas würde ich gerne in einer Projektvorlage unterbringen (mehr oder weniger eine komprimierte .dproj Vorlage), welche dann die ganze .dproj konfiguriert, und bei Bedarf auch Includes o.ä. anpassen kann.

Was ein solches System noch leisten könnte wäre die einfache Migration von einem Projekt zu einem anderen Kunden, indem alle Settings, Zertifikate, API-Keys, etc. umgeschaltet werden.

Von den gefühlt 500 Parameter ändern sich in der Praxis wohl nur 10-20, und genau die wären meine ideale Projekt-Vorlage.

Geändert von Rollo62 (29. Apr 2020 um 18:20 Uhr)
  Mit Zitat antworten Zitat