Vor ein paar Tagen Der plattformübergreifende Open Source-Skriptgenerator CMake 3.15 wurde veröffentlicht Dies ist eine Alternative zu Autotools und wird in Projekten wie KDE, LLVM / Clang, MySQL, MariaDB, ReactOS und Blender verwendet.
CMake ist ein Multiplattform-Tool zur Codegenerierung oder -automatisierung. Der Name ist eine Abkürzung für "plattformübergreifend machen" (plattformübergreifend machen, über die Verwendung von "make" im Namen hinaus, CMake ist eine separate Suite und höher als das übliche Make-System von Unix, ähnlich wie Autotools.
Über CMake
CMake ist bemerkenswert für die Bereitstellung einer einfachen Skriptsprache, Tools zur Erweiterung der Funktionalität über Module hinweg, minimale Anzahl von Abhängigkeiten (keine Bindung an M4, Perl oder Python), Caching-Unterstützung, Verfügbarkeit von Tools für die Cross-Kompilierung, Unterstützung für die Generierung von Assembly-Dateien für einen weiten Bereich Compilersysteme und Compiler.
Die Dienstprogramme ctest und cpack zum Definieren von Testszenarien und zum Erstellen von Paketen sowie das Dienstprogramm cmake-gui zum interaktiven Konfigurieren von Buildparametern.
CMake wird verwendet, um den Kompilierungsprozess der Software mithilfe einfacher und unabhängiger Konfigurationsdateien zu steuern der Plattform. Cmake generiert native Makefiles und Arbeitsbereiche, die in der gewünschten Entwicklungsumgebung verwendet werden können.
Es ist insofern mit dem Unix GNU-Buildsystem vergleichbar, als der Prozess durch Konfigurationsdateien gesteuert wird, im Fall von CMake mit dem Namen CMakeLists.txt.
Im Gegensatz zum GNU-Build-System, das ist auf Unix-Plattformen beschränktCMake unterstützt die Generierung von Dateien für verschiedene Betriebssysteme, was die Wartung erleichtert und die Notwendigkeit mehrerer Dateisätze für jede Plattform beseitigt.
Der Erstellungsprozess wird gesteuert, indem in jedem Verzeichnis (einschließlich der Unterverzeichnisse) eine oder mehrere CMakeLists.txt-Dateien erstellt werden.
Der CMake-Code ist in C ++ geschrieben und wird unter der BSD-Lizenz vertrieben.
CMake 3.15 Neue Hauptfunktionen
Diese neue Version hervorgehoben durch die Ankunft der anfänglichen Generatorunterstützung für die Swift-Sprache Das von Apple entwickelte Assembler-Skriptgenerator für Ninja Toolkit wurde hinzugefügt.
Außerdem Außerdem wird die Clang-Compiler-Option unterstützt für Windows, das mit ABI MSVC erstellt wurde, jedoch die Befehlszeilenoptionen im GNU-Stil verwendet.
Die Entwickler betonen, dass die Variablen CMAKE_MSVC_RUNTIME_LIBRARY
y MSVC_RUNTIME_LIBRARY
werden hinzugefügt, um die von Compilern verwendeten Laufzeitbibliotheken auszuwählen ABI MSVC
(MS-Visual Studio).
Für Compiler wie MSVC
in CMAKE__FLAGS
Standardmäßig wird die Liste der Warnsteuerungsflags wie "/ W3" gestoppt.
Von den anderen Verbesserungen, die in der Ankündigung der Veröffentlichung dieser neuen Version hervorgehoben werden, finden wir Folgendes:
- Der generierende Ausdruck '
COMPILE_LANG_AND_ID
: »So definieren Sie Compileroptionen für Zieldateien, die Variablen verwendenCMAKE__COMPILER_ID
yLANGUAGE
für jede Codedatei - Die Generatorausdrücke
C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID,
Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID
yPLATFORM_ID
Unterstützung für das Abgleichen eines Werts mit einer durch Kommas getrennten Liste hinzufügen - Die Variable wurde hinzugefügt
CMAKE_FIND_PACKAGE_PREFER_CONFIG
, bei dem der Aufruf von find_package () zuerst nach der Paketkonfigurationsdatei sucht, auch wenn das Suchmodul verfügbar ist - Für Schnittstellenbibliotheken wurde Unterstützung für das Festlegen von Eigenschaften hinzugefügt
PUBLIC_HEADER y PRIVATE_HEADER
, deren Header durch den Installationsbefehl (TARGETS) konfiguriert werden können, der die Argumente übergibtPUBLIC_HEADER
yPRIVATE_HEADER
- Die Variable wurde hinzugefügt
CMAKE_VS_JUST_MY_CODE_DEBUGGING
und die ZieleigenschaftVS_JUST_MY_CODE_DEBUGGING
Aktivieren des Modus "Nur mein Code" im Visual Studio-Debugger beim Kompilieren mit MSVC cl 19.05 und neueren Versionen. - Das FindBoost-Modul wurde überarbeitet und wird nun im Konfigurations- und Modulmodus mit anderen Suchmodulen ausführlicher bearbeitet
- Die Unterstützung für die Typen NOTICE, VERBOSE, DEBUG und TRACE wurde dem Befehl message () hinzugefügt
- Der Befehl "export (PACKAGE)" führt jetzt nichts mehr aus, bis er explizit über die Variable aktiviert wird
CMAKE_EXPORT_PACKAGE_REGISTRY
.
Wenn Sie mehr darüber erfahren möchten, können Sie sich beraten den folgenden Link.