[dali_2.3.19] Merge branch 'devel/master'
[platform/core/uifw/dali-demo.git] / README.md
index 74affe9..a5993fc 100644 (file)
--- a/README.md
+++ b/README.md
          * [NON-SMACK Targets](#non-smack-targets)
          * [SMACK enabled Targets](#smack-enabled-targets)
          * [DEBUG Builds](#debug-builds-1)
-      * [3. Building for Android](#3-android-builds)
-      * [4. Building for MS Windows](#4-windows-builds)
-         * Build with the Visual Studio project.
-         * Build with CMake.
+      * [3. Building for Android](#3-building-for-android)
+      * [4. Building for MS Windows](#4-building-for-ms-windows)
+         * [Build with the Visual Studio project](#build-with-the-visual-studio-project)
+         * [Build with CMake](#build-with-cmake)
       * [5. Building for MacOS](#5-building-for-macos)
-   * [Creating an example](#creating-an-example)
+   * [Creating an Example](#creating-an-example)
 
 # Build Instructions
 
@@ -52,6 +52,13 @@ Before running make install as normal:
 
          $ make install -j8
 
+### Build Only specific sample
+
+You can set the sample's name and can build that sample only. For example, If you want to build 'hello-world',
+
+         $ cmake -DCMAKE_INSTALL_PREFIX=$DESKTOP_PREFIX -DBUILD_EXAMPLE_NAME=hello-world
+         $ make install -j9
+
 ## 2. GBS Builds
 
 ### NON-SMACK Targets
@@ -70,19 +77,16 @@ Before running make install as normal:
 
          $ gbs build -A [TARGET_ARCH] --define "%rpi_style 1"
 
-# Creating an example
+### Build specific sample only
 
- - Make a directory in the "examples" directory. Only one example will be created per directory.
- - The executable installed will have a ".example" appended to it, e.g. a "blocks" directory produces "blocks.example".
- - Add all source files for the required example in this directory.
- - Modify "com.samsung.dali-demo.xml" to include your example so that it can be launched on target.
- - No changes are required to the make system as long as the above is followed, your example will be automatically built & installed.
+         $ gbs build -A [TARGET_ARCH] --define "build_example_name hello-world"
 
 ## 3. Building for Android
 
 ### Requirements
 
- - Ubuntu 16.04 or later
+ - Ubuntu 20.04 or later
+ - Open JDK Version 17 or above
  - Android DALi dependencies
  - If you are behind a proxy, please set up the "http_proxy" and "https_proxy" environment variables appropriately
  - Clone dali-core, dali-adaptor, dali-toolkit & android-dependencies to the same folder as dali-demo
@@ -162,6 +166,7 @@ vcpkg-script folder in the windows-dependencies repository.
     - INTERNATIONALIZATION  ---> Whether to generate and install internazionalization '.po' Portable Object files.
     - CMAKE_INSTALL_PREFIX  ---> Were DALi is installed.
     - ENABLE_DEBUG          ---> Whether to build with debug enabled.
+    - BUILD_EXAMPLE_NAME    ---> The name of sample what you want to build. To reduce the memory of rpm file, we didn't copy resources now.
 
   * If dali-toolkit has been compiled with the USE_DEFAULT_RESOURCE_DIR option disabled then is needed to set global environment variables in order to find the default toolkit resources.
 
@@ -192,22 +197,19 @@ To build, run:
 % make install -j8
 ```
 
-# Creating an example
-In the dali-demo/examples folder, add another folder. This will become the name of your example executable, so for example the "hello-world" folder generates a "hello-world.example" binary.
-In this folder, you can add as many source code files as you need.
-
-Usually, create a single class file containing a main function that instantiates an Application. Usually, the class is named after your example, followed by "Controller", e.g. hello-world.cpp contains a class called HelloWorldController.
-
-There is a DemoHelper::CreateView method, which enables you to easiliy set up a title bar and buttons.
-
-Add at least a key handler such that Escape or Back keys can be used to quit the application. Some apps that only present a single thing also add a touch handler that quits the application.
-
-Add a launcher line to one of demo/dali-demo.cpp, examples-reel/dali-examples-reel.cpp or tests-reel/dali-tests-reel.cpp, depending on the nature of what you are demonstrating. Generally, dali-demo is for graphical showcase demos, dali-examples-reel is for reasonable examples that look ok, and dali-tests is for examples that are only for testing. This needs a language string defining for the title.
-
-Add 2 lines to shared/dali-demo-strings.h for the title of your application, please keep in alphabetic ordering. Add english strings and translations to each of the language files in resources/po.
-
-To ensure your application can run on a Tizen device through the launcher, add an entry to com.samsung.dali-demo.xml, ensuring that only tabs are used for XML indent.
-
-
-
-
+# Creating an Example
+
+- Make a directory in the `examples` directory. Only one example will be created per directory.
+- The executable installed will have a `.example` appended to it, e.g. a `blocks` directory produces `blocks.example`.
+- Add all source files for the required example in this directory.
+- Modify `com.samsung.dali-demo.xml` to include your example so that it can be launched on target.
+- No changes are required to the make system as long as the above is followed, your example will be automatically built & installed.
+- Add a key handler so that the `ESC` or `Back` keys can be used to quit the application.
+- Depending on the nature of what you are demonstrating, add a launcher line to either:
+  - `demo/dali-demo.cpp`: for graphical showcase demos.
+  - `examples-reel/dali-examples-reel.cpp`: generic examples of how to use various features.
+  - `tests-reel/dali-tests-reel.cpp`: for testing purposes.
+- Add 2 lines to `shared/dali-demo-strings.h` for the title of your application, please keep in alphabetic order,
+- Add as many translations of the title as possible to the files in `resources/po`. Currently, this only works on Ubuntu.
+- In each example folder, create a README.md with images and a description of what the example is demonstrating.
+  Look at [this](examples/particle-system/README.md) for reference.