2010-09-27 4 views
17

Для моего проекта Qt я использую .pro-файл, который содержит отдельный .pri-файл для различных файлов заголовков, источников, форм и ресурсов. Однако каждый раз, когда я добавляю новый файл, мне нужно вручную добавить его в .pri-файл. Это утомительно и подвержено ошибкам. Есть ли способ «магически» добавить все файлы из каталога, либо непосредственно в .pri-файл, либо путем предоставления qmake для запуска отдельного скрипта заранее?QMake: Автоматическая компиляция всех файлов в каталоге

+1

Хороший вопрос! Но ... потенциальные ошибки из-за добавления произвольных файлов (из каталога) могут быть больше, чем при неправильном имени файла. Добавление имени файла в .pri-файл занимает гораздо меньше времени, чем добавление исходного файла, поэтому на этот раз следует пренебречь. – mmonem

ответ

9

Запуск qmake -project из каталога создаст файл проекта, который включает в себя все файлы .cpp и .h в этом каталоге. Вы можете добавить шаг предварительного компиляции, который вызывает qmake -project, а затем передать сгенерированный файл сценарию, который удаляет первые несколько строк. Вот быстрый один лайнер, который мог бы сделать работу:

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

Вы можете использовать:

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

в вашем про файл. Конечно, вам все равно придется заново заново запустить qmake после создания новых файлов.

+8

Как вы можете сделать это рекурсивно добавлять все исходные файлы в данный каталог и все подкаталоги? Это добавляет только файлы в корневой путь. –

+0

Не похоже, что он работает для любого пути, кроме $$ PWD, например. '../ my_blah/*. h' не работает, говорится:« Невозможность найти ... » – DBedrenko

Смежные вопросы