Verëffentlechung vum CMake 3.16 Build System

Agefouert Verëffentlechung vun engem Cross-Plattform Open Build Skript Generator CMake 3.16, déi als Alternativ zu Autotools handelt an a Projete wéi KDE, LLVM/Clang, MySQL, MariaDB, ReactOS a Blender benotzt gëtt. De CMake Code ass an C++ geschriwwen an ënner der BSD Lizenz verdeelt.

CMake ass bemierkenswäert fir eng einfach Skriptsprooch ze liwweren, e Mëttel fir d'Funktionalitéit duerch Moduler ze verlängeren, eng minimal Unzuel vun Ofhängegkeeten (keng Bindung op M4, Perl oder Python), Caching-Ënnerstëtzung, d'Präsenz vun Tools fir Cross-Kompilatioun, Ënnerstëtzung fir Build ze generéieren Dateien fir eng breet Palette vu Build Systemer a Compilers, d'Präsenz ctest an cpack Utilities fir Test Scripten a Baupakete ze definéieren, cmake-gui Utility fir interaktiv Bauparameter ze setzen.

Haaptstrooss Verbesserungen:

  • Zousätzlech Ënnerstëtzung fir Objective C ("OBJC") an Objective Sproochen
    C++ ("OBJCXX"), déi iwwer de Projet () an enable_language () Kommandoen aktivéiert ka ginn, duerno gëtt de Code an den ".m" ".mm" Dateien als Objective C an Objective C++ Code kompiléiert, anstatt als C++, wéi et virdru war;

  • Zousätzlech Ënnerstëtzung fir de Clang Compiler op der Solaris Plattform;
  • Nei Kommandozeiloptioune bäigefüügt: "cmake -E true|false" fir Retourcodes 0 an 1 ze drécken; "cmake --trace-redirect=" fir d'Spuerinformatioun op eng Datei ze redirectéieren amplaz
    "stderr"; de Kommando "cmake --loglevel" gouf op "--log-level" ëmbenannt fir et an d'Nimm vun den anere Kommandoen ze bréngen;

  • De Kommando "target_precompile_headers ()" bäigefüügt fir d'Lëscht vun den Headerdateien ze lëschten, déi während der Prekompilatioun benotzt ginn (reduzéiert Bauzäit);
  • D'Eegeschaft "UNITY_BUILD" bäigefüügt, déi de Batchmodus fir d'Veraarbechtung vu Quelldateien an Generatoren aktivéiert fir de Bau ze beschleunegen;
  • Zousätzlech Kommandoen "find_file()", "find_library()", "find_path()",
    "find_package()" an "find_program()" fir Dateien, Bibliothéiken, Weeër, Packagen an Ausféierbaren no Variabelen ze sichen déi Sichweeër fir verschidde Kategorien vu Dateien definéieren.
    D'Verännerlechen "CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH", "CMAKE_FIND_USE_CMAKE_PATH", "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH", "CMAKE_FIND_USE_PACKAGE_ROOT_PATH", "CMAKE_FIND_USE_EN_USE_USE_USE_CMAKE_FIND"_USE_USE_USE_CMAKE_FIND_USE_USE_USE_USE_USE_USE_CMAKE_USE_USE_USE. IST" gi benotzt fir d'Basis Sichweeër RY ze kontrolléieren";

  • Den "Datei (GET_RUNTIME_DEPENDENCIES)" Modus op de Kommando "Datei ()" bäigefüügt, wat Iech erlaabt d'Lëscht vun de Bibliothéiken rekursiv ze recuperéieren déi benotzt gëtt wann Dir eng ausführbar Datei oder Bibliothéik dynamesch verbënnt. De Modus huet de GetPrerequisites () Kommando ersat, deen elo ofgeschaaft gouf;
  • De Kommando "ctest(1)" implementéiert d'Fäegkeet fir Tester ze serialiséieren op Basis vun de Ressourcen déi fir all Test erfuerderlech sinn;
  • D'Variabel "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" gouf ofgeschaaft a soll duerch "CMAKE_FIND_USE_PACKAGE_REGISTRY" ersat ginn;
  • Verbessert AIX Plattform Ënnerstëtzung. Wann Dir d'Eegeschaft "ENABLE_EXPORTS" benotzt, zousätzlech zu der ausführbarer Datei, gëtt elo eng Importdatei fir de Linker generéiert, gespäichert mat der Extensioun ".imp". A Plugins erstallt andeems Dir "add_library()" mat der "MODULE" Optioun rufft, kann dës Datei benotzt ginn wann Dir de Kommando "target_link_libraries()" verbënnt. Runtime Verknëppung op AIX ass par défaut deaktivéiert well CMake elo all déi néideg Symbolinformatioune fir d'Verknëppung bei der Laaschtzäit ubitt. Fir Runtime Verknëppung vun dynamesche Bibliothéiken oder luedbare Moduler ze benotzen, musst Dir explizit d'Optiounen "-Wl, -G" an de Lëschte vu Linker Startup Fändelen spezifizéieren, definéiert duerch d'Variabelen "CMAKE_SHARED_LINKER_FLAGS" an "CMAKE_MODULE_LINKER_FLAGS".

Source: opennet.ru

Setzt e Commentaire