Publication du système de construction CMake 3.16

Présenté la version du générateur de scripts de construction multiplateforme et open source CMake 3.16, servant d'alternative à Autotools et utilisé dans des projets tels que KDE, LLVM/Clang, MySQL, MariaDB, ReactOS et Blender. Le code de CMake est écrit en C++ et distribué sous licence BSD.

CMake est remarquable pour sa fourniture d'un langage de script simple, d'extensions fonctionnelles via des modules, d'un minimum de dépendances (pas de lien avec M4, Perl ou Python), de support pour la mise en cache, d'outils pour la cross-compilation, de génération de fichiers de construction pour une large gamme de systèmes de construction et de compilateurs, présentant les utilitaires ctest et cpack pour la définition des scripts de test et de construction de paquets, ainsi que l'outil cmake-gui pour le paramétrage interactif des options de construction.

Principales améliorations:

  • Ajout de la prise en charge des langages Objective C («OBJC») et Objective
    C++ («OBJCXX»), qui peuvent être activés via les commandes project() et enable_language(), après quoi le code dans les fichiers «.m» «.mm» sera compilé comme du code en Objective C et Objective C++, et non comme du code en C++, comme c'était le cas auparavant;
  • Ajout de la prise en charge du compilateur Clang sur la plateforme Solaris;
  • Ajout de nouveaux paramètres de ligne de commande : «cmake -E true|false» pour retourner les codes de sortie 0 et 1 ; «cmake —trace-redirect=» pour rediriger les informations de trace dans un fichier, au lieu de
    «stderr» ; la commande «cmake —loglevel» a été renommée en «—log-level» pour être conforme à la dénomination des autres commandes ;
  • Ajout de la commande «target_precompile_headers()» pour lister les fichiers d'en-tête utilisés lors de la pré-compilation (réduit le temps de compilation);
  • Ajout de la propriété «UNITY_BUILD», activant le mode de traitement par lot des fichiers sources dans les générateurs pour accélérer la compilation;
  • Ajout des commandes «find_file()», «find_library()», «find_path()»,
    «find_package()» et «find_program()» pour rechercher des fichiers, bibliothèques, chemins, paquets et exécutables selon les variables définissant les chemins de recherche pour différentes 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_REGISTRY» sont utilisées pour gérer les chemins de base pour la recherche ;
  • Un mode «file(GET_RUNTIME_DEPENDENCIES)» a été ajouté à la commande «file()», permettant d'extraire récursivement la liste des bibliothèques impliquées lors de la liaison dynamique du fichier exécutable ou de la bibliothèque. Ce mode remplace la commande GetPrerequisites(), qui est maintenant obsolète;
  • Dans la commande «ctest(1)», possibilité de sérialisation des tests, en fonction des ressources requises pour chaque test;
  • La variable «CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY» est déclarée obsolète, veuillez utiliser «CMAKE_FIND_USE_PACKAGE_REGISTRY» à la place;
  • Amélioration du support de la plateforme AIX. Lors de l'utilisation de la propriété « ENABLE_EXPORTS », en plus du fichier exécutable, un fichier d'importation pour le linker est désormais créé, enregistré avec l'extension « .imp ». Dans les plugins créés à l'aide de l'appel « add_library() » avec l'option « MODULE », ce fichier peut être utilisé lors de la liaison avec la commande « target_link_libraries() ». La liaison au moment de l'exécution sur AIX est désactivée par défaut, car CMake fournit désormais toutes les informations nécessaires sur les symboles à lier lors du chargement. Pour appliquer la liaison au moment de l'exécution des bibliothèques dynamiques ou des modules chargés, il convient de spécifier explicitement les options « -Wl,-G » dans les listes de drapeaux de lancement du linker, définies par les variables « CMAKE_SHARED_LINKER_FLAGS » et « CMAKE_MODULE_LINKER_FLAGS ».

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster