Datei erstellen während Compiletime



  • Ich möchte gerne zur Compiletime, als wenn die Sourcen gebaut werden, eine Datei erzeugen. Diese Datei soll binäre Texturen oder Soundfiles enthalten. Es ist quasi eine Resourcefile. Ich möchte eine Datei haben in der alle meine Assets binär abgespeichert werden.

    Nun muss diese Datei, immer wenn ich compile, erzeugt werden. Was gibt es da für Wege? Ich habe was von constexpr gelesen, aber weiß nicht ob mir das was nutzt. Am liebsten wäre mir, wenn ich dem Compiler eine C++ Methode übergeben kann die er ausführt.

    Ich müsste während der Compiletime Verzeichnisse durchlaufen, sie binär lesen und einem Vector zuordnen. Am Ende soll der Vector, der in einem Struct ist, als binäre File gespeichert werden.

    Kann ich das irgendwie dem Compiler beibringen? Nutze aktuell gcc und cmake.



  • Das ist keine Aufgabe für den Compiler, sondern für das Build-System. In CMake macht man sowas z.B. mit add_custom_target und/oder add_custom_command ,
    wo dann z.B. ein selbstgeschriebenes Tool aufgerufen wird, das deine Ressourcendatei erzeugen kann und das z.B. in einem vorangegangenen Build-Schritt
    kompiliert wurde (über Target-Anhängigkeiten gesteuert).

    Eine kurze Suche hat diesen Artikel hier zutage gefördert, der mit nach groben Überfliegen brauchbar erscheint, falls du ein paar paar Beispiele benötigst,
    wie man solche externen Tools in ein CMake-Projekt einbindet:
    https://samthursfield.wordpress.com/2015/11/21/cmake-dependencies-between-targets-and-files-and-custom-commands/


Anmelden zum Antworten