aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorFabien Sanglard <sanglardf@google.com>2017-02-08 14:25:26 -0800
committerFabien Sanglard <sanglardf@google.com>2017-02-16 09:57:46 -0800
commit52d7a66671f0a7337d399a5deeee8a2396bfbd8e (patch)
treef356c8cc77904b89b7d8e99d5e7245d173df8260 /docs
parent6d34b308ff8c87425163c3dbc864aa388f18d468 (diff)
downloadbuild_soong-52d7a66671f0a7337d399a5deeee8a2396bfbd8e.tar.gz
build_soong-52d7a66671f0a7337d399a5deeee8a2396bfbd8e.tar.bz2
build_soong-52d7a66671f0a7337d399a5deeee8a2396bfbd8e.zip
Add Documentation for clion project generator
Change-Id: If59d4b7255fcb2718b1ff4b97246b94b4c09a8c7
Diffstat (limited to 'docs')
-rw-r--r--docs/after.pngbin0 -> 50970 bytes
-rw-r--r--docs/before.pngbin0 -> 35790 bytes
-rw-r--r--docs/clion.md72
3 files changed, 72 insertions, 0 deletions
diff --git a/docs/after.png b/docs/after.png
new file mode 100644
index 00000000..fdd14d26
--- /dev/null
+++ b/docs/after.png
Binary files differ
diff --git a/docs/before.png b/docs/before.png
new file mode 100644
index 00000000..a6a1424d
--- /dev/null
+++ b/docs/before.png
Binary files differ
diff --git a/docs/clion.md b/docs/clion.md
new file mode 100644
index 00000000..d6ae19a8
--- /dev/null
+++ b/docs/clion.md
@@ -0,0 +1,72 @@
+# CLion project generator
+
+Soong can generate CLion projects. This is intended for source code editing
+only. Build should still be done via make/m/mm(a)/mmm(a).
+
+CMakeLists.txt project file generation is enabled via environment variable:
+
+```bash
+$ export SOONG_GEN_CMAKEFILES=1
+$ export SOONG_GEN_CMAKEFILES_DEBUG=1
+```
+
+You can then trigger a full build:
+
+```bash
+$ make -j64
+```
+or build only the project you are interested in:
+
+```bash
+$ make frameworks/native/service/libs/ui
+```
+
+Projects are generated in the ``out`` directory. In the case of libui, the path would
+be:
+
+```bash
+out/development/ide/clion/frameworks/native/libs/ui/libui-arm64-android/CMakeLists.txt
+```
+Note: The generator creates one folder per targetname-architecture-os combination.
+In the case of libui you endup with two projects:
+
+```bash
+$ ls out/development/ide/clion/frameworks/native/libs/ui
+libui-arm64-android libui-arm-android
+```
+
+### Edit multiple projects at once
+To combine several projects into one, you can create super projects
+and place them in:
+
+```bash
+development/ide/clion/[PATH_YOU_WANT]/..
+```
+
+These file will be symbolicaly linked in ``out/development/ide/clion``. All folders
+will also be created there.
+
+An example of a super project for surfaceflinger (using libui and libgui)
+located in development/ide/clion/frameworks/native:
+
+```
+cmake_minimum_required(VERSION 3.6)
+project(native)
+add_subdirectory(services/surfaceflinger)
+add_subdirectory(libs/ui/libui-arm64-android)
+add_subdirectory(libs/gui/libgui-arm64-android)
+```
+
+
+### Flattened filesystem
+
+Upon opening a project it looks like all the folder structure has been
+flattened:
+
+![Flattened View](before.png "")
+
+This is because you need to change the project root. Via Tools > CMake >
+Change Project Root:
+
+![Unflattened View](after.png "")
+