Add Documentation for clion project generator
Change-Id: If59d4b7255fcb2718b1ff4b97246b94b4c09a8c7
This commit is contained in:
parent
6d34b308ff
commit
52d7a66671
3 changed files with 72 additions and 0 deletions
BIN
docs/after.png
Normal file
BIN
docs/after.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 50 KiB |
BIN
docs/before.png
Normal file
BIN
docs/before.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
72
docs/clion.md
Normal file
72
docs/clion.md
Normal file
|
@ -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 "")
|
||||||
|
|
Loading…
Reference in a new issue