2011-04-08 11 views
5

Estoy cambiando de plain make a CMake como un sistema de compilación para un proyecto. Se supone que el proyecto se ejecuta en diferentes sistemas Linux embebidos, cada uno con su propia cadena de herramientas y también tiene bastantes opciones de configuración diferentes por objetivo (por ejemplo, diferentes definiciones de preprocesador y algunas fuentes incluidas/excluidas). También se supone que funciona en el escritorio Linux y algunos módulos GUI deben ejecutarse en Windows.CMake varios toolchains y plataformas de destino

Ahora, CMake tiene su opción CMAKE_TOOLCHAIN_FILE que se puede utilizar para factorizar el toolchain y compilar material específico de cada plataforma incrustada (Linux y Windows de escritorio no deberían necesitar uno).

Supongo que poner cosas que no sean las que figuran en el CMake Wiki dentro del archivo toolchain no es una buena idea.

Estoy pensando en crear algunas variables de CMake que puedan ser editadas por la herramienta cmake gui y luego simplemente usando if/elseif para determinar la configuración correcta.

¿Alguien tiene una sugerencia mejor o más elegante?

Respuesta

5

pensé en lugar de utilizar largas if/elseif/else bloques yo podría simplemente tener

include(flags-${CONFIGURATION_NAME}.cmake) 

en mi CMakeLists.txt y los indicadores específicos para cada configuración sería entonces simplemente estar especificados en el archivo de banderas apropiado.

Cuestiones relacionadas