La version 4.0.0 du générateur de scripts multiplateforme CMake, qui sert d'alternative à Autotools et est utilisée dans des projets tels que KDE, LLVM/Clang, MySQL, MariaDB, ReactOS et Blender, a été publiée. Le code CMake est écrit en C++ et est distribué sous la licence BSD.
CMake se distingue par la fourniture d'un langage de script simple, des moyens d'étendre les fonctionnalités via des modules, le support du cache, des outils pour la cross-compilation, la génération de fichiers de construction pour une large gamme de systèmes de construction et de compilateurs, ainsi que des utilitaires ctest et cpack pour définir des scénarios de test et de construction de paquets, et l'outil cmake-gui pour configurer les paramètres de construction de manière interactive.
Principales modifications :
- La compatibilité avec les versions de CMake antérieures à la version 3.5 a été supprimée. Lors de la liaison à des versions non supportées dans les fonctions cmake_minimum_required() et cmake_policy(), une erreur sera désormais générée.
- Une variable d'environnement « CMAKE_POLICY_VERSION_MINIMUM » a été ajoutée pour redéfinir la version minimale de CMake, dont la fonctionnalité est nécessaire pour le projet. Cette variable ajoutée permet d'éviter de modifier les appels cmake_minimum_required(VERSION) et cmake_policy(VERSION) dans le projet lui-même, par exemple, pour configurer la politique des versions dans les projets qui ne le prévoient pas.
- L'expression générateur « $ » a été enrichie d'une opération « NATIVE_PATH » permettant de convertir le chemin de fichier de la représentation CMake (où les répertoires sont toujours séparés par « / ») en un chemin système (dans les systèmes Unix-like, « / » est utilisé, tandis qu'en Windows, c'est « \ »).
- Sur la plateforme macOS, lors de l'utilisation de générateurs de scripts de construction basés sur Ninja et de générateurs Makefile, si un compilateur se trouve dans le répertoire « /usr/bin », il sera désormais conservé tel quel, sans liaison au compilateur d'Xcode. Lors de la construction pour macOS, le choix du SDK et le passage au compilateur de l'option « -isysroot » (le SDK est désormais choisi par le compilateur, et non par CMake) ont été supprimés par défaut.
- Une propriété LINK_WARNING_AS_ERROR a été ajoutée, selon laquelle les avertissements de l'éditeur de liens seront considérés comme des erreurs. Pour désactiver cet effet, l'option de ligne de commande « —link-no-warning-as-error » a été ajoutée.
- Une option « —project-file » a été ajoutée à l'outil cmake pour spécifier un nom alternatif pour le fichier CMakeLists.txt.
- Le générateur CPack a été enrichi de la possibilité de créer des archives tar non compressées.
- Dans la commande target_link_libraries() et les variables CMAKE_EXE_LINKER_FLAGS*, CMAKE_SHARED_LINKER_FLAGS*, CMAKE_MODULE_LINKER_FLAGS*, la prise en charge du préfixe « LINKER: » a été ajoutée.
- De nouvelles variables ont été ajoutées :
- CMAKE_EXECUTE_PROCESS_COMMAND_ERROR_IS_FATAL,
- CMAKE__LINK_MODE,
- CMAKE__DEVICE_LINK_MODE,
- CMAKE_LINK_WARNING_AS_ERROR,
- CMAKE_MSVC_RUNTIME_CHECKS,
- CMAKE_DEBUGGER_WORKING_DIRECTORY,
- CMAKE_XCODE_SCHEME_LLDB_INIT_FILE,
- CMAKE_XCODE_SCHEME_TEST_CONFIGURATION.
- De nouvelles propriétés ont été ajoutées : DEBUGGER_WORKING_DIRECTORY et VS_SOLUTION_ITEMS (pour attacher des fichiers au .sln pour Visual Studio).
- La génération de builds CMake pour SunOS pour les architectures sparc64 et x86_64 est assurée.
Source : opennet.ru
