autobuild: add autobuild scripts 51/20551/1
authorRaquel Medina <raquel.medina@konsulko.com>
Wed, 6 Mar 2019 15:33:35 +0000 (17:33 +0200)
committerRaquel Medina <raquel.medina@konsulko.com>
Mon, 11 Mar 2019 15:11:51 +0000 (17:11 +0200)
   The autobuild scripts provide an unified way
   to build agl apps & services; for the agl
   modules missing these scripts, a workaround is
   in place to warn of this scenario and allow
   for build completion.
   This commit add these missing scripts for hvac
   app withoud modifying the existing qmake files.
   The original scripts, which were designed for
   cmake use, are slimmed down and adapted to use
   qmake.

   - autobuild/agl/autobuild: allows aglwgt_package
   task to complete, eliminating the verbose
   warnings.
   - autobuild/linux/autobuild: allows to build
   the wgt file natively on linux using the agl
   sdk.

Change-Id: I609e59c2915833f44dbdfc006fba15a8841f3c5f
Bug-AGL: SPEC-2164
Signed-off-by: Raquel Medina <raquel.medina@konsulko.com>
autobuild/agl/autobuild [new file with mode: 0755]
autobuild/linux/autobuild [new file with mode: 0755]

diff --git a/autobuild/agl/autobuild b/autobuild/agl/autobuild
new file mode 100755 (executable)
index 0000000..a14fd78
--- /dev/null
@@ -0,0 +1,59 @@
+#!/usr/bin/make -f
+# Copyright (C) 2015 - 2018 "IoT.bzh"
+# Author "Romain Forlot" <romain.forlot@iot.bzh>
+#
+# 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))
+BUILD_DIR := $(abspath $(dir $(THISFILE))/../../build)
+DEST      := ${BUILD_DIR}
+
+.PHONY: all clean distclean configure build package help 
+
+all: help
+
+help:
+       @echo "List of targets available:"
+       @echo ""
+       @echo "- all"
+       @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 the path specified by the qmake project files"
+       @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"
+
+clean:
+       @([ -d ${BUILD_DIR} ] && make -C ${BUILD_DIR} ${CLEAN_ARGS} clean) || echo Nothing to clean
+
+distclean:
+       @([ -d ${BUILD_DIR} ] && make -C ${BUILD_DIR} distclean) || echo Nothing to distclean
+
+configure:
+       @[ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR}
+       @[ -f ${BUILD_DIR}/Makefile ] || (cd ${BUILD_DIR} && qmake ${CONFIGURE_ARGS} ..)
+
+build: configure
+       @make -C ${BUILD_DIR} ${BUILD_ARGS} all
+
+package: build
+       @mkdir -p ${DEST}
+       @if [ "${DEST}" != "${BUILD_DIR}/$@" ]; then \
+               cp ${BUILD_DIR}/$@/*.wgt ${DEST}; \
+       fi
+
+install: build
+       @make -C ${BUILD_DIR} ${INSTALL_ARGS} install
diff --git a/autobuild/linux/autobuild b/autobuild/linux/autobuild
new file mode 100755 (executable)
index 0000000..569d692
--- /dev/null
@@ -0,0 +1,62 @@
+#!/usr/bin/make -f
+# Copyright (C) 2015 - 2018 "IoT.bzh"
+# Author "Romain Forlot" <romain.forlot@iot.bzh>
+#
+# 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))
+BUILD_DIR := $(abspath $(dir $(THISFILE))/../../build)
+DEST      := ${BUILD_DIR}
+
+.PHONY: all clean distclean configure build package help update
+
+all: help
+
+help:
+        @echo "List of targets available:"
+        @echo ""
+        @echo "- all
+        @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 defined DEST 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" 
+
+ clean:
+        @([ -d ${BUILD_DIR} ] && make -C ${BUILD_DIR} ${CLEAN_ARGS} clean) || echo Nothing to clean
+
+distclean:
+        @[ -d ${DEST} ] && find ${DEST} -name "*.wgt" -delete
+        @([ -d ${BUILD_DIR} ] && make -C ${BUILD_DIR} distclean) || echo Nothing to distclean
+
+configure:
+        @[ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR}
+        @[ -f ${BUILD_DIR}/Makefile ] || (cd ${BUILD_DIR} && qmake ${CONFIGURE_ARGS} ..)
+
+build: configure
+        @make -C ${BUILD_DIR} ${BUILD_ARGS} all
+
+package: build
+        @if [ "${DEST}" != "${BUILD_DIR}/$@" ]; then \
+                mkdir -p ${DEST} && cp ${BUILD_DIR}/$@/*.wgt ${DEST}; \
+        fi
+
+install: build
+        @if [ "${DEST}" != "${BUILD_DIR}" ]; then \
+                mkdir -p ${DEST} && cp -rf ${BUILD_DIR}/package/root/* ${DEST}; \
+        fi
+