Pregunta

Estoy tratando de usar el boost.ola como un preprocesador, en lugar de que el preprocesador que viene con el compilador.Yo soy incapaz de averiguar cómo lograr esto.

Estoy usando CMake como la construcción del sistema de generador y ¿cómo puedo especificar mi preprocesador es impulso.ola.Esto debería estar trabajando en windows (MSVC) y linux (gcc).

Googlear y buscar Desbordamiento de la Pila de archivos no ofrecen ninguna respuesta


Compilador de todos modos preprocesar el archivo.Por lo que se ve como dos pasos de preprocesamiento que está implicado aquí.

¿Fue útil?

Solución

Este es un proceso de dos pasos.

En primer lugar, tendrá que contar CMake para utilizar Wave como un comando personalizado: el uso de CMake add_custom_command . Una vez que ha definido este comando que se invoca cada vez que las dependencias que ha especificado para el comando personalizado se emparejan.

En segundo lugar, usted tiene que averiguar todas las macros predefinidas y el (sistema) incluyen sendas su compilador utiliza normaly. Onda no se sabe nada acerca de un compilador específico. Por lo tanto, con el fin de preprocesar un archivo para un compilador particular, todas las macros (relevantes) predefinida (que normalmente están predefinidos por el compilador) y todos los sistemas incluyen caminos (que normalmente son conocidos por el compilador por defecto) que se deben transmitir mientras se invoca Ola. Si poner todas esas opciones a la línea de comandos de la onda es demasiado tediosa (y probablemente lo sea), puede crear un archivo de opciones para Wave (añadirlo a la línea de comandos con @cfgfile). Aquí está un ejemplo para 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

Desde luego, se puede añadir otras opciones para Wave aquí también. Tener diferentes archivos de configuración para diferentes compiladores debería hacer más fácil el manejo desde el interior de CMake.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top