L'outil de compilation CMake est disponible en version 3.7
Avec le support du compilateur Clang pour AIX et la compilation croisée pour Android

Le , par Olivier Famien, Chroniqueur Actualités
CMake, l’outil open source utilisé pour construire, tester et créer des packages de logiciels vient de sortir en version 3.7. Dans cette nouvelle version, nous avons de nouvelles fonctionnalités à divers niveaux, mais aussi des dépréciations, des suppressions de fonctionnalités et plusieurs autres changements.

Au niveau des plateformes

Pour ce qui concerne les nouvelles fonctionnalités, CMake prend en charge désormais la compilation croisée pour Android et le compilateur Clang est maintenant supporté sur AIX, le système d’exploitation de type UNIX commercialisé par IBM depuis 1986.

Au niveau des générateurs de fichiers

  • L’outil Ninja est maintenant conditionné dans certains cas pour supporter Fortran, le langage de programmation utilisé pour le calcul scientifique ;
  • Le générateur de la préversion 4 de Visual Studio 15 a été ajouté de manière expérimentale. Les générateurs de Visual Studio 2010 et les versions ultérieures ont subi des améliorations afin de placer les fichiers sources .natis correctement dans les fichiers de projet Visual Studio ;
  • Le support rudimentaire du langage Swift pour le générateur Xcode a été amélioré pour s’accomoder correctement avec la nouvelle variable CMAKE_Swift_LANGUAGE_VERSION afin d’indiquer à Xcode quelle version de Swift est utilisée par la source ;
  • Le générateur CodeLite a obtenu une nouvelle option CMAKE_CODELITE_USE_TARGETS pour modifier la création de projets.


Au niveau des commandes

  • La commande add_custom_command a eu une nouvelle option DEPFILE qui fonctionne avec le générateur Ninja afin de fournir des informations de dépendance implicites à l’outil de construction ;
  • Il a été ajouté un nouveau mode PARSE_ARGV à la commande cmake_parse_arguments() afin de lire les arguments directement à partir des variables ARGC et ARGV # dans le corps d’une fonction() ;
  • La nouvelle option ANDROID_MK a été ajoutée à la commande export() pour générer les fichiers Android.mk qui pointent vers les bibliothèques construites par CMake ;
  • Les commandes du fichier (DOWNLOAD) et du fichier (UPLOAD) ont acquis les options HTTPHEADER <HTTP-header> et USERPWD <username>:<password> ;
  • Les commandes find_library() et find_package() ont été améliorées et sont maintenant capables de rechercher dans les répertoires lib32/ lorsque la construction cible une architecture 32 bits ;
  • La commande find_package() a acquis de nouvelles fonctionnalités pour trier des bibliothèques compatibles par NAME ou NATURAL en définissant les deux nouvelles variables CMAKE_FIND_PACKAGE_SORT_ORDER et CMAKE_FIND_PACKAGE_SORT_DIRECTION ;
  • De nouvelles opérations de comparaison booléenne ont été ajoutées à la commande if(). Ce sont entre autres LESS_EQUAL, GREATER_EQUAL, STRLESS_EQUAL, STRGREATER_EQUAL, VERSION_LESS_EQUAL et VERSION_GREATER_EQUAL ;
  • La signature du fichier source de la commande try_compile() respecte maintenant les paramètres spécifiques à la configuration (par exemple, CMAKE_ <LANG> _FLAGS_DEBUG) dans le projet de test généré. Auparavant, seuls les indicateurs par défaut de la chaîne d’outils en cours ont été utilisés ;


Au niveau de variables

  • Les fichiers de la chaîne d’outils peuvent maintenant définir une variable CMAKE_<LANG>_FLAGS_INIT pour initialiser l’entrée de la cache CMAKE_ <LANG> _FLAGS la première fois qu’une langue est activée dans un arbre de construction ;
  • La variable CMAKE_FIND_PACKAGE_SORT_ORDER a été ajoutée pour contrôler le mode de tri de la commande find_package() ;
  • La variable CMAKE_FIND_PACKAGE_SORT_DIRECTION a été ajoutée pour contrôler la direction de tri de la commande find_package() ;


Au niveau de CTest

CTest est un outil de test intégré à CMake. Il peut être utilisé pour automatiser la mise à jour, configurer, construire, tester, effectuer une vérification de la mémoire, effectuer une couverture et soumettre des résultats à un système de tableau de bord CDash ou Dart. Dans cette version de CMake, CTest supporte un plus grand nombre de tests à l’intégration de nouvelles propriétés de test comme FIXTURES_SETUP, FIXTURES_CLEANUP et FIXTURES_REQUIRED. Par ailleurs, les commandes ctest_configure(), ctest_build(), ctest_test(), ctest_coverage() et ctest_upload() ont obtenu une nouvelle option CAPTURE_CMAKE_ERROR pour capturer les erreurs qui se produisent lorsque les commandes s’exécutent dans une variable et évitent d’affecter le code retour du processus ctest (1).

Au niveau des fonctionnalités dépréciées et supprimées

  • Pour les nouvelles versions de CMake, les binaires Linux i386 ne sont plus fournis en téléchargement à partir du site cmake.org ;
  • Les fichiers de support Vim cmake-indent.vim, cmake-syntax.vim et cmake-help.vim ont été supprimés en faveur des fichiers désormais fournis à partir du projet vim-cmake-syntax ;
  • Le support pour la construction de CMake lui-même avec certains compilateurs a été abandonné (Visual Studio 7.1 et 2005 — remplacé par VS 2008 et supérieur et MinGW.org mingw32 — remplacé par MSYS2 mingw32 et mingw64) ;


Télécharger CMake

Source : Blog Kitware

Et vous ?

Que pensez-vous des nouvelles fonctionnalités de CMake ?

Voir aussi

QtCon, troisième journée, intégration de CMake à Qt Creator, multifil avec Qt, une interface Qt Quick sans QML, un compte-rendu d'Arnold Dumas

La Rubrique C++, Autres outils C & C++, Outils et compilateurs C++, FAQ C++


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Oscar.STEFANINI Oscar.STEFANINI - Membre régulier https://www.developpez.com
le 15/11/2016 à 9:46
Super nouvelle, hâte de tester tout ça.
Offres d'emploi IT
Responsable de projets - actionneurs H/F
SAFRAN - Ile de France - MASSY / MANTES
Ingénieur système de commande de vol H/F
Safran - Ile de France - Massy (91300)
Architecte / concepteur électronique numérique H/F
Safran - Ile de France - Éragny (95610)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil