Visual Studio Buildregel(custom build rules)



  • Hi,

    sitze gerade an einem Projekt, wo ich zwei verschiedene Typen von .cpp habe.
    Diese zwei verschiedenen Typen müssen unterschiedlich verarbeitet werden.

    Der eine soll direkt über den C++ compiler von VS, der andere muss vorher von
    einer anderen Applikation verarbeitet werden und danach erst von VS.

    Den unterschied von diesen zwei verschiedenen Klassen kann man entweder am Dateinamen oder am Inhalt (Schlüsselwort vorhanden) erkennen.

    Daher habe ich gedacht, dass ich sowas mit einer Buildregel in Visual Studio einrichten kann.

    Wäre sowas überhaupt möglich?
    Wie gesagt, ich habe diese zwei Merkmale (Dateiname und Schlüsselwort in der Datei)



  • Du hast die Möglichkeit in den Projekteinstellungen bei den BuildEvents ein PreBuildEvent einzurichten. Dort kannst du dann z.b. eine Batch Datei oder sonstiges starten.
    Mal angenommen du machst das via einer .bat Datei, dann musst du halt vorher irgendwie sicherstellen, dass Du nur die eine Art von Datei-Typ mit deiner externen Applikation erwischt. Das kann das VS nicht erledigen, da es afaik keinen Einfluss auf etwaige externe Vorgänge hat.

    Nicht elegant aber bestimmt machbar könnte es z.B. sein, eine .bat Datei zu schreiben, die alle deine .cxy Dateien ( halt die Dateien, die du noch bearbeiten willst ) aus deinem Projektverzeichnis in eine zusätzliches Verzeichnis kopiert, dann bearbeitest du alle Dateien mit deinem externen Programm und dann kopierst Du sie zurück.

    Nach dem ich mir das jetzt nochmal selber durchgelesen habe da oben ( mein Text ) ... das hört sich grottig an. Aber wäre zumindest schon mal ein Ansatz 😉



  • So eine ähnliche Idee hatte ich auch.

    Meine Umsetzung:
    Ich schreibe mir eine kleine Konsolenapplikation, die über die Buildregel bei jeder .cpp ausgeführt wird. Als Parameter bekommt sie die jeweilige Datei übergeben.
    Daraufhin öffnet die Applikation diese Datei überprüft und macht je nach Entscheidung -> führe XY aus.
    Um es genauer zu beschreiben, ich brauche das ganze für QT in Verbindung mit VS.
    Muss den MOC über bestimmte Dateien drüberlaufen lassen.

    Das nächste Problem ist:
    Der MOC, der diese speziellen Dateien als Input bekommen hat, erzeugt neue Dateien.
    Diese müsste ich in die aktuelle Projektmappe hinzufügen.
    Kann man das automatisieren? Bietet VS eine Schnittstelle um zur Laufzeit diese neuen Dateien in die Projektmappe zu klatschen.

    Gruß



  • wie waerst wenn du das ergebnis des compilates in einer alten version der solution hinzufuegst, und beim prebuild diese nur aktualisieren laesst - dann ist es automatisch in der aktuellen version in der solution

    so machen wir das ab und zu mit binaer dateien die als resourcen hinein gebaut werden muessen
    - alte binaer datei erstellen
    - hinzufuegen
    - in prebuild diese binaer datei aktualisieren
    - eigentliche solution bauen lassen

    feddich is


Anmelden zum Antworten