Sortie du système de build CMake 3.16

Introduit sortie d'un générateur de script de build ouvert multiplateforme Faire 3.16, 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:

  • Ajout de la prise en charge des langages Objective C (« OBJC ») et Objective
    C++ ("OBJCXX"), qui peut être activé via les commandes project() et activate_langage(), après quoi le code dans les fichiers ".m" ".mm" sera compilé en tant que code Objective C et Objective C++, plutôt qu'en tant que code Objective C et Objective C++. C++, comme avant ;

  • Ajout de la prise en charge du compilateur Clang sur la plateforme Solaris ;
  • Ajout de nouvelles options de ligne de commande : « cmake -E true|false » pour imprimer les codes de retour 0 et 1 ; "cmake --trace-redirect=" pour rediriger les informations de trace vers un fichier à la place
    « stderr » ; la commande "cmake --loglevel" a été renommée en "--log-level" pour l'aligner sur les noms des autres commandes ;

  • Ajout de la commande « target_precompile_headers() » pour lister la liste des fichiers d'en-tête utilisés lors de la précompilation (réduit le temps de construction) ;
  • Ajout de la propriété « UNITY_BUILD », qui active le mode batch pour le traitement des fichiers sources dans les générateurs afin d'accélérer la construction ;
  • Ajout des commandes "find_file()", "find_library()", "find_path()",
    "find_package()" et "find_program()" pour rechercher des fichiers, des bibliothèques, des chemins, des packages et des exécutables en fonction de variables qui définissent des chemins de recherche pour diverses catégories de fichiers.
    Les variables "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_SYSTEM_ENVIRONMENT_PATH" et "CMAKE_FIND_USE_PACKAGE_REGIST" sont utilisées pour contrôler les chemins de recherche de base. RY" ;

  • Ajout du mode « file(GET_RUNTIME_DEPENDENCIES) » à la commande « file() », qui permet de récupérer de manière récursive la liste des bibliothèques utilisées lors de la liaison dynamique d'un fichier exécutable ou d'une bibliothèque. Le mode a remplacé la commande GetPrerequisites(), qui est désormais obsolète ;
  • La commande « ctest(1) » implémente la possibilité de sérialiser les tests en fonction des ressources requises pour chaque test ;
  • La variable « CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY » est obsolète et doit être remplacée par « CMAKE_FIND_USE_PACKAGE_REGISTRY » ;
  • Prise en charge améliorée de la plate-forme AIX. Lors de l'utilisation de la propriété "ENABLE_EXPORTS", en plus du fichier exécutable, un fichier d'importation pour l'éditeur de liens est désormais généré, enregistré avec l'extension ".imp". Dans les plugins créés en appelant "add_library()" avec l'option "MODULE", ce fichier peut être utilisé lors de la liaison à l'aide de la commande "target_link_libraries()". La liaison d'exécution sur AIX est désactivée par défaut car CMake fournit désormais toutes les informations de symbole nécessaires à la liaison au moment du chargement. Pour utiliser la liaison d'exécution de bibliothèques dynamiques ou de modules chargeables, vous devez spécifier explicitement les options « -Wl, -G » dans les listes d'indicateurs de démarrage de l'éditeur de liens, définies via les variables « CMAKE_SHARED_LINKER_FLAGS » et « CMAKE_MODULE_LINKER_FLAGS ».

Source: opennet.ru

Ajouter un commentaire