X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=docs%2Fdev_guide%2F1_Quickstart.md;h=e91017840a26ad2905d5acc2225dc5ed3ae03138;hb=02f45f165b15cbd9e5c422a39e8a652a8c6e216b;hp=9aad1ef7f5e63de1c886740da9a898c5588cbde0;hpb=0365ed16084240954ede2005a8954b6035490122;p=apps%2Fapp-templates.git diff --git a/docs/dev_guide/1_Quickstart.md b/docs/dev_guide/1_Quickstart.md index 9aad1ef..e910178 100644 --- a/docs/dev_guide/1_Quickstart.md +++ b/docs/dev_guide/1_Quickstart.md @@ -1,4 +1,3 @@ - # Quickstart ## Initialization @@ -7,9 +6,9 @@ To use these templates files on your project just install the reference files us **git submodule** then use `config.cmake` file to configure your project specificities : ```bash -git submodule add https://gerrit.automotivelinux.org/gerrit/apps/app-templatesconf.d/app-templates conf.d/app-templates +git submodule add https://gerrit.automotivelinux.org/gerrit/p/apps/app-templates.git conf.d/app-templates mkdir conf.d/cmake -cp conf.d/app-templates/cmake/config.cmake.sample conf.d/cmake/config.cmake +cp conf.d/app-templates/samples.d/config.cmake.sample conf.d/cmake/config.cmake ``` Edit the copied config.cmake file to fit your needs. @@ -20,7 +19,7 @@ An example is available in **app-templates** submodule that you can copy and use: ```bash -cp conf.d/app-templates/cmake/CMakeLists.txt CMakeLists.txt +cp conf.d/app-templates/samples.d/CMakeLists.txt.sample CMakeLists.txt ``` ## Create your CMake targets @@ -55,27 +54,44 @@ widget package with the property **LABELS**: Choose between: - **BINDING**: Shared library that be loaded by the AGL Application Framework -- **BINDINGV2**: Shared library that be loaded by the AGL Application Framework. - This has to be accompagnied with a JSON file named like the *${OUTPUT_NAME}-apidef* of - the target that describe the API with OpenAPI syntax (e.g: *mybinding-apidef*). - Or you can choose the name by setting the *CACHE* cmake variable *OPENAPI_DEF* - (***CAUTION***: setting a CACHE variable is needed, or set a normal variable - with the *PARENT_SCOPE* option to make it visible for the parent scope - where the target is defined) JSON file will be used to generate header file - using `afb-genskel` tool. +- **BINDINGV2**: Shared library that be loaded by the AGL Application Framework + This has to be accompagnied with a JSON file named like the + *${OUTPUT_NAME}-apidef* of the target that describe the API with OpenAPI + syntax (e.g: *mybinding-apidef*). + Or Alternatively, you can choose the name, without the extension, using macro + **set_openapi_filename**. If you use C++, you have to set **PROJECT_LANGUAGES** + with *CXX*. +- **BINDINGV3**: Shared library that be loaded by the AGL Application Framework + This has to be accompagnied with a JSON file named like the + *${OUTPUT_NAME}-apidef* of the target that describe the API with OpenAPI + syntax (e.g: *mybinding-apidef*). + Or Alternatively, you can choose the name, without the extension, using macro + **set_openapi_filename**. If you use C++, you have to set **PROJECT_LANGUAGES** + with *CXX*. +- **PLUGIN**: Shared library meant to be used as a binding plugin. Binding + would load it as a plugin to extend its functionnalities. It should be named + with a special extension that you choose with SUFFIX cmake target property or + it'd be **.ctlso** by default. - **HTDOCS**: Root directory of a web app. This target has to build its directory and puts its files in the ${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME} - **DATA**: Resources used by your application. This target has to build its directory and puts its files in the ${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME} - **EXECUTABLE**: Entry point of your application executed by the AGL Application Framework +- **LIBRARY**: An external 3rd party library bundled with the binding for its + own purpose because platform doesn't provide it. +- **BINDING-CONFIG**: Any files used as configuration by your binding. + +> **TIP** you should use the prefix _afb-_ with your **BINDING* targets which +> stand for **Application Framework Binding**. ```cmake SET_TARGET_PROPERTIES(${TARGET_NAME} PREFIX "afb-" - LABELS "BINDING" + LABELS "BINDINGV3" OUTPUT_NAME "file_output_name") ``` -> **TIP** you should use the prefix _afb-_ with your **BINDING* targets which -> stand for **Application Framework Binding**. +> **NOTE**: You doesn't need to specify an **INSTALL** command for these +> targets. This is already handle by template and will be installed in the +> following path : **${CMAKE_INSTALL_PREFIX}/${PROJECT_NAME}**