diff options
author | Scott Rifenbark <srifenbark@gmail.com> | 2019-04-08 14:26:51 -0700 |
---|---|---|
committer | Scott Rifenbark <srifenbark@gmail.com> | 2019-04-08 14:26:51 -0700 |
commit | 7061edf1849de1bb1730df92d23aa52a6793a609 (patch) | |
tree | 5e3414e134d65d6dbc15cf44c1811a2b464352f3 /docs/dev_guide/5_autobuild.md | |
parent | 4bbfea69dd78079ec3379268a12a552930d4314f (diff) |
CMake: Complete re-write of the CMake topic.guppy_7.0.2guppy/7.0.27.0.2
Change-Id: I97c3a450401b87b8419ff00615588c261e6afc25
Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Diffstat (limited to 'docs/dev_guide/5_autobuild.md')
-rw-r--r-- | docs/dev_guide/5_autobuild.md | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/docs/dev_guide/5_autobuild.md b/docs/dev_guide/5_autobuild.md deleted file mode 100644 index 6977e09..0000000 --- a/docs/dev_guide/5_autobuild.md +++ /dev/null @@ -1,130 +0,0 @@ -# Autobuild script - -The Applications based on AGL framework should have a full packaging solution, -independently of yocto workflow. - -Unfortunately the build part of the Applications is only in documentation or in -yocto recipes. - -The Applications build with AGL framework must be automated without any yocto -recipes. - -A script named **autobuild** is used to control applications build operations. -The bbclass aglwgt.bbclass will call the **autobuild** script for all operations -and is located at the top level of the application repository. - -This script could be written in one of the following languages: - -* Makefile -* Bash -* Python - -The script will be executed directly after a chmod() on it (this implies that the caller should make the script executable before calling it: caller could be aglwgt.bbclass, a jenkins job, a 'real' developer ...) -An appropriate shebang is required to make the script callable directly: - -* '#!/usr/bin/make -f' for Makefile format, -* '#!/usr/bin/bash' for Bash -* etc. - -The calling convention is close to the one from make, in particular to pass arguments through env variables. This is also easy for bash, as a simple eval on arguments will set environment variables correctly. -The generic call has the following format: - -```bash -autobuild/agl/autobuild <command> [ARG1="value1" [ARG2="value2" ... ]] -``` - -autobuild can be invoked from any directory and all relative paths are -considered to be relative to the location of autobuild. - -For makefile scripts, this is the usual behaviour. - -For bash scripts, running a 'cd $(dirname $0)' at the beginning is mandatory. - -At build time, the following calls must be made in the following order: - -```bash -autobuild/agl/autobuild configure CONFIGURE_ARGS="..." -``` - -initializes the build environment (ex: if app uses cmake, the 'configure'' -step will run cmake) - -```bash -autobuild/agl/autobuild build BUILD_ARGS="...." -``` - -builds the application (compile, link binaries, assembles javascript etc.) - -```bash -autobuild/agl/autobuild package PACKAGE_ARGS="..." DEST=<path for resulting wgt -file(s)> -``` - -creates the widget package(s) in the specified destination path prepared by the -caller - -```bash -autobuild/agl/autobuild package-test PACKAGE_ARGS="..." DEST=<path for resulting wgt -file(s)> -``` - -creates the test widget package(s) in the specified destination path prepared by the -caller - -```bash -autobuild/agl/autobuild clean CLEAN_ARGS="..." -``` - -clean the built files (removes the result of autobuild build) - -```bash -autobuild/agl/autobuild distclean DISTCLEAN_ARGS="..." -``` - -clean everything (removes the result of autobuild build + autobuild configure) - -## Generation - -To be integrated in the Yocto build workflow you have to generate `autobuild` -scripts using _autobuild_ target. - -To generate those scripts proceeds: - -```bash -mkdir -p build -cd build -cmake .. && make autobuild -``` - -You should see _autobuild/agl/autobuild_ file now. - -## Available targets - -Here are the available targets available from _autobuild_ scripts: - -- **clean** : clean build directory from object file and targets results. -- **distclean** : delete build directory -- **configure** : generate project Makefile from CMakeLists.txt files. -- **build** : compile all project targets. -- **package** : build and output a wgt package. -- **package-test** : build and output the test wgt as well as the normal wgt - package. -- **install** : install the project in your filesystem - -You can specify variables that modify the behavior of compilation using -the following variables: - -- **CLEAN_ARGS** : Variable used at **clean** time. -- **DISTCLEAN_ARGS** : Variable used at **distclean** time. -- **CONFIGURE_ARGS** : Variable used at **configure** time. -- **BUILD_ARGS** : Variable used at **build** time. -- **DEST** : Directory where to output ***wgt*** file (default at build root - directory). - -Variable as to be in CMake format. (ie: BUILD_ARGS="-DC_FLAGS='-g -O2'") - -Usage example: - -```bash -./autobuild/wgt/autobuild package DEST=/tmp -``` |