+```
+
+### Create a CMake target
+
+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. Be aware that ***populate_widget*** macro will also use
+***PROJECT_TARGET_ADD*** so ***TARGET_NAME*** will change after using
+***populate_widget*** macro.
+
+So, typical usage defining a target is:
+
+```cmake
+PROJECT_TARGET_ADD(SuperExampleName) --> Adding target to your project
+
+add_executable/add_library(${TARGET_NAME}.... --> defining your target sources
+
+SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES.... --> fit target properties for macros usage
+
+INSTALL(TARGETS ${TARGET_NAME}....
+
+populate_widget() --> add target to widget tree depending upon target properties
+```
+
+### Build a widget using provided macros
+
+To leverage all macros features, you have to specify ***properties*** on your
+targets. Some macros will not works without specifying which is the target type.
+As the type is not always specified for some custom target, like an ***HTML5***
+application, macros make the difference using ***LABELS*** property.
+
+```cmake
+SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
+ LABELS "HTDOCS"
+ OUTPUT_NAME dist.prod
+ )
+```
+
+If your target output is not named as the ***TARGET_NAME***, you need to specify
+***OUTPUT_NAME*** property that will be used by the ***populate_widget*** macro.
+
+Use the ***populate_widget*** macro as latest statement of your target
+definition. Then at the end of your project definition you should use the macro
+***build_widget*** that make an archive from the populated widget tree using the
+`wgtpkg-pack` Application Framework tools.