+SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES.... --> fit target properties
+for macros usage
+```
+
+### Targets PROPERTIES
+
+You should set properties on your targets that will be used to package your
+apps in a widget file that could be installed on an AGL system.
+
+Specify what is the type of your targets that you want to be included in the
+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, without the
+ extension, 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.
+- **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.
+
+> **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"
+ OUTPUT_NAME "file_output_name"
+)
+```
+
+> **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}**
+
+## More details: Typical project architecture
+
+A typical project architecture would be :
+
+```tree
+<project-root-path>
+│
+├── conf.d/
+│ ├── autobuild/
+│ │ ├── agl
+│ │ │ └── autobuild
+│ │ ├── linux
+│ │ │ └── autobuild
+│ │ └── windows
+│ │ └── autobuild
+│ ├── app-templates/
+│ │ ├── README.md
+│ │ ├── cmake/
+│ │ │ ├── export.map
+│ │ │ └── macros.cmake
+│ │ ├── samples.d/
+│ │ │ ├── CMakeLists.txt.sample
+│ │ │ ├── config.cmake.sample
+│ │ │ ├── config.xml.in.sample
+│ │ │ └── xds-config.env.sample
+│ │ ├── template.d/
+│ │ │ ├── autobuild/
+│ │ │ │ ├── agl
+│ │ │ │ │ └── autobuild.in
+│ │ │ │ ├── linux
+│ │ │ │ │ └── autobuild.in
+│ │ │ │ └── windows
+│ │ │ │ └── autobuild.in
+│ │ │ ├── config.xml.in
+│ │ │ ├── deb-config.dsc.in
+│ │ │ ├── deb-config.install.in
+│ │ │ ├── debian.changelog.in
+│ │ │ ├── debian.compat.in
+│ │ │ ├── debian.rules.in
+│ │ │ ├── gdb-on-target.ini.in
+│ │ │ ├── install-wgt-on-target.sh.in
+│ │ │ ├── start-on-target.sh.in
+│ │ │ ├── rpm-config.spec.in
+│ │ │ └── xds-project-target.conf.in
+│ │ └── wgt/
+│ │ ├── icon-default.png
+│ │ ├── icon-html5.png
+│ │ ├── icon-native.png
+│ │ ├── icon-qml.png
+│ │ └── icon-service.png
+│ ├── packaging/
+│ │ ├── config.spec
+│ │ └── config.deb
+│ ├── cmake
+│ │ └── config.cmake
+│ └── wgt
+│ └── config.xml.in
+├── <libs>
+├── <target>
+│ └── <files>
+├── <target>
+│ └── <file>
+└── <target>
+ └── <files>
+```
+
+| # | Parent | Description |
+| - | -------| ----------- |
+| \<root-path\> | - | Path to your project. Hold master CMakeLists.txt and general files of your projects. |
+| conf.d | \<root-path\> | Holds needed files to build, install, debug, package an AGL app project |
+| app-templates | conf.d | Git submodule to app-templates AGL repository which provides CMake helpers macros library, and build scripts. config.cmake is a copy of config.cmake.sample configured for the projects. SHOULD NOT BE MODIFIED MANUALLY !|
+| autobuild | conf.d | Scripts generated from app-templates to build packages the same way for differents platforms.|
+| cmake | conf.d | Contains at least config.cmake file modified from the sample provided in app-templates submodule. |
+| wgt | conf.d | Contains at least config.xml.in template file modified from the sample provided in app-templates submodule for the needs of project (See config.xml.in.sample file for more details). |
+| packaging | conf.d | Contains output files used to build packages. |
+| \<libs\> | \<root-path\> | External dependencies libraries. This isn't to be used to include header file but build and link statically specifics libraries. | Library sources files. Can be a decompressed library archive file or project fork. |
+| \<target\> | \<root-path\> | A target to build, typically library, executable, etc. |
+
+### Update app-templates submodule