#############################################################
#
# google_cast
#
#############################################################

# TODO(nbegley): Investigate which of these definitions are no longer necessary.

GOOGLE_CAST_SITE = repo://google_cast

GOOGLE_CAST_DEPENDENCIES=\
	bcm_bseav bcm_nexus bcm_common bcm_rockford \
	google_miniclient libpng jpeg zlib freetype expat \
	libcurl libxml2 libxslt fontconfig boost cairo \
	avahi libcap libnss host-gyp host-ninja google_widevine_cenc

# This will result in defining a meaningful APPLIBS_TOP (which is required by
# the local build).
BCM_APPS_DIR=$(abspath $(@D))

GOOGLE_CAST_INSTALL_STAGING=NO
GOOGLE_CAST_INSTALL_TARGET=YES

PLATFORM=$(BR2_PACKAGE_BCM_COMMON_PLATFORM)
BCHP_VER_LOWER=$(shell echo $(BR2_PACKAGE_BCM_COMMON_PLATFORM_REV) | tr A-Z a-z)
BUILD_TYPE_LOWER=$(shell echo $(BUILD_TYPE) | tr A-Z a-z)

ifdef BR2_mipsel
BCM_ARCH=mips
B_REFSW_ARCH=mipsel-linux
else
BCM_ARCH=arm
B_REFSW_ARCH=arm-linux
endif

define GOOGLE_CAST_CONFIGURE_CMDS
	$(call BCM_COMMON_USE_BUILD_SYSTEM,$(@D))
endef

ifeq ($(BR2_CCACHE),y)
    GOOGLE_CAST_CCACHE="WEBKITGL_CCACHE=y"
else
    GOOGLE_CAST_CCACHE="WEBKITGL_CCACHE=n"
endif

define GOOGLE_CAST_BUILD_CMDS
	$(BCM_MAKE_ENV) $(MAKE) \
		$(BCM_MAKEFLAGS) \
		-C $(@D)/build \
                -f Makefile.oemlibs \
		$(GOOGLE_CAST_CCACHE) \
		PYTHONDONTOPTIMIZE="0" \
		BUILD_DIR=$(BUILD_DIR)
endef

define GOOGLE_CAST_BUILD_TEST_CMDS
	$(BCM_MAKE_ENV) $(MAKE) \
		$(BCM_MAKEFLAGS) \
		-C $(@D)/build \
		$(GOOGLE_CAST_CCACHE) \
		PYTHONDONTOPTIMIZE="0" \
		unittests
endef

define GOOGLE_CAST_INSTALL_TARGET_CMDS
	mkdir -p $(TARGET_DIR)/chrome/lib/
	mkdir -p $(TARGET_DIR)/oem_cast_shlib/

	# TODO(sfunkenhauser): Remove these once this path is no longer
	# hard-coded in drm_context.cc.
	ln -sf /user/drm $(TARGET_DIR)/data

	$(call GOOGLE_CAST_INSTALL_BINARIES)
endef

define GOOGLE_CAST_INSTALL_BINARIES
	cp -afr $(@D)/bin/$(BR2_PACKAGE_BCM_COMMON_PLATFORM)/cast_binaries/* $(TARGET_DIR)/chrome/
	cp -af $(@D)/target/$(PLATFORM)$(BCHP_VER_LOWER).$(B_REFSW_ARCH).$(BUILD_TYPE_LOWER)/bin/logwrapper $(TARGET_DIR)/bin/logwrapper
	cp -afr $(@D)/target/$(PLATFORM)$(BCHP_VER_LOWER).$(B_REFSW_ARCH).$(BUILD_TYPE_LOWER)/chrome/* $(TARGET_DIR)/chrome/
	cp -afr $(@D)/target/$(PLATFORM)$(BCHP_VER_LOWER).$(B_REFSW_ARCH).$(BUILD_TYPE_LOWER)/oem_cast_shlib/* $(TARGET_DIR)/oem_cast_shlib/

	mv $(TARGET_DIR)/chrome/chrome_sandbox $(TARGET_DIR)/chrome/chrome-sandbox

	$(INSTALL) -D -m 0644 $(@D)/bin/$(BR2_PACKAGE_BCM_COMMON_PLATFORM)/scripts/process.json $(TARGET_DIR)/chrome/process.json
	$(INSTALL) -D -m 0755 $(@D)/build/S99cast.process_manager $(TARGET_DIR)/etc/init.d/S99cast.process_manager
	$(INSTALL) -D -m 0755 $(@D)/build/start_cast_process_manager $(TARGET_DIR)/chrome/start_cast_process_manager
	$(INSTALL) -D -m 0755 $(@D)/build/start_cast_shell $(TARGET_DIR)/chrome/start_cast_shell
	$(INSTALL) -D -m 0755 $(@D)/build/start_cert_fetcher $(TARGET_DIR)/chrome/start_cert_fetcher

	chmod 4755 $(TARGET_DIR)/chrome/chrome-sandbox
endef

$(eval $(call GENTARGETS))
