aboutsummaryrefslogtreecommitdiffstats
blob: d6ae19a821e8cf8c00a44a14fd2918fdcc24da88 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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 "")