Qt Subdirs, где один проект генерирует исходные / заголовочные файлы, используемые в другом проекте

У меня есть проект Qt, который содержит много подпроектов. У меня возникла проблема, когда один из проектов генерирует файлы (файлы.cpp и.h), которые используются в нескольких других проектах. Вот пример структуры каталогов:

src
 \- master.pro
 \- project1
     \- project1.pro
      - myHeader.h <generated AFTER project1.pro runs>
      - mySource.cpp <generated AFTER project1.pro runs>
 \- project2
     \- project2.pro <needs to include mySource.cpp>
      - main.cpp <includes myHeader.h>
 \- project3
     \- project3.pro <needs to include mySource.cpp>
      - main.cpp <includes myHeader.h>

Чтобы быть немного более конкретным, project2 а также project3 выше фактически серверные и клиентские проекты соответственно, и они используют вызовы RPC для связи между двумя программами. Для генерации RPC-файлов, необходимых для обоих вышеуказанных проектов 2/3, я создал project1 запустить команды компилятора midl.exe.

Если я скомпилирую project1 сначала вручную, потом компилируем project2 а также project3 вручную то все работает нормально. Тем не менее, если я положу три проекта в Qt subdirs проект и есть проект2 / 3, зависящий от проекта1, он не работает. Проблема заключается в том, что при запуске qmake в проекте 2/3 сгенерированные файлы еще не существуют, но эти файлы СУЩЕСТВУЮТ после фактической компиляции project1.

Так есть ли способ как-то объединить все три проекта в один проект subdirs и как-то "отложить" qmake на зависимые проекты? или, может быть, сделать так, чтобы зависимые проекты знали, что эти файлы могут не существовать во время qmake, но будут существовать во время компиляции?

Спасибо заранее за любые советы.

редактировать

Просто немного больше информации. Вот то, что мой master.pro файл выглядит как

TEMPLATE = subdirs

SUBDIRS += project1 project2 project3

project1.file = $$PWD/project1/project1.pro
project2.file = $$PWD/project2/project2.pro
project2.depends = project1
project3.file = $$PWD/project3/project3.pro
project3.depends = project1

0 ответов

Другие вопросы по тегам