# Build Tizen project according gbs.conf and .spec file

# Mandatory parameters:
# - LOCAL_GBS_PATH
# - LOCAL_PROJECTS
# - LOCAL_TEE
# - LOCAL_PLATFORM_VERSION

_sdk_dir := $(realpath $(dir $(lastword $(MAKEFILE_LIST))))

include $(_sdk_dir)/path-utilities.mk

ifeq ($(LOCAL_GBS_PATH),)
  $(error LOCAL_GBS_PATH is empty)
endif

ifeq ($(LOCAL_PROJECTS),)
  $(error LOCAL_PROJECTS is empty)
endif

ifeq ($(LOCAL_TEE),)
  LOCAL_PLATFORM_VERSION := mobicore
endif

ifeq ($(LOCAL_PLATFORM_VERSION),)
  LOCAL_PLATFORM_VERSION := r770
endif

ifeq ($(LOCAL_OUT),)
  LOCAL_OUT := ./out/tizen
endif

ifeq ($(LOCAL_GBS_CONFIG_PATH),)
  LOCAL_GBS_CONFIG_PATH := packaging
endif

# Remove a possible leading slash.
LOCAL_PROJECTS := $(LOCAL_PROJECTS:/=)
LOCAL_GBS_CONFIG_PATH := $(LOCAL_GBS_CONFIG_PATH:/=)

# FLAGS to be exported to CMake
LOCAL_CFLAGS := $(strip $(LOCAL_CFLAGS:-D%=%))

.PHONY: build
build: _gbs_action = 
build: $(LOCAL_PROJECTS)

.PHONY: $(LOCAL_PROJECTS)
$(LOCAL_PROJECTS): LOCAL_GBS_PATH := $(LOCAL_GBS_PATH)
$(LOCAL_PROJECTS): LOCAL_PROJECTS := $(LOCAL_PROJECTS)
$(LOCAL_PROJECTS): LOCAL_PLATFORM_VERSION := $(LOCAL_PLATFORM_VERSION)
$(LOCAL_PROJECTS): LOCAL_TEE := $(LOCAL_TEE)
$(LOCAL_PROJECTS): LOCAL_CFLAGS := $(LOCAL_CFLAGS)
$(LOCAL_PROJECTS): LOCAL_GBS_CONFIG_PATH := $(LOCAL_GBS_CONFIG_PATH)
$(LOCAL_PROJECTS): 
	@ echo "Project: $(@) -> Run GBS build...";
	for x in $(LOCAL_CFLAGS); do \
		IFS=\'\' export $$x; \
	done; \
	$(_sdk_dir)/build-tizen.sh \
	${LOCAL_GBS_PATH} \
	${LOCAL_PROJECTS} \
	${LOCAL_PLATFORM_VERSION} \
	${LOCAL_TEE} \
	${LOCAL_OUT} \
	$(LOCAL_GBS_CONFIG_PATH)

##############
# Clear vars #
##############

include $(_sdk_dir)/clear-vars.mk
