Ich versuche, eine C-Anwendung zu migrieren, an der ich gearbeitet habe, um Rake-Insead von GNU Make zu verwenden. Der Dateibaum ist etwas wie:
%Vor% Ich möchte jede Datei in einem separaten build
-Verzeichnis erstellen und die Abhängigkeiten jeder .c
-Datei entweder mit gcc
oder clang
in einem deps-Verzeichnis erzeugen.
Ich kann anscheinend keine Beispiele finden, wie man eine Rakefile schreibt, um ein C-Projekt zu kompilieren. Hat jemand einen Link oder einen Ratschlag, um mir beim Einstieg zu helfen?
BEARBEITEN: Ich habe ein temporäres Rakefile, das einige der Aufgaben erfüllt, die ich später ausführen möchte. Ich würde gerne feststellen, ob Clang installiert ist und clang oder gcc verwenden.
Hier ist mein aktuelles Rakefile Ссылка
Benutze Ceedling!
Es ist ein automatisierter Komponententest-Framework für C, aber es macht auch einen großartigen Job, einfach zu bauen. Sie sollten in der Lage sein, das zu bekommen, wonach Sie suchen, indem Sie eine YAML-Konfigurationsdatei bearbeiten, und Sie erhalten Rake-Aufgaben für den Out-of-the-Box-Aufbau. Natürlich können Sie auch eigene Rake-Aufgaben erstellen.
Als Bonus können Sie Mocks mit CMock und automatisierte Komponententests mit Unity erstellen.
Es ist super einfach von einem Juwel zu installieren:
> gem install ceedling
Wenn Sie versuchen, eine native Erweiterung zu generieren, so dass Sie eine Ruby-Schnittstelle zu C-Code kompilieren können, ist das ein anderes Problem, aber ich denke, was Sie suchen, ist die Verwendung von mkmf aus Rake. Während Sie ein Rakefile in die Rolle eines C-Projekts bringen könnten, wäre es eine Menge zusätzlicher Anstrengungen, die Tools wie mkmf für Sie bereits geleistet haben. Schau dir an: Ссылка
Im Grunde werden Sie nur die für mkmf benötigten Argumente übergeben und es wird ein Makefile für Sie erstellt und ausgeführt. Die Dokumentation hier sagt, es ist für den Aufbau von Erweiterungen, aber wenn Sie keinen Erweiterungscode schreiben, der irrelevant ist, und es wird nur Ihren Code wie ein rohe Makefile kompilieren würde.
Als Randnotiz: Wenn Sie nach einem dynamischeren make-Tool oder einem Tool zum dynamischen Generieren von Makefiles suchen, wäre CMake eine bessere Option, als einen hackish rake build zusammenzustellen.