CMake : navigation dans plusieurs compilateurs pour un seul langage
CMake adhère au principe d'attribution d'un seul CMAKE_CXX_COMPILER pour tous les fichiers source C au sein d'un Fichier CMakeLists.txt. Cette approche pose des défis lorsque l'on tente de combiner l'hôte et la compilation croisée dans un seul fichier CMakeLists.txt.
Le dilemme : plusieurs compilateurs pour le même langage
Selon la question initiale, le nœud du problème réside dans la recherche d'une solution pour utiliser plusieurs compilateurs pour le même langage, en particulier C.
Le compromis : options limitées
Malheureusement , la conception de CMake ne répond pas facilement à cette exigence. CMake conserve un ensemble unique de propriétés du compilateur qui s'appliquent à toutes les cibles d'un fichier CMakeLists.txt. Par conséquent, pour utiliser plusieurs compilateurs, il est nécessaire d'exécuter CMake deux fois.
Alternatives : commandes personnalisées ou fichiers séparés
Une solution de contournement implique essentiellement l'utilisation de commandes personnalisées. créer des scripts shell glorifiés. Cependant, cette approche s'écarte de l'objectif souhaité.
Une solution plus propre implique de séparer les processus de compilation en fichiers CMakeLists.txt distincts. Bien qu’il empêche la liaison entre différentes architectures, il élimine le besoin de code redondant. Pour maintenir la cohérence, les sections communes des scripts CMake peuvent être extraites dans des fichiers séparés et incluses via la fonction include().
Inconvénients : commodité pour la complexité
Le principal L'inconvénient de cette approche est la perte de la compilation en une seule commande. Pour atténuer cela, un script wrapper peut être créé dans un langage de script préféré pour appeler les commandes CMake nécessaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!