diff options
author | Romain Forlot <romain.forlot@iot.bzh> | 2019-01-03 17:43:32 +0100 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2019-01-10 13:28:20 +0000 |
commit | 08a8d17b9b73f59eaf77e3eff3ed0c56fc6b58e5 (patch) | |
tree | 858d66a761ac2a5a822afc084417284868f18335 | |
parent | 680af25d7b89e734b77ddad0f4e2d2a4d1bc8826 (diff) |
New installation instructions
New installation instructions for the appcontroller library
And remove the the submodule occurences.
Bug-AGL: SPEC-1689
Change-Id: Idaa6f9191ce521b551ddd7e7d4aa4430f0aeb399
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
-rw-r--r-- | CMakeLists.txt | 1 | ||||
-rw-r--r-- | ctl-lib/CMakeLists.txt | 2 | ||||
-rw-r--r-- | docs/Usage.md | 52 | ||||
-rw-r--r-- | docs/controller.md | 51 | ||||
-rw-r--r-- | docs/controllerConfig.md | 4 |
5 files changed, 86 insertions, 24 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 9804022..6ba9dbe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,7 +16,6 @@ # limitations under the License. ########################################################################### -# This component should be included as a submodule and wont compile as standalone CMAKE_MINIMUM_REQUIRED(VERSION 3.3) include(GNUInstallDirs) add_subdirectory("ctl-lib") diff --git a/ctl-lib/CMakeLists.txt b/ctl-lib/CMakeLists.txt index 4ca83cc..914e11c 100644 --- a/ctl-lib/CMakeLists.txt +++ b/ctl-lib/CMakeLists.txt @@ -18,7 +18,7 @@ set(TARGET_NAME "ctl-utilities") set(PROJECT_PRETTY_NAME "Controller") set(PROJECT_DESCRIPTION "controller") -set(PROJECT_URL "https://gerrit.automotivelinux.org:29418/apps/app-controller-submodule") +set(PROJECT_URL "https://gerrit.automotivelinux.org:29418/src/libappcontroller") set(PROJECT_AUTHOR "Ar Foll, Fulup") set(PROJECT_AUTHOR_MAIL "fulup@iot.bzh") set(PROJECT_LICENSE "APL2.0") diff --git a/docs/Usage.md b/docs/Usage.md index 65f1ce9..e64c533 100644 --- a/docs/Usage.md +++ b/docs/Usage.md @@ -1,22 +1,50 @@ # Usage -## 1) Add app-controller-submodule as a submodule to include in your project +## (Optional) Remove the git submodule version + +If you already use the controller component but use the submodule version then +you have to get rid of it to be sure to link and use the library version. To do +so, you have to do the following: + +* deinitialize the submodule using `git` ```bash -git submodule add https://gerrit.automotivelinux.org/gerrit/apps/app-controller-submodule +# This example assumes that the git submodule is named app-afb-helpers-submodule +# and is located at your root project repository. +git submodule deinit app-afb-helpers-submodule ``` -## 2) Add app-controller-submodule as a static library to your binding +* remove the relative submodule lines from the `.gitmodules` file -```cmake - # Library dependencies (include updates automatically) - TARGET_LINK_LIBRARIES(${TARGET_NAME} - ctl-utilities - ... other dependencies .... +```bash +vim .gitmodules +``` + +* remove the `ctl-utilities` target link from any CMake target you specified. + Those lines look like: + +```bash +TARGET_LINK_LIBRARIES(${TARGET_NAME} + ctl-utilities # REMOVE THIS LINE + ${link_libraries} ) ``` -## 3) Declare your controller config section in your binding +## Add libappcontroller as a static library to your binding + +In your `config.cmake` file, add a dependency to the controller library, i.e: + +```cmake +set(PKG_REQUIRED_LIST + json-c + afb-daemon + ctl-utilities --> this is the controller library dependency name +) +``` + +Or you can also use the `FIND_PACKAGE` CMake command to add it. + +## Declare your controller config section in your binding ```C // CtlSectionT syntax: @@ -32,7 +60,7 @@ static CtlSectionT ctlSections[]= { ``` -## 4) Do the controller config parsing at binding pre-init +## Do the controller config parsing at binding pre-init ```C // check if config file exist @@ -46,8 +74,8 @@ static CtlSectionT ctlSections[]= { if (!ctlConfig) return -1; ``` -## 5) Execute the controller config during binding init +## Execute the controller config during binding init ```C int err = CtlConfigExec (ctlConfig); -```
\ No newline at end of file +``` diff --git a/docs/controller.md b/docs/controller.md index 4012455..861b487 100644 --- a/docs/controller.md +++ b/docs/controller.md @@ -8,21 +8,56 @@ ## Features * Create a controller application from a JSON config file -* Each control (eg: navigation, multimedia, ...) is a suite of actions. When all actions succeed control is granted, if one fails control access is denied. +* Each control (eg: navigation, multimedia, ...) is a suite of actions. When all actions succeed + control is granted, if one fails control access is denied. * Actions can either be: * Invocation of an other binding API, either internal or external (eg: a policy service, Alsa UCM, ...) * C routines from a user provided plugin (eg: policy routine, proprietary code, ...) - * Lua script function. Lua provides access to every AGL appfw functionality and can be extended by plugins written in C. + * Lua script function. Lua provides access to every AGL appfw functionality and can be extended by + plugins written in C. ## Installation -* Controller can easily be included as a git submodule in any AGL service or application binder. -* Dependencies: the only dependencies are AGL application framework (https://gerrit.automotivelinux.org/gerrit/p/src/app-framework-binder.git) and app-afb-helpers-submodule (https://gerrit.automotivelinux.org/gerrit/p/apps/app-afb-helpers-submodule.git). +* Controller can easily be included as a separate library in any AGL service or application binder. +* Dependencies: the only dependencies are [AGL application framework](https://gerrit.automotivelinux.org/gerrit/p/src/app-framework-binder.git) + and [libafb-helpers](https://gerrit.automotivelinux.org/gerrit/p/src/libafb-helpers.git). * Controller relies on Lua-5.3, when not needed Lua might be removed at compilation time. +The controller library is integrated by default in the AGL SDK since GG (>=7) +and is also available as a package for the AGL supported linux distributions. + +To install the native package please refer to [this chapter](../host-configuration/docs/1_Prerequisites.md) +in the AGL documentation to install the AGL repository for your distribution. + +Then use your package manager to install the library. + +### OpenSuse + +```bash +sudo zypper ref +sudo zypper install agl-libappcontroller-devel +``` + +### Fedora + +```bash +sudo dnf ref +sudo dnf install agl-libappcontroller-devel +``` + +### Ubuntu/Debian + +```bash +sudo apt-get update +sudo apt-get install agl-libappcontroller-dev +``` + ## Monitoring -* The default test HTML page expect the monitoring HTML page to be accessible under /monitoring with the --monitoring option. -* The monitoring HTML pages are installed with the app framework binder in a subdirectory called monitoring. -* You can add other HTML pages with the alias options e.g. afb-daemon --port=1234 --monitoring --alias=/path1/to/htmlpages:/path2/to/htmlpages --ldpaths=. --workdir=. --roothttp=../htdocs -* The monitoring is accessible at http://localhost:1234/monitoring.
\ No newline at end of file +* The default test HTML page expect the monitoring HTML page to be accessible under /monitoring with + the --monitoring option. +* The monitoring HTML pages are installed with the app framework binder in a subdirectory called + monitoring. +* You can add other HTML pages with the alias options e.g: + afb-daemon --port=1234 --monitoring --alias=/path1/to/htmlpages:/path2/to/htmlpages --ldpaths=. --workdir=. --roothttp=../htdocs +* The monitoring is accessible at http://localhost:1234/monitoring. diff --git a/docs/controllerConfig.md b/docs/controllerConfig.md index 6a21fd2..f87e53e 100644 --- a/docs/controllerConfig.md +++ b/docs/controllerConfig.md @@ -43,7 +43,7 @@ Each block in the configuration file is defined with * **event**: a collection of actions meant to be executed when receiving a given signal * **personnal sections**: personnal section -Callbacks to parse sections are documented in [Declare your controller config section in your binding](<#3_Declare_your_controller_config_section_in_your_binding>) section. You can use the callback defined in controller or define your own callback. +Callbacks to parse sections are documented in [Declare your controller config section in your binding](./Usage.html#declare-your-controller-config-section-in-your-binding) section. You can use the callback defined in controller or define your own callback. ## Metadata @@ -238,4 +238,4 @@ afb-daemon --name=yourname --port=1234 --workdir=. --roothttp=./htdocs --tracere Afb-Daemon only loads controller bindings without searching for the other binding. In this case, the controller binding will search for a configuration file name '(prefix-)bindermiddlename*.json'. This model can be used to implement for testing -purpose or simply to act as the glue between a UI and other binder/services.
\ No newline at end of file +purpose or simply to act as the glue between a UI and other binder/services. |