Update autobuild script to create new targets sandbox/DDTLK/autobuild
authorFrederic Marec <frederic.marec@iot.bzh>
Mon, 2 Dec 2019 14:14:47 +0000 (15:14 +0100)
committerFrederic Marec <frederic.marec@iot.bzh>
Thu, 6 Feb 2020 10:14:04 +0000 (11:14 +0100)
Update autobuild script to create multiple widget target debug, coverage and all

Bug-AGL: SPEC-2049
Signed-off-by: Frederic Marec <frederic.marec@iot.bzh>
Change-Id: I0541b22913659415d173ddb39102b55fca56e8ba

autobuild/agl/autobuild
autobuild/linux/autobuild [deleted file]

index b306eb0..403b967 100755 (executable)
@@ -18,7 +18,7 @@ THISFILE  := $(lastword $(MAKEFILE_LIST))
 BUILD_DIR := $(abspath $(dir $(THISFILE))/../../build)
 DEST      := ${BUILD_DIR}
 
-.PHONY: all clean distclean configure build package help update
+.PHONY: all clean distclean configure build package help update configure-debug configure-coverage build-debug build-coverage package-test package-debug package-coverage package-debug package-debug-test package-coverage-test package-all package-all-1 package-all-2
 
 all: help
 
@@ -36,6 +36,9 @@ help:
        @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"
 
+update: configure
+       @cmake --build ${BUILD_DIR} --target autobuild
+
 clean:
        @([ -d ${BUILD_DIR} ] && make -C ${BUILD_DIR} ${CLEAN_ARGS} clean) || echo Nothing to clean
 
@@ -44,11 +47,32 @@ distclean:
 
 configure:
        @[ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR}
-       @[ -f ${BUILD_DIR}/Makefile ] || (cd ${BUILD_DIR} && cmake ${CONFIGURE_ARGS} ..)
+       @[ -f ${BUILD_DIR}/Makefile ] || (cd ${BUILD_DIR} && cmake -DCMAKE_BUILD_TYPE=RELEASE ${CONFIGURE_ARGS} ..)
+
+configure-test:
+       @[ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR}
+       @[ -f ${BUILD_DIR}/Makefile ] || (cd ${BUILD_DIR} && cmake -DCMAKE_BUILD_TYPE=RELEASE ${CONFIGURE_ARGS} ..)
+
+configure-debug:
+       @[ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR}
+       @[ -f ${BUILD_DIR}/Makefile ] || (cd ${BUILD_DIR} && cmake -DCMAKE_BUILD_TYPE=DEBUG ${CONFIGURE_ARGS} ..)
+
+configure-coverage:
+       @[ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR}
+       @[ -f ${BUILD_DIR}/Makefile ] || (cd ${BUILD_DIR} && cmake -DCMAKE_BUILD_TYPE=COVERAGE ${CONFIGURE_ARGS} ..)
 
 build: configure
        @cmake --build ${BUILD_DIR} ${BUILD_ARGS} --target all
 
+build-test: configure-test
+       @cmake --build ${BUILD_DIR} ${BUILD_ARGS} --target all
+
+build-debug: configure-debug
+       @cmake --build ${BUILD_DIR} ${BUILD_ARGS} --target all
+
+build-coverage: configure-coverage
+       @cmake --build ${BUILD_DIR} ${BUILD_ARGS} --target all
+
 package: build
        @mkdir -p ${BUILD_DIR}/$@/bin
        @mkdir -p ${BUILD_DIR}/$@/etc
@@ -59,7 +83,79 @@ package: build
        @if [ "${DEST}" != "${BUILD_DIR}" ]; then \
                mkdir -p ${DEST} && cp ${BUILD_DIR}/*.wgt ${DEST}; \
        fi
+       @rm ${BUILD_DIR}/Makefile
+       @rm ${BUILD_DIR}/CMakeCache.txt
+
+package-test: build-test
+       @mkdir -p ${BUILD_DIR}/$@/bin
+       @mkdir -p ${BUILD_DIR}/$@/etc
+       @mkdir -p ${BUILD_DIR}/$@/lib
+       @mkdir -p ${BUILD_DIR}/$@/htdocs
+       @mkdir -p ${BUILD_DIR}/$@/var
+       @cmake --build ${BUILD_DIR} ${PACKAGE_ARGS} --target widget
+       @cmake --build ${BUILD_DIR} ${PACKAGE_ARGS} --target test_widget
+       @if [ "${DEST}" != "${BUILD_DIR}" ]; then \
+               mkdir -p ${DEST} && cp ${BUILD_DIR}/*.wgt ${DEST}; \
+       fi
+       @rm ${BUILD_DIR}/Makefile
+       @rm ${BUILD_DIR}/CMakeCache.txt
+
+package-debug: build-debug
+       @mkdir -p ${BUILD_DIR}/$@/bin
+       @mkdir -p ${BUILD_DIR}/$@/etc
+       @mkdir -p ${BUILD_DIR}/$@/lib
+       @mkdir -p ${BUILD_DIR}/$@/htdocs
+       @mkdir -p ${BUILD_DIR}/$@/var
+       @cmake --build ${BUILD_DIR} ${PACKAGE_ARGS} --target widget
+       @if [ "${DEST}" != "${BUILD_DIR}" ]; then \
+               mkdir -p ${DEST} && cp ${BUILD_DIR}/*.wgt ${DEST}; \
+       fi
+       @rm ${BUILD_DIR}/Makefile
+       @rm ${BUILD_DIR}/CMakeCache.txt
+
+package-coverage: build-coverage
+       @mkdir -p ${BUILD_DIR}/$@/bin
+       @mkdir -p ${BUILD_DIR}/$@/etc
+       @mkdir -p ${BUILD_DIR}/$@/lib
+       @mkdir -p ${BUILD_DIR}/$@/htdocs
+       @mkdir -p ${BUILD_DIR}/$@/var
+       @cmake --build ${BUILD_DIR} ${PACKAGE_ARGS} --target widget
+       @if [ "${DEST}" != "${BUILD_DIR}" ]; then \
+               mkdir -p ${DEST} && cp ${BUILD_DIR}/*.wgt ${DEST}; \
+       fi
+       @rm ${BUILD_DIR}/Makefile
+       @rm ${BUILD_DIR}/CMakeCache.txt
+
+package-coverage-test: build-coverage
+       @mkdir -p ${BUILD_DIR}/$@/bin
+       @mkdir -p ${BUILD_DIR}/$@/etc
+       @mkdir -p ${BUILD_DIR}/$@/lib
+       @mkdir -p ${BUILD_DIR}/$@/htdocs
+       @mkdir -p ${BUILD_DIR}/$@/var
+       @cmake --build ${BUILD_DIR} ${PACKAGE_ARGS} --target widget
+       @cmake --build ${BUILD_DIR} ${PACKAGE_ARGS} --target test_widget
+       @if [ "${DEST}" != "${BUILD_DIR}" ]; then \
+               mkdir -p ${DEST} && cp ${BUILD_DIR}/*.wgt ${DEST}; \
+       fi
+       @rm ${BUILD_DIR}/Makefile
+       @rm ${BUILD_DIR}/CMakeCache.txt
+
+
+package-debug-test: build-debug
+       @mkdir -p ${BUILD_DIR}/$@/bin
+       @mkdir -p ${BUILD_DIR}/$@/etc
+       @mkdir -p ${BUILD_DIR}/$@/lib
+       @mkdir -p ${BUILD_DIR}/$@/htdocs
+       @mkdir -p ${BUILD_DIR}/$@/var
+       @cmake --build ${BUILD_DIR} ${PACKAGE_ARGS} --target widget
+       @cmake --build ${BUILD_DIR} ${PACKAGE_ARGS} --target test_widget
+       @if [ "${DEST}" != "${BUILD_DIR}" ]; then \
+               mkdir -p ${DEST} && cp ${BUILD_DIR}/*.wgt ${DEST}; \
+       fi
+       @rm ${BUILD_DIR}/Makefile
+       @rm ${BUILD_DIR}/CMakeCache.txt
+
+package-all: package package-test package-coverage package-debug
 
 install: build
        @cmake --build ${BUILD_DIR} ${INSTALL_ARGS} --target install
-
diff --git a/autobuild/linux/autobuild b/autobuild/linux/autobuild
deleted file mode 100755 (executable)
index 035db15..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/make -f
-# Copyright (C) 2015, 2016 "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}/target
-
-.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 ${CMAKE_INSTALL_DIR} directory"
-       @echo ""
-       @echo "Usage: ./conf.d/autobuild/agl/autobuild package DEST=${HOME}/opt"
-       @echo "Don't use your build dir as DEST as wgt file is generated at this location"
-
-update: configure
-       @cmake --build ${BUILD_DIR} --target autobuild
-
-clean:
-       @([ -d ${BUILD_DIR} ] && make -C ${BUILD_DIR} clean) || echo Nothing to clean
-
-distclean:
-       @rm -rf ${BUILD_DIR}
-
-configure: ${BUILD_DIR}/Makefile
-
-build: configure
-       @cmake --build ${BUILD_DIR} ${BUILD_ARGS} --target all
-
-package: build
-       @mkdir -p ${BUILD_DIR}/$@/bin
-       @mkdir -p ${BUILD_DIR}/$@/etc
-       @mkdir -p ${BUILD_DIR}/$@/lib
-       @mkdir -p ${BUILD_DIR}/$@/htdocs
-       @mkdir -p ${BUILD_DIR}/$@/data
-       @cmake --build ${BUILD_DIR} --target widget
-       @mkdir -p ${DEST} && cp ${BUILD_DIR}/*wgt ${DEST}
-
-install: build
-       @cmake --build ${BUILD_DIR} --target install
-
-${BUILD_DIR}/Makefile:
-       @[ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR}
-       @[ -f ${BUILD_DIR}/Makefile ] || (cd ${BUILD_DIR} && cmake ${CONFIGURE_ARGS} ..)