WoP kompilieren mit CMake in VS Code

In diesem Tutorial möchte ich dir zeigen, wie du World of Padman komplett oder Teile davon selbst kompilieren kannst, damit du Änderungen am Quellcode für eigene Modifikationen vornehmen oder uns bei der Behebung von Fehlern direkt unterstützen kannst. Dabei wird einiges an Software benötigt, die du jedoch kostenlos im Internet herunterladen kannst. Sicherlich gibt es auch teilweise gute Alternativen zu den von mir hier vorgeschlagenen und verwendeten Programmen. Da dieses Tutorial aber eben auch für Anfänger geeignet sein soll, die vielleicht zuvor noch nie WoP selbst kompiliert haben und sich mit passenden Programmen noch nicht auskennen, treffe ich hier eine Auswahl, die gut für mich funktioniert hat. Darüber hinaus beschränke ich mich hier auf die Installation und Einrichtung der notwendigen Komponenten unter Windows. Ich fange übrigens so ziemlich bei Null an, du kannst also gerne die Abschnitte überspringen, die dir schon bekannt vorkommen.

GitHub und GitHub Desktop

Der aktuelle Stand des Quellcodes von World of Padman befindet sich im worldofpadman-Repository auf GitHub. GitHub ist ein netzbasierter Dienst zur Versionsverwaltung, der auf dem Versionsverwaltungssystem Git aufbaut und im Basis-Plan kostenlos ist. Es ist zwar nicht unbedingt eine Voraussetzung für dieses Tutorial, willst du uns jedoch direkt unterstützen und uns deine Code-Änderungen wiederum zur Verfügung stellen, empfehle ich dir, auf GitHub einen Account zu erstellen und die weiteren Schritte dieses Abschnitts durchzuführen. Du könntest auch komplett ohne GitHub auskommen, in dem du unseren Quellcode über den grünen Code-Button oben rechts im Repository auf GitHub z.B. direkt als ZIP-Archiv herunterlädst, empfehlen will ich das aber nicht, da dir dann eine nützliche Versionierungsverwaltung fehlt. Also, nachdem du dir einen Account erstellt hast, kannst du unser worldofpadman-Repository einfach forken. Klicke dazu oben rechts, unterhalb deines Nutzericons, auf „Fork“ und du erstellst somit quasi eine Kopie des Repositories direkt in deinem Account, mit der du dann weiterarbeiten kannst.

worldofpadman Repository auf Github

worldofpadman Repository auf Github

Falls Befehlseingaben in eine Console jetzt nicht so dein Ding sind, brauchst du als nächstes vielleicht eine grafische Benutzeroberfläche für Git, wie z.B. GitHub Desktop, um zukünftig problemlos den Entwicklungsstand zwischen dem lokalen Repository auf deinem Computer (welches wir noch nicht angelegt haben) und dem Repository in deinem GitHub-Account synchronisieren zu können. Lade es dir am besten direkt von der Webseite herunter und folge den Anweisungen bei der Installation. Wenn du nach der Eingabe deiner Account-Daten für GitHub gefragt wirst, kannst du dem ruhig folge leisten. GitHub Desktop benötigt deinen Zugangsdaten für die Anmeldung und Authentifizierung auf GitHub. Als nächstes müsste ein „Let’s get started!“ Dialog angezeigt werden, wo du direkt das von dir geforkte worldofpadman-Repository unter „Your repositories“ (deinnutzername/worldofpadman) auswählen kannst. Nachdem du es ausgewählt hast, klicke auf „Clone deinnutzername/worldofpadman“ ganz unten.

GitHub Desktop - Let's get started!

GitHub Desktop – Let’s get started!

Ein weiterer Dialog erscheint, in dem du den lokalen Speicherort auf deinem Computer angeben kannst. Ich empfehle dir hier einen Pfad ohne irgendwelche Leerzeichen anzugeben, da das bei mir im Nachhinein Probleme verursacht hat. Bestätige mit „Clone“.

GitHub Desktop - Ein Repository klonen

GitHub Desktop – Ein Repository klonen

Nach Abschluss des Vorgangs wirst du noch gefragt, wie du den Fork zukünftig nutzen willst: „How are you planning to use this fork?“ Falls du uns direkt unterstützen möchtest, wähle „To contribute to the parent project“. Falls du erst einmal für dich allein herum basteln möchtest, wähle „For my own purposes“. Ich empfehle dir die zweite Variante, denn deine Codeänderungen kannst du uns immer noch mittels „pull request“ im Nachhinein zukommen lassen.

Der Quellcode von World of Padman befindet sich jetzt also lokal auf deinem Rechner und du kannst mit deinen Anpassungen loslegen. Für die weitere Verwendung von GitHub Desktop, solltest du dir im Internet zusätzlich Tutorials suchen, da es in diesem Tutorial ja eigentlich ums Kompilieren von World of Padman gehen soll und nicht so sehr um GitHub Desktop.

Visual Studio Code und Git

Visual Studio Code (VS Code) ist ein kostenloser Quelltexteditor, mit dem du direkt am Quelltext von World of Padman arbeiten kannst. Es sollte übrigens nicht mit Visual Studio verwechselt werden. Natürlich gehen auch andere Editoren, wer es ganz simpel mag z.B. NotePad++, aber wir wollen World of Padman ja zukünftig direkt aus VS Code heraus kompilieren. Ein weiterer Vorteil ist, das VS Code mit Arbeitsumgebungen (Workspace) arbeitet und Bearbeitungszustand, Reihenfolge der geöffneten Dateien und deren Zeilenposition abspeichert. Du bist also beim Start von VS Code sofort wieder an der Stelle, wo du zuvor aufgehört hast. Eine weitere Stärke sind die vielen verfügbaren Plugins, von denen wir uns gleich einige zunutze machen werden.

Zunächst musst du VS Code erst einmal installieren. Starte dazu den Installer und folge den Anweisungen. Im Dialog sollte im Verlauf bei „Zusätzliche Aufgaben auswählen“ auf jeden Fall die Option „Zu PATH hinzufügen (nach dem Neustart verfügbar)“ ausgewählt werden. Nach dem Start werden gleich ein paar Popups angezeigt. Eines davon ermöglicht die Installation eines Sprachpakets für Deutsch, sofern man Englisch nicht so gut kann. Danach können ein paar Basiseinstellungen vorgenommen werden, zu denen ich keine konkreten Empfehlungen für dich habe.

Microsoft Visual Studio Code - Setup

Microsoft Visual Studio Code – Setup

Ist die Installation abgeschlossen, kannst du im Hauptmenü, über „Datei“ und „Ordner öffnen“, zu deinem lokalen worldofpadman-Repository navigieren und den entsprechenden Ordner direkt auswählen. Danach sollte dir VS Code alle Dateien des worldofpadman-Ordners anzeigen. Visual Studio Code bietet übrigens auch eine integrierte Quellcodeverwaltung, welche über das Symbol unter der Lupe aufgerufen werden kann, zeigt dort jedoch an, dass der aktuell geöffnete Ordner kein Git-Repository ist. Das liegt daran, dass VS Code das Versionsverwaltungssystem Git selbst nicht mitbringt. Wer jetzt also keine Lust auf GitHub Desktop hatte, muss sich nun Git direkt installieren, um VS Code fit für die Versionsverwaltung zu machen.

Microsoft Visual Studio Code - Willkommen

Microsoft Visual Studio Code – Willkommen

Gehe also bei Bedarf zur Git-Webseite und lade dir dort die aktuelle Version herunter. Starte den Installer und folge den Anweisungen. Im Verlauf wird im Dialog „Choosing the default editor used by Git“ angezeigt, kannst du dort jetzt „Use Visual Studio Code as Git’s default editor“ auswählen. Im folgenden können noch sehr viele weitere Einstellungen vorgenommen werden, wobei du hier ruhig die jeweilige Vorauswahl so belassen kannst, wenn du es nicht besser weißt. Ist die Installation abgeschlossen, müsstest du spätestens jetzt VS Code neu starten, damit Git erkannt wird.

Git Setup - Auswahl des Standardeditors

Git Setup – Auswahl des Standardeditors

Zurück zu VS Code, denn hier benötigen wir noch einige Erweiterungen. Im Erweiteruns-Tab, ganz unten unterhalb der Lupe, gibt es eine Suche. Gib dort „C++“ ein, worauf hin eine ganze Menge Erweiterungen aufgelistet werden. Suche die Erweiterung „C++ IntelliSense, debugging, and code browsing“, die direkt von Microsoft kommt und klicke auf installieren. Die zweite Erweiterung, die du brauchst und nach der du suchen musst, heißt „CMake Tools“, ebenfalls von Microsoft. Installiere sie. Ist das erledigt erscheint unten rechts ein Popup, indem du gefragt wirst, ob du die CMake für ‚worldofpadman‘ konfigurieren möchtest, was du gerne mit „Yes“ bestätigen kannst.

VS Code Plugin - CMake Tools

VS Code Plugin – CMake Tools

Visual Studio Build Tools und Kompilieren

Ganz unten in der blauen Statusleiste von VS Code steht neben dem Branch „main“ in dem du dich zunächst befinden solltest nun auch „CMake: [Debug] Ready“ und „No Kit Selected“. Letzteres bedeutet, dass dir der eigentliche Compiler noch fehlt bzw. VS Code keinen passenden Compiler für den WoP-Quellcode finden kann. Hier kommen jetzt die Visual Studio Build Tools für Visual Studio ins Spiel, die wir noch separat herunterladen müssen. Wir wollen jetzt hier nicht die aktuelle Version Visual Studio installieren, sondern ausschließlich die Build Tools. Auf der Download-Seite findest du daher weiter unten, im Bereich „Tools für Visual Studio 2019“ den direkten Link zu den Build Tools für Visual Studio 2019. Heruntergeladen wird erst einmal nur ein Online-Installer, in dem entsprechende Komponenten ausgewählt werden müssen. Hier reicht es gleich die erste Option „Desktopentwicklung mit C++“ auszuwählen und zu installieren. Der Download und die Installation benötigen jetzt voraussichtlich etwas länger, da es sich um einige GByte handelt.

Visual Studio Installer - Build Tools

Visual Studio Installer – Build Tools

Nach Abschluss der Installation, geht es wieder zurück zu Visual Studio Code. Unten in der blauen Statusleiste müsstest du nach dem Betreten deines Repositories neben „CMake: [Debug]: Ready“, wo vorher noch „No Kit Selected“ stand, nun ein passendes Kit auszusuchen können indem du darauf klickst. Wähle hier bitte „Visual Studio Build Tools 2019 Release – x86_amd64“ aus. Abschließend kannst du testweise den Kompiliervorgang starten und WoP das erste mal selbst kompilieren. Dazu kannst du unten in der blauen Statusleiste auf „Build“ kicken. Es werden jetzt alle Bibliotheken und Binaries sowie die QVMs für alle drei Betriebssysteme, also Windows, Linux und MacOS vollständig erstellt. Diese befinden sich dann im Unterverzeichnis „build“ deines worldofpadman-Repositories, sowie in den darin enthaltenen „wop“ und „vm“ Unterverzeichnissen.

Möchtest du nicht immer alle Dateien erstellen, sondern vielleicht nur die QVM für das Menü (UI), so kannst du auf „[ALL_BUILD]“ klicken und in der Liste „qvm_ui“ auswählen. Es ist übrigens ganz normal, dass dir eine ganze Menge Warnungen beim Kompiliervorgang angezeigt werden. Solange in der Konsole nichts mit „Fatal Error“ steht und dir am Ende „Build finished with exit code 0“ angezeigt wird, ist der Vorgang erfolgreich durchgelaufen. Falls dir mal irgendetwas kaputtgehen sollte, kannst du das komplette Verzeichnis „build“ einfach löschen und Visual Studio Code wird dir die Build-Dateien wieder automatisch neu erstellen.