Build-Werkzeug: CMake 3.24 unterstĂĽtzt den Fortran-Compiler flang

Das neue CMake-Release ermöglicht auf einigen Plattformen den Einsatz von LLVM flang und erhält eine Reihe nützlicher neuer Befehle für die Kommandozeile.

In Pocket speichern vorlesen Druckansicht

(Bild: Blackboard/Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Silke Hahn
Inhaltsverzeichnis

Kitware hat Version 3.24 von CMake freigegeben, einem quelloffenen Build-Werkzeug zum Testen und Erstellen von Installationspaketen, das mit zahlreichen Entwicklungsumgebungen und Compilern plattformunabhängig zusammenarbeitet. CMake ist am bekanntesten in der C/C++-Entwicklung, lässt sich aber auch für Builds anderer Programmiersprachen einsetzen, wie das Entwicklungsteam betont. So bietet das neue Release Unterstützung für den Fortran-Compiler flang, der Teil der Compilersammlung LLVM ist – zumindest auf einigen Plattformen sollte die Compiler-ID LLVMFlang ab sofort funktionieren.

Im Compilerbereich deckt die ADSP-Unterstützung nun neben CCES- auch VDSP++-Installationen ab: CMake 3.24 enthält eine dedizierte ADSP-Plattform, die bestehende generische ADSP-Plattformen ersetzt. Sie erkennt automatisch die neuesten CCES/VDSP++-Installationen und wählt den Compiler (cc21k) auf Grundlage der Variable CMAKE_SYSTEM_PROCESSOR. Wissenswert hierzu ist, dass die erforderliche Konfiguration nun im Compiler-Modul selbst stattfindet. Das gilt beispielsweise für die SHARC-Signalprozessoren und Blackfin – SHARC steht für Super-Harvard-Architektur und ist ein von dem Halbleiterhersteller Analog Devices geprägter Begriff für eine Modifikation der Harvard-Architektur in digitalen Signalprozessoren. Die Erweiterung speichert Befehle in einem Cache zwischen und entlastet den Prozessor durch direkten Datentransfer zwischen dem Befehls- und Datenspeicher.

Das Akronym DSP steht für Digital Signal Processor: Gemeint ist damit ein spezialisierter Mikrochip, der digitale Signale kontinuierlich verarbeitet. Digitale Signalprozessoren finden unter anderem Anwendung in Mischpulten, Equalizern, MP3-Playern, Teile der Bordelektronik von Fahrzeugen, Modems und Amateurfunkgeräten. Wer sich vertiefend für diese Form der Signalverarbeitung interessiert, wird auf der Website DSP-Systeme fündig. ADSP ist eine fortgeschrittene Form von DSP (das A steht für Advanced), die Prozesse parallel verarbeiten kann.

Das CMake-Team hebt im Blogeintrag einige neue Kommandozeilenbefehle als bedeutsam hervor: Das Modul Fetch Content und der Befehl find_package() unterstützen nun Integrationsoptionen. Neu ist der Generatorausdruck LINK_LIBRARY: Mit ihm lassen sich Bibliotheken während des Linkens verwalten, und die Visual-Studio-Generatoren unterstützen nun SYSTEM-Header beim Verwenden von Visual Studio 2019 (erstes Update) und höheren Versionen.

Der Befehl cmake(1) ist um die Kommandozeilenoption -fresh erweitert, mit der sich alle Dateien des Formats CMakeCache.txt samt dazugehörigen CMakeFiles-Verzeichnissen sauber entfernen lassen. Der Vorgang wird angestoßen beim Konfigurieren eines Build-Trees. Dadurch lässt sich eine neue Konfiguration nun so starten, als wäre der Build-Baum neu erstellt worden. Die Variable CMAKE_COMPILE_WARNING_AS_ERROR ist gemeinsam mit der Zieleigenschaft COMPILE_WARNING_AS_ERROR ebenfalls neu hinzugekommen: Sie ermöglicht das Kompilieren mit einem Compiler-spezifischen Flag, um Warnungen als Fehler zu behandeln – ein Beispiel dafür wäre -Werror.

Eine Reihe von Funktionen zum Auffinden von Dateien, Pfaden, Bibliotheken, Programmen und Paketen verfügt nun über eine NO_CMAKE_INSTALL_PREFIXOption zum Steuern der Suche CMAKE_INSTALL_PREFIX. Die Funktionen find_file(), find_path(), find_library() und find_program(), find_package() sollen nun auch in der Lage sein, die Fähigkeit zu spezifizieren, welche Windows-Registry-Ansichten abzufragen sind.

Diese und alle weiteren Ă„nderungen lassen sich dem Blogeintrag von Kitware sowie den Release Notes entnehmen. Wer gleich loslegen will, kann das aktuelle Release bei CMake.org herunterladen, begleitend empfiehlt sich ein Blick in die Dokumentation zu CMake 3.24.

(sih)