Question

Je suis en train d'utiliser boost.wave comme préprocesseur au lieu du préprocesseur qui vient avec le compilateur. Je suis incapable de comprendre comment y parvenir.

J'utilise CMake comme le générateur de système de construction et comment puis-je spécifier mon préprocesseur est boost.wave. Cela devrait travailler sur les deux fenêtres (MSVC) et Linux (gcc).

recherche sur Google et la recherche Stack archives Débordement n'a donné aucune réponse


compilateur de toute façon prétraiter le fichier. Il semble donc que deux étapes de pré-traitement est en cause ici.

Était-ce utile?

La solution

Ceci est un procédé en deux étapes.

D'abord, vous devrez dire CMake utiliser comme une commande d'onde personnalisée: utilisez de CMake add_custom_command . Une fois que vous avez défini cette commande, il sera appelé à chaque fois sont mis en correspondance les dépendances que vous avez spécifié pour la commande personnalisée.

Deuxièmement, vous devez comprendre toutes les macros prédéfinies et le (système) comprennent les chemins de votre compilateur utilise normalement. Vague ne sait rien au sujet d'un compilateur spécifique. Par conséquent, afin de prétraiter un fichier correctement pour un compilateur particulier tous (pertinentes) macros prédéfinies (qui sont normalement prédéfinies par le compilateur) et tous les systèmes comprennent des chemins (qui sont normalement connus au compilateur par défaut) doivent être transmis lors de l'appel Vague. Si mettre toutes ces options sur la ligne de commande Wave est trop fastidieux (et il est probablement), vous pouvez créer un fichier d'options Wave (ajouter à la ligne de commande avec @cfgfile). Voici un exemple pour MSVC 2005:

-SC:\Program Files (x86)\Microsoft Visual Studio 8\VC\include
-SC:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\Include
-D_MT
-D_MSC_VER=1400
-D_MSC_FULL_VER=140050727
-D_MSC_EXTENSIONS
-D_M_IX86

Certes, vous pouvez ajouter d'autres options Wave ici. Avoir différents fichiers de configuration pour différents compilateurs devrait faciliter la gestion de l'intérieur CMake.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top