ОПИСАНИЕ ПРИМЕРА

В этом разделе рассказывается об особенностях работы в Photon Application Builder (PhAB), если PhAB-приложение включено в состав Make-Effect проекта.

В качестве примера взят проект, который состоит из двух продпроектов: логика приложения - AppLogic (консольное приложение) и графический интерфейс - AppGUI (приложение PhAB)

Дерево каталогов проекта частично создается вручную, а частично генерируется PhAB. Вручную необходимо создать структуру какталогов так, как показано на рисунке ниже:

Новое приложение PhAB необходимо создать (PhAB -> File -> New; File -> Save As) в рамках дерева каталогов проекта, например, в подкаталоге src

В новом PhAB проекте следует отключить опцию по созданию файла proto.h (PhAB -> Application -> Startup Info / Modules):

Следующим шагом необходимо выполнить генерацию проекта средствами PhAB и создать пустой файл proto.h вручную в каталоге исходных кодов PhAB проекта.

Создание структуры закончено.

Далее создается проект Make-Effect.

В терминальном окне следует перейти в главный каталог проекта PhABProject и создать конфигурационный файл Make-Effect:

$ me-create -conf

Создать проект:

$ me-create -project

Подключить подпроекты, изменив параметр base_subprojs_dirs главного make-файла проекта PhABProject/Makefile :

base_subprojs_dirs = src/AppLogic src/AppGUI

Выполнить сборку проекта (здесь пропущен необязательный для данного простого проекта шаг по созданию make-файлов подпроектов):

make build

В процессе выполнения команды будет задан вопрос о том, какой из шаблонов для создания make-файла следует использовать (в дальнейшем этот вопрос задаваться не будет). Для подпроекта AppLogic следует следует выбирать вариант # 1 (консольное приложение), для продпроекта AppGUI - вариант # 2 (приложение PhAB).

В результате сборки в подкаталоге PhABProject/Debug/bin будут созданы исполняемые файлы AppGUI и AppLogic

Для того, чтобы нажатие стандартной кнопки в PhAB приводило к сборке всего проекта и обновлению файлов в подкаталоге PhABProject/<имя сессии>/bin (а не в PhABProject/src/AppLogic/src/10.6 как по-умолчанию), необходимо откорректировать make-файл PhABProject/src/AppLogic/src/Makefile так, как показано ниже:

include abplatform

DIRS = ../../..

shr:
    for i in ${DIRS} ; do (cd $$i; $(MAKE) build) ; done

app:
    for i in ${DIRS} ; do (cd $$i; $(MAKE) build) ; done

proto:
    for i in ${DIRS} ; do (cd $$i; $(MAKE) build) ; done

clean:
    for i in ${DIRS} ; do (cd $$i; $(MAKE) clean) ; done

install:
    for i in ${DIRS} ; do (cd $$i; $(MAKE) install) ; done