Ну, на самом деле это не то, как все должно быть сделано (так как qmake
никогда не позволяет передавать свои переменные в подпроекты SUBDIRS
), так что в конечном итоге вы можете получить два отдельных экземпляра child_common
. Однако, если все ваши проекты принадлежат одному и тому же поддереву каталога, вы можете использовать файл кэша qmake следующим образом.
Сначала создайте пустой файл кэша в вашем общем корневом подкаталоге: touch .qmake.cache
(или .qmake.stash
, или .qmake.super
). Затем добавьте следующее во все ваши «родительские» проекты:
MY_VAR = A # or B
cache(MY_VAR, set) # or "set stash", or "set super"
Теперь MY_VAR
должно быть видно внутри любого из ваших подпроектов, если файл кеша существует в родительском каталоге. Но обратите внимание, что изменения содержимого кэша автоматически не подразумевают перестройку (под) проекта.