Как создать правило установки с подстановочным знаком для файлов, которые не существуют в файле pro?

#qt #qmake

#qt #qmake

Вопрос:

Есть ли способ настроить установку для копирования всех файлов с заданным расширением, если эти файлы создаются во время сборки (поэтому они не существуют при запуске qmake)? То, что я пробовал, в основном это:

 csmes.path = $$PATH_INSTALL_BIN
csmes.files = $$OUT_PWD/*.csmes
INSTALLS  = csmes
  

но это не работает, правило, сгенерированное в makefile, неверно:

 install_csmes: FORCE
     @if not exist install_releasebin mkdir install_releasebin amp; if not exist install_releasebin exit 1
    -$(QINSTALL) buld_folder*.csmes install_releasebin*.csmes
  

Я также пытался использовать опцию no_check_exist , но это работает только в том случае, если файлы явно перечислены, чего я действительно пытаюсь избежать.

Есть ли способ сделать это непосредственно в файле pro? Я могу найти какое-то обходное решение и запустить пользовательский скрипт во время установки, мне просто интересно, есть ли более простой способ.

Комментарии:

1. Вы пробовали csmes.files = $$files($$OUT_PWD/*.csmes) ?

2. Вы пытаетесь сделать это, вызывая системные команды из qmake? $$system(<команда>). Если вы используете Linux, используйте find .

3. @JarMan: $$files будет выполняться при запуске qmake, поэтому файлы еще не существуют. Я все равно попробовал, но makefile точно такой же.

4. «правило, сгенерированное в makefile, неверно» — Можете ли вы указать, что на самом деле является результатом? И что вы ожидаете от этого?

5. @JarMan Я отредактировал вопрос, чтобы добавить вывод makefile. Я не ожидаю, что это будет что-то конкретное, просто что-то, что является действительным правилом 🙂 Мне все равно, как qmake это делает, в этом смысл его использования в первую очередь…