AccessMake

Letzte Änderung am 30. September 2018 by Christoph Jüngling

Es ist vollbracht.

Auch wenn das Projekt immer noch AccessMake heißt, ist es inzwischen doch reichlich unabhängig von Access geworden. Wer mag, sollte es also auch für andere Projekte in Erwägung ziehen. Die vorläufig letzte Version kann hier heruntergeladen werden, der Einsatz erfolgt natürlich auf eigene Gefahr: https://gitlab.com/juengling/AccessMake/tags/v0.8.2

Das Setup installiert amake.exe in das Windows-Verzeichnis. Dadurch spare ich es mir, den PATH zu manipulieren. Außerdem ist ein eigenes Verzeichnis nur für eine Datei irgendwie sinnlos. Das kann ich aber später durchaus nochmal ändern. Wem das wichtig ist, der mag gerne ein Issue eintragen — und mir vielleicht zusätzlich einen Tipp geben, wie ich die PATH-Anpassung bei Installation und Deinstallation unter InnoSetup mache. Oder gleich mittels Clone/Merge Request mithelfen, immerhin ist es ja Open Source :-)

Wie im Issue-Tracker ersichtlich ist, sind noch einige Punkte offen, die ich gelegentlich mal angehen werde. Eine kurze Einleitung findet ihr im Wiki des Projektes (allerdings für eine etwas ältere Version).

Anwendung

Zunächst brauchen wir eine Datei, in der die Anweisungen stehen, was geschehen soll. Wenn diese amakefile heißt und im aktuellen Verzeichnis liegt, wird sie von amake automatisch gefunden. Hier ein Beispiel für diese Datei, das ich im Rahmen eines Access-Projektes einsetze.

READ app\source\M_Globals.def USING Public +Const +APP_VERSION.*= +"([0-9.]*)"
WRITE setup\setup.iss USING #define +MyAppVersion +"([0-9.]*)"

READ hash USING ([0-9A-F]{7,})
WRITE setup\setup.iss USING #define +MyAppHash +"([0-9A-F]*)"
WRITE app\source\M_Globals.def USING Public +Const +APP_HASH.*= +"([0-9A-F]*)"

GET isodate
WRITE app\source\M_Globals.def USING Public +Const +APP_DATE.*= +"([0-9.-]*)"
WRITE setup\setup.iss USING #define +MyAppDate +"([0-9.-]*)"

Weiterhin benötigen wir noch ein paar Anweisungen, um den Buildprozess zu steuern, die z.B. in einer Windows-.cmd-Datei stehen können:

git rev-parse --short HEAD > hash
amake
msaccess /cmd OASIS#%cd%\app\myprogram.accdb
iscc %cd%\setup\setup.iss /Q

Wie schon mehrfach erwähnt nutze ich OASIS, um die Access-Objekte in Dateien zu exportieren. Diese werden dann per Git in die Quellcodeverwaltung übernommen. OASIS ist ein Access-Plugin und kann per Kommandozeile aus den von der Quellcodeverwaltung wieder bereitgestellten Dateien eine komplette Access-Datenbank aufbauen.

Wenn man diese beiden Dateien einmal richtig aufgebaut hat, flutscht das “Bauen” des fertigen Setups wie von selbst:

  • Die Versionsnummer der Applikation wird aus der globalen Konstanten APP_VERSION im Modul Globals ausgelesen
  • … und sodann in das Setup-Script in die Definition MyAppVersion geschrieben.
  • Der Git-Hash wird von Git in die Datei hash geschrieben
  • … anschließend ausgelesen
  • … und in die Definition MyAppHash im Setup-Script
  • … sowie in die globale Konstante APP_HASH Modul Globals geschrieben
  • Ferner wird das aktuelle Datum im ISO-Format ermittelt
  • … und wiederum in entsprechende Deklarationen im Setup-Script und Globals-Modul geschrieben
  • Danach baut Access mittels OASIS die .accdb (es ginge auch eine .accde) auf
  • … und InnoSetup verpackt das ganze zu einem Installationsprogramm

Update: Veralteten Link gekennzeichnet.

Ähnliche Artikel:

Schreibe einen Kommentar

Deine Email-Adresse wird nicht veröffentlicht.

10 − 9 =