2011-03-05 15 views
9

P. ej. ¿cómo debería compilar la versión de versión y depuración al mismo tiempo? Supongo que la respuesta utiliza variables de caché y algún tipo de "colección" de ellas. ¿Es una forma común de obtener parámetros de configuración a partir de parámetros de caché, no? Si la respuesta es sí, ¿cómo debo usar varias "colecciones" de ellas de la mejor manera? ¡Muchas gracias!¿Cómo construir varias configuraciones a la vez con CMake?

Respuesta

10

No especifica la plataforma de la que está hablando. Los generadores basados ​​en Makefiles solo construirán una configuración a la vez, y la forma normal de construir varias configuraciones es usar árboles de compilación separados, p. uno para Linux de 64 bits en Intel, uno para Windows de 32 bits, etc. La mayoría de los proyectos de CMake aconsejan que no se generen fuentes y, suponiendo que haya escrito sus archivos CMakeLists correctamente, podría tener ~/src/YourProject, y ~/build/YourProject -Release, ~/build/YourProject-Debug.

Esta es la forma recomendada de hacerlo, suponiendo que su árbol fuente no tiene ningún CMakeCache.txt, etc. A continuación, puede ejecutar cmake -DCMAKE_BUILD_TYPE: STRING = Debug ~/src/YourProject en el directorio de depuración, y similar para el lanzamiento. Esto tiene la ventaja de que puede señalar proyectos dependientes en la configuración adecuada.

El proyecto Boost CMake también ha explorado la construcción de todas las configuraciones en el mismo árbol de compilación utilizando el nombre de la biblioteca para diferenciar. Puede valer la pena analizarlo si debe compilar todas las configuraciones en el mismo árbol de compilación.

5

(por compañeros de Google)

Tenga cuidado de no confundir los tipos de construcción y configuraciones de construcción.

Si usted realmente quiere decir "construir tipos" como de depuración y liberación y quiere construir con ellas al mismo tiempo, entonces Cmake FAQ da una respuesta: How can I build multiple modes without switching

Básicamente implica el uso de varios OUT- compilaciones de origen.

+4

¿Cuál es la diferencia entre "tipo de compilación" y "configuración de compilación"? –

+1

"tipos" también conocidos como "modos" y "configuraciones" son básicamente formas de crear compilaciones de Depuración y Liberación para diferentes herramientas. Las configuraciones solo están disponibles para las herramientas que lo soportan, por ejemplo, Visual Studio. Los modos también se usan normalmente para compilaciones de estilo Debug y Release, pero cmake los implementa para make en carpetas de compilación separadas ya que make no tiene el mismo estilo de soporte de configuración que VS, es decir, seleccionando un tipo/configuración de compilación desde el menú desplegable de configuración en la GUI. – gnac

Cuestiones relacionadas