2010-09-27 41 views
17

Para mi proyecto Qt, utilizo un archivo .pro que incluye un archivo .pri separado para los diversos archivos de encabezado, fuente, formulario y recursos. Sin embargo, cada vez que agrego un nuevo archivo, necesito agregarlo manualmente al archivo .pri. Esto es tedioso y propenso a errores. ¿Hay alguna manera de "mágicamente" agregar todos los archivos de un directorio, ya sea directamente en el archivo .pri o al decirle a qmake que ejecute un script por separado de antemano?QMake: compilando automáticamente todos los archivos en un directorio

+1

¡Buena pregunta! Pero ... los errores potenciales debidos a la adición de archivos arbitrarios (desde un directorio) pueden ser mayores que cuando se escribe mal el nombre de un archivo. Agregar un nombre de archivo al archivo .pri toma mucho menos tiempo que agregar un archivo fuente, por lo que esta vez se debe omitir – mmonem

Respuesta

9

Al ejecutar qmake -project desde el directorio se creará un archivo de proyecto que incluye todos los archivos .cpp y .h de ese directorio. Puede agregar un paso de precompilación que llame al qmake -project, luego pasar el archivo generado a un script que elimine las primeras líneas. He aquí una rápida de una sola línea que podría hacer el trabajo:

qmake -project -o MyFiles.pro && sed '1,/^# Input/d' MyFiles.pro > MyFiles.pri && rm MyFiles.pro 
15

que puede utilizar:

SOURCES += *.cpp 
HEADERS += *.h 

en su archivo profesional. Por supuesto, todavía debe recordar volver a ejecutar qmake después de crear nuevos archivos.

+8

¿Cómo se puede hacer para que esto agregue recursivamente todos los archivos fuente en un directorio determinado y en todos los subdirectorios? Esto solo agrega los archivos en la ruta raíz. –

+0

Tampoco parece funcionar para ninguna ruta excepto $$ PWD, p. Ej. '../ my_blah/*. h' no funciona, dice" Fallo en encontrar ... " – DBedrenko

Cuestiones relacionadas