Sortie du système de build CMake 3.15

A eu lieu sortie d'un générateur de script de build ouvert multiplateforme Faire 3.15, qui agit comme une alternative à Autotools et est utilisé dans des projets tels que KDE, LLVM/Clang, MySQL, MariaDB, ReactOS et Blender. Le code CMake est écrit en C++ et distribué sous licence BSD.

CMake se distingue par la fourniture d'un langage de script simple, d'un moyen d'étendre les fonctionnalités via des modules, d'un nombre minimal de dépendances (pas de liaison avec M4, Perl ou Python), de la prise en charge de la mise en cache, de la présence d'outils de compilation croisée, de la prise en charge de la génération de builds. fichiers pour un large éventail de systèmes de construction et de compilateurs, la présence des utilitaires ctest et cpack pour définir des scripts de test et des packages de construction, l'utilitaire cmake-gui pour définir de manière interactive les paramètres de construction.

principal améliorations:

  • La prise en charge initiale de la langue a été ajoutée au générateur de script de construction basé sur Ninja Swift, développé par Apple ;
  • Ajout de la prise en charge d'une variante du compilateur Clang pour Windows qui s'appuie sur l'ABI MSVC, mais utilise des options de ligne de commande de style GNU ;
  • Ajout des variables CMAKE_MSVC_RUNTIME_LIBRARY et MSVC_RUNTIME_LIBRARY pour sélectionner les bibliothèques d'exécution utilisées par les compilateurs basés sur MSVC ABI (MS Visual Studio) ;
  • Pour les compilateurs comme MSVC, CMAKE__FLAGS arrête par défaut la liste des indicateurs de contrôle d'avertissement tels que "/W3" ;
  • Ajout d'une expression génératrice "COMPILE_LANG_AND_ID :" pour définir les options du compilateur pour les fichiers cibles, en utilisant les variables CMAKE__COMPILER_ID et LANGUAGE pour chaque fichier de code ;
  • Dans les expressions génératrices C_COMPILER_ID, CXX_COMPILER_ID,
    CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
    COMPILE_LANG_AND_ID et PLATFORM_ID ont ajouté la prise en charge de la correspondance d'une valeur unique à une liste dont les éléments sont séparés par une virgule ;

  • Ajout de la variable CMAKE_FIND_PACKAGE_PREFER_CONFIG afin que l'appel de find_package() recherche d'abord le fichier de configuration du package, même si un chercheur est disponible ;
  • Pour les bibliothèques d'interface, la prise en charge a été ajoutée pour la définition des propriétés PUBLIC_HEADER et PRIVATE_HEADER, grâce auxquelles les en-têtes peuvent être définis à l'aide de la commande install(TARGETS) en passant les arguments PUBLIC_HEADER et PRIVATE_HEADER ;
  • Ajout de la variable CMAKE_VS_JUST_MY_CODE_DEBUGGING et de la propriété cible VS_JUST_MY_CODE_DEBUGGING pour activer le mode « Just My Code » dans le débogueur Visual Studio lors de la compilation à l'aide de MSVC cl 19.05 et des versions plus récentes ;
  • Le module FindBoost a été repensé, qui fonctionne désormais de manière plus globale dans les modes Config et Module en présence d'autres modules de recherche ;
  • La commande message() prend désormais en charge les types NOTICE, VERBOSE,
    DÉBOGAGE et TRACE ;

  • La commande "export(PACKAGE)" ne fait désormais rien sauf si elle est explicitement activée via la variable CMAKE_EXPORT_PACKAGE_REGISTRY.

Source: opennet.ru

Ajouter un commentaire