diff options
author | Fabien Sanglard <sanglardf@google.com> | 2017-02-08 14:25:26 -0800 |
---|---|---|
committer | Fabien Sanglard <sanglardf@google.com> | 2017-02-16 09:57:46 -0800 |
commit | 52d7a66671f0a7337d399a5deeee8a2396bfbd8e (patch) | |
tree | f356c8cc77904b89b7d8e99d5e7245d173df8260 /docs | |
parent | 6d34b308ff8c87425163c3dbc864aa388f18d468 (diff) | |
download | build_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.png | bin | 0 -> 50970 bytes | |||
-rw-r--r-- | docs/before.png | bin | 0 -> 35790 bytes | |||
-rw-r--r-- | docs/clion.md | 72 |
3 files changed, 72 insertions, 0 deletions
diff --git a/docs/after.png b/docs/after.png Binary files differnew file mode 100644 index 00000000..fdd14d26 --- /dev/null +++ b/docs/after.png diff --git a/docs/before.png b/docs/before.png Binary files differnew file mode 100644 index 00000000..a6a1424d --- /dev/null +++ b/docs/before.png 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 "") + |