2012-02-23 32 views
17

me gustaría utilizar Qt creator y Cmake juntos (por favor, no me pregunte acerca de mi motivación, aceptar esto como un hecho.)Cmake con Qt Creator

I establecido con éxito creador de usar Qt cmake " Cmake ": vea this, this y this documentos sobre cómo lo hice.

Creo con éxito el proyecto hello world, pero no puedo crear archivos en el proyecto, solo agrego archivos existentes al árbol del proyecto y después de eso lo agrego a la lista de cmake. El funcionamiento estándar del creador de Qt "Agregar nuevo ..." no funciona y no puedo encontrar el motivo.

¿Hay alguien que use Qt creator y "Cmake" juntos? ¿Es la combinación realmente posible?

Nota: Estoy usando Qt creator v2.4.1.

Respuesta

12

Puede añadir archivos utilizando la expresión pegote en su CMakeLists.txt, así:

file(GLOB SRC . *.cpp) 
add_executable (your_exe_name ${SRC}) 

Cmake recogerá sus nuevos archivos cpp próxima vez que lo ejecute y QtCreator va a mostrar en el navegador de proyectos.

actualización

Esta solución puede ser útil, pero como se ha señalado en los comentarios - esto no es una buena práctica. Cada vez que alguien agrega un nuevo archivo fuente y confirma los cambios, debe volver a ejecutar cmake para compilar todas las fuentes. Por lo general, solo touch uno de los archivos CMakeLists.txt si mi compilación se rompe después de agrupar los cambios recientes del repositorio. Después de eso make ejecutará cmake automáticamente y no tuve que ejecutarlo por las manos. A pesar de eso creo que las listas de fuentes explícitas en CMakeLists.txt es una buena cosa, llamaron cosa CMake Listas por una razón.

+3

Tenga en cuenta sin embargo, se considera una mala práctica para CMake usar globing para recolectar archivos fuente. –

+3

Estoy usando el archivo (GLOB_RECURSE SRC * .cpp) – themean

+1

CMake es bastante inteligente al ejecutarse desde un archivo MAKE. Nunca tuve que ejecutar CMake manualmente y uso globs constantemente ... – rubenvb

9

Cuando agrega archivos nuevos en QtCreator usando el diálogo "Nuevo archivo o proyecto ...", solo crea los archivos en el disco, no agrega automáticamente los archivos al CMakeLists.txt. Debe hacer esto a mano editando el archivo CMakeLists.txt.

La próxima vez que construya el proyecto, CMake se volverá a ejecutar, y QtCreator recogerá los nuevos archivos y los mostrará en el navegador del proyecto.

+0

Puede ser que no he sido suficientemente despejado Busco la forma de crear archivos en el directorio. Botón derecho en la carpeta -> agregar elemento y etc. Esto no funciona para mí cuando uso cmake – themean

+0

@themean - Tomé su pregunta para ser: ¿Es posible agregar archivos a un proyecto basado en CMake en QtCreator? Y si es así, ¿cómo lo haces?Si no entendí esto, edite su pregunta para aclarar lo que está tratando de preguntar. – alanxz

+0

Gracias. Está hecho – themean

2

Probé aquí y tuve el mismo comportamiento porque las opciones que me preguntaban estaban realmente deshabilitadas.

Uso Archivo -> "Nuevo archivo o proyecto ..." o CTRL + N para añadir nuevos archivos y después de eso se suman a CMakeLists.txt

5

puedo solucionar este problema que he añadido nuevos archivos en forma estándar (CTRL + N), luego agregó los archivos necesarios en CMakeLists. Después de eso, haga clic derecho en el proyecto en la vista de árbol del proyecto y elija la opción Ejecutar CMake. Después de esto, los archivos se muestran en el árbol de lista de proyectos. Solo construir no fue suficiente.