Comment puis-je ajouter un minimum de compilateur version requise?
Je veux créer un projet en C++11 et j'utilise CMake comme mon système de construction.
Comment puis-je ajouter un minimum de compilateur version requise dans le CMake fichiers de configuration?
Vous devez vous connecter pour publier un commentaire.
Autant que je sache, il n'y a pas de prise en charge intégrée pour quelque chose comme cela, mais vous pourriez certainement écrivez vous-même:
Cependant, je vous suggère effectivement envisager une fonctionnalité de détection de l'approche de la place. Qui est, l'utilisation
try_compile()
pour vérifier que le compilateur prend en charge les fonctionnalités dont vous avez besoin, etFATAL_ERROR
si elle ne le fait pas. C'est plus idiomatique dans CMake, et a l'avantage de ne pas avoir à découvrir approprié version minimale pour tous les compilateurs là.std::regex
l'utilisation de la compile prend du temps comparable à la compilation de l'ensemble de la (petite) de projet. Parfois, vérification de la version est plus simple pour le développeur et le plus rapide pour l'utilisateur de compiler le projet.target_compile_features()
pour vérifier spécifiques compiler fonctionnalités. Mais il y a un nombre limité de caractéristiques, qui peut être vérifiée avec elle.De départ avec CMake 2.8.10 la CMAKE_<LANG>_COMPILER_VERSION les variables peuvent être accessibles par les utilisateurs pour obtenir la version de compilateur. Dans les précédentes versions de ceux qui ont été réservées uniquement à des fins internes et ne doit pas être lu par le code de l'utilisateur. Ils sont aussi pas garanti pour tous les langages C et CXX devrait certainement être disponible.
CMake contient également des opérateurs de comparaison de version (VERSION_LESS, VERSION_EQUAL, VERSION_GREATER) que vous pouvez utiliser pour écrire votre version du code de validation.
N'oubliez pas que vous devrez trouver le compilateur vous avez d'abord et ensuite, vérifiez la version correcte.
Voici un court exemple de l'un de mes projets:
Vous pouvez vérifier les version de gcc comme suit: