简介
Soong可以生成CLion项目,只用于源代码编辑,编译还是需要通过 make/m/mm(a)/mmm(a)
.
生成Clion项目的文档位于aosp源码中的build/soong/docs/clion.md
,其内容如下:
# 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:

This is because you need to change the project root. Via Tools > CMake >
Change Project Root:

步骤
-
CMakeLists.txt
文件需要通过环境变量启用生成: -
source build/envsetup.sh
- lunch 项目
接着输入下面两句
$ export SOONG_GEN_CMAKEFILES=1
$ export SOONG_GEN_CMAKEFILES_DEBUG=1
- 编译可全编或者选择单编:
#全编译
make -j16
#单编译
make frameworks/native/service/libs/ui
Clion打开模块
比如我们想打开out/development/ide/clion/frameworks/native/services/gpuservice/gpuservice-arm64-android这个模块
点击即可导入模块
可以愉快的体验代码查看、跳转和代码补全功能了