From 1f8b24f7ab5a58c99baed58c8a297bb325752b9f Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Wed, 10 Jun 2020 12:19:02 -0400 Subject: alexa-voiceagent-service: Add patch to add autobuild scripts Add autobuild scripts to alexa-voiceagent-service via a patch to prepare for a switch to building all widgets via calls to autobuid. Bug-AGL: SPEC-2049, SPEC-3300 Signed-off-by: Scott Murray Change-Id: Ia1a3ea814bca5429848055db8350ad37cae9517a --- .../0007-add-autobuild-scripts.patch | 286 +++++++++++++++++++++ .../alexa-voiceagent-service_git.bb | 1 + 2 files changed, 287 insertions(+) create mode 100644 meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voiceagent-service/0007-add-autobuild-scripts.patch diff --git a/meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voiceagent-service/0007-add-autobuild-scripts.patch b/meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voiceagent-service/0007-add-autobuild-scripts.patch new file mode 100644 index 00000000..5886709b --- /dev/null +++ b/meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voiceagent-service/0007-add-autobuild-scripts.patch @@ -0,0 +1,286 @@ +Add autobuild scripts + +Add autobuild scripts and update .gitignore to not ignore them. +The autobuild/agl/autobuild script will be required for building widgets +in AGL, add the latest version to the voiceagent source tree. + +Upstream-Status: Pending + +Signed-off-by: Scott Murray + +diff --git a/.gitignore b/.gitignore +index b3c1108..edbf1b5 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -1,3 +1,2 @@ +-autobuild/ + build/ + alexa-voiceagent-apidef.h +diff --git a/autobuild/agl/autobuild b/autobuild/agl/autobuild +new file mode 100755 +index 0000000..16181b8 +--- /dev/null ++++ b/autobuild/agl/autobuild +@@ -0,0 +1,128 @@ ++#!/usr/bin/make -f ++# Copyright (C) 2015 - 2018 "IoT.bzh" ++# Copyright (C) 2020 Konsulko Group ++# Author "Romain Forlot" ++# ++# Licensed under the Apache License, Version 2.0 (the "License"); ++# you may not use this file except in compliance with the License. ++# You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, software ++# distributed under the License is distributed on an "AS IS" BASIS, ++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++# See the License for the specific language governing permissions and ++# limitations under the License. ++ ++THISFILE := $(lastword $(MAKEFILE_LIST)) ++ROOT_DIR := $(abspath $(dir $(THISFILE))/../..) ++ ++# Build directories ++# Note that the debug/test/coverage directories are defined in relation ++# to the release directory (BUILD_DIR), this needs to be kept in mind ++# if over-riding it and building those widget types, the specific widget ++# type variable (e.g. BUILD_DIR_DEBUG) may also need to be specified ++# to yield the desired output hierarchy. ++BUILD_DIR = $(ROOT_DIR)/build ++BUILD_DIR_DEBUG = $(abspath $(BUILD_DIR)/../build-debug) ++BUILD_DIR_TEST = $(abspath $(BUILD_DIR)/../build-test) ++BUILD_DIR_COVERAGE = $(abspath $(BUILD_DIR)/../build-coverage) ++ ++# Output directory variable for use in pattern rules. ++# This is intended for internal use only, hence the explicit override ++# definition. ++override OUTPUT_DIR = $(BUILD_DIR) ++ ++# Final install directory for widgets ++DEST = $(OUTPUT_DIR) ++ ++# Default build type for release/test builds ++BUILD_TYPE = RELEASE ++ ++.PHONY: all help update install distclean ++.PHONY: clean clean-release clean-debug clean-test clean-coverage clean-all ++.PHONY: configure configure-release configure-debug configure-test configure-coverage ++.PHONY: build build-release build-debug build-test build-coverage build-all ++.PHONY: package package-release package-debug package-test package-coverage package-all ++ ++help: ++ @echo "List of targets available:" ++ @echo "" ++ @echo "- all" ++ @echo "- help" ++ @echo "- clean" ++ @echo "- distclean" ++ @echo "- configure" ++ @echo "- build: compilation, link and prepare files for package into a widget" ++ @echo "- package: output a widget file '*.wgt'" ++ @echo "- install: install in your $(CMAKE_INSTALL_DIR) directory" ++ @echo "" ++ @echo "Usage: ./autobuild/agl/autobuild package DEST=${HOME}/opt" ++ @echo "Don't use your build dir as DEST as wgt file is generated at this location" ++ ++all: package-all ++ ++# Target specific variable over-rides so static pattern rules can be ++# used for the various type-specific targets. ++ ++configure-test build-test package-test clean-test: OUTPUT_DIR = $(BUILD_DIR_TEST) ++ ++configure-coverage build-coverage package-coverage clean-coverage: OUTPUT_DIR = $(BUILD_DIR_COVERAGE) ++configure-coverage build-coverage package-coverage: BUILD_TYPE = COVERAGE ++ ++configure-debug build-debug package-debug clean-debug: OUTPUT_DIR = $(BUILD_DIR_DEBUG) ++configure-debug build-debug package-debug: BUILD_TYPE = DEBUG ++ ++clean-release clean-test clean-debug clean-coverage: ++ @if [ -d $(OUTPUT_DIR) ]; then \ ++ $(MAKE) -C $(OUTPUT_DIR) $(CLEAN_ARGS) clean; \ ++ else \ ++ echo Nothing to clean; \ ++ fi ++ ++clean: clean-release ++ ++clean-all: clean-release clean-test clean-debug clean-coverage ++ ++distclean: clean-all ++ ++configure-release configure-test configure-debug configure-coverage: ++ @mkdir -p $(OUTPUT_DIR) ++ @if [ ! -f $(OUTPUT_DIR)/Makefile ]; then \ ++ (cd $(OUTPUT_DIR) && cmake -S $(ROOT_DIR) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) $(CONFIGURE_ARGS)); \ ++ fi ++ ++configure: configure-release ++ ++build-release build-debug build-coverage: build-%: configure-% ++ @cmake --build $(OUTPUT_DIR) $(BUILD_ARGS) --target all ++ ++# Kept for consistency, empty to avoid building everything for test widget ++build-test: configure-test ++ ++build: build-release ++ ++build-all: build-release build-debug build-test build-coverage ++ ++package-release package-debug package-coverage: package-%: build-% ++ @cmake --build $(OUTPUT_DIR) $(PACKAGE_ARGS) --target widget ++ @if [ "$(abspath $(DEST))" != "$(abspath $(OUTPUT_DIR))" ]; then \ ++ mkdir -p $(DEST) && cp $(OUTPUT_DIR)/*.wgt $(DEST); \ ++ fi ++ ++package-test: build-test ++ @cmake --build $(OUTPUT_DIR) $(PACKAGE_ARGS) --target test_widget ++ @if [ "$(abspath $(DEST))" != "$(abspath $(OUTPUT_DIR))" ]; then \ ++ mkdir -p $(DEST) && cp $(OUTPUT_DIR)/*.wgt $(DEST); \ ++ fi ++ ++package: package-release ++ ++package-all: package-release package-test package-coverage package-debug ++ ++update: configure ++ @cmake --build $(BUILD_DIR) --target autobuild ++ ++install: build ++ @cmake --build $(BUILD_DIR) $(INSTALL_ARGS) --target install +diff --git a/autobuild/linux/autobuild b/autobuild/linux/autobuild +new file mode 100755 +index 0000000..16181b8 +--- /dev/null ++++ b/autobuild/linux/autobuild +@@ -0,0 +1,128 @@ ++#!/usr/bin/make -f ++# Copyright (C) 2015 - 2018 "IoT.bzh" ++# Copyright (C) 2020 Konsulko Group ++# Author "Romain Forlot" ++# ++# Licensed under the Apache License, Version 2.0 (the "License"); ++# you may not use this file except in compliance with the License. ++# You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, software ++# distributed under the License is distributed on an "AS IS" BASIS, ++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++# See the License for the specific language governing permissions and ++# limitations under the License. ++ ++THISFILE := $(lastword $(MAKEFILE_LIST)) ++ROOT_DIR := $(abspath $(dir $(THISFILE))/../..) ++ ++# Build directories ++# Note that the debug/test/coverage directories are defined in relation ++# to the release directory (BUILD_DIR), this needs to be kept in mind ++# if over-riding it and building those widget types, the specific widget ++# type variable (e.g. BUILD_DIR_DEBUG) may also need to be specified ++# to yield the desired output hierarchy. ++BUILD_DIR = $(ROOT_DIR)/build ++BUILD_DIR_DEBUG = $(abspath $(BUILD_DIR)/../build-debug) ++BUILD_DIR_TEST = $(abspath $(BUILD_DIR)/../build-test) ++BUILD_DIR_COVERAGE = $(abspath $(BUILD_DIR)/../build-coverage) ++ ++# Output directory variable for use in pattern rules. ++# This is intended for internal use only, hence the explicit override ++# definition. ++override OUTPUT_DIR = $(BUILD_DIR) ++ ++# Final install directory for widgets ++DEST = $(OUTPUT_DIR) ++ ++# Default build type for release/test builds ++BUILD_TYPE = RELEASE ++ ++.PHONY: all help update install distclean ++.PHONY: clean clean-release clean-debug clean-test clean-coverage clean-all ++.PHONY: configure configure-release configure-debug configure-test configure-coverage ++.PHONY: build build-release build-debug build-test build-coverage build-all ++.PHONY: package package-release package-debug package-test package-coverage package-all ++ ++help: ++ @echo "List of targets available:" ++ @echo "" ++ @echo "- all" ++ @echo "- help" ++ @echo "- clean" ++ @echo "- distclean" ++ @echo "- configure" ++ @echo "- build: compilation, link and prepare files for package into a widget" ++ @echo "- package: output a widget file '*.wgt'" ++ @echo "- install: install in your $(CMAKE_INSTALL_DIR) directory" ++ @echo "" ++ @echo "Usage: ./autobuild/agl/autobuild package DEST=${HOME}/opt" ++ @echo "Don't use your build dir as DEST as wgt file is generated at this location" ++ ++all: package-all ++ ++# Target specific variable over-rides so static pattern rules can be ++# used for the various type-specific targets. ++ ++configure-test build-test package-test clean-test: OUTPUT_DIR = $(BUILD_DIR_TEST) ++ ++configure-coverage build-coverage package-coverage clean-coverage: OUTPUT_DIR = $(BUILD_DIR_COVERAGE) ++configure-coverage build-coverage package-coverage: BUILD_TYPE = COVERAGE ++ ++configure-debug build-debug package-debug clean-debug: OUTPUT_DIR = $(BUILD_DIR_DEBUG) ++configure-debug build-debug package-debug: BUILD_TYPE = DEBUG ++ ++clean-release clean-test clean-debug clean-coverage: ++ @if [ -d $(OUTPUT_DIR) ]; then \ ++ $(MAKE) -C $(OUTPUT_DIR) $(CLEAN_ARGS) clean; \ ++ else \ ++ echo Nothing to clean; \ ++ fi ++ ++clean: clean-release ++ ++clean-all: clean-release clean-test clean-debug clean-coverage ++ ++distclean: clean-all ++ ++configure-release configure-test configure-debug configure-coverage: ++ @mkdir -p $(OUTPUT_DIR) ++ @if [ ! -f $(OUTPUT_DIR)/Makefile ]; then \ ++ (cd $(OUTPUT_DIR) && cmake -S $(ROOT_DIR) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) $(CONFIGURE_ARGS)); \ ++ fi ++ ++configure: configure-release ++ ++build-release build-debug build-coverage: build-%: configure-% ++ @cmake --build $(OUTPUT_DIR) $(BUILD_ARGS) --target all ++ ++# Kept for consistency, empty to avoid building everything for test widget ++build-test: configure-test ++ ++build: build-release ++ ++build-all: build-release build-debug build-test build-coverage ++ ++package-release package-debug package-coverage: package-%: build-% ++ @cmake --build $(OUTPUT_DIR) $(PACKAGE_ARGS) --target widget ++ @if [ "$(abspath $(DEST))" != "$(abspath $(OUTPUT_DIR))" ]; then \ ++ mkdir -p $(DEST) && cp $(OUTPUT_DIR)/*.wgt $(DEST); \ ++ fi ++ ++package-test: build-test ++ @cmake --build $(OUTPUT_DIR) $(PACKAGE_ARGS) --target test_widget ++ @if [ "$(abspath $(DEST))" != "$(abspath $(OUTPUT_DIR))" ]; then \ ++ mkdir -p $(DEST) && cp $(OUTPUT_DIR)/*.wgt $(DEST); \ ++ fi ++ ++package: package-release ++ ++package-all: package-release package-test package-coverage package-debug ++ ++update: configure ++ @cmake --build $(BUILD_DIR) --target autobuild ++ ++install: build ++ @cmake --build $(BUILD_DIR) $(INSTALL_ARGS) --target install diff --git a/meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voiceagent-service_git.bb b/meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voiceagent-service_git.bb index f0211552..abae3dec 100644 --- a/meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voiceagent-service_git.bb +++ b/meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voiceagent-service_git.bb @@ -28,6 +28,7 @@ SRC_URI = "git://github.com/alexa/alexa-auto-sdk.git;protocol=https;branch=2.0 \ file://0004-update-config-and-database-paths.patch \ file://0005-fix-segmentation-fault-for-release-build-mode.patch \ file://0006-fix-event-argument-json.patch \ + file://0007-add-autobuild-scripts.patch \ " SRCREV = "86916d2d8c1702a8be3c88a9012ca56583bcc0c8" -- cgit 1.2.3-korg