X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=docs%2Fdev_guide%2F1_Quickstart.md;h=e91017840a26ad2905d5acc2225dc5ed3ae03138;hb=1613c945a662a52eb18a56866806693de6619c6c;hp=fe119705805e056d65b294bd44db3e0fe7528d06;hpb=b1bb356be470cfc10a0d9457166ad21af0bd3f19;p=apps%2Fapp-templates.git diff --git a/docs/dev_guide/1_Quickstart.md b/docs/dev_guide/1_Quickstart.md index fe11970..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 @@ -29,7 +28,7 @@ For each target part of your project, you need to use ***PROJECT_TARGET_ADD*** to include this target to your project. Using it, make available the cmake variable ***TARGET_NAME*** until the next -***PROJECT_TARGET_ADD*** is invoked with a new target name. +***PROJECT_TARGET_ADD*** is invoked with a new target name. So, typical usage defining a target is: @@ -55,17 +54,44 @@ widget package with the property **LABELS**: Choose between: - **BINDING**: Shared library that be loaded by the AGL Application Framework -- **HTDOCS**: Root directory of a web app -- **DATA**: Resources used by your application +- **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}**