通过Cmake打开Android Studio调试构建的编译器优化

Bra*_*ram 2 cmake android-ndk android-studio

我正在为基于NDK的应用程序使用Android Studio 3.0。对于C ++代码,我使用CMake作为外部构建器

这很好,我可以创建调试和发布二进制文件。

但是,我想为C ++代码的一部分(物理引擎)打开编译器优化(例如-O3),不仅是针对发布版本,还包括调试版本。

因此,按原样创建大量调试版本,而不进行优化,但是,我希望在启用编译器优化的情况下构建静态库目标之一。

我该怎么办?

我有一个静态库目标的CMakeLists,该目标通过使用CMakeLists顶级文件中的add_subdirectory()指令包含在内。

请注意,我指向应用程序的build.gradle文件中的顶级CMakeList,如下所示:

externalNativeBuild {
    cmake {
        path '../../Android/jni/CMakeLists.txt'
    }
}
Run Code Online (Sandbox Code Playgroud)

Bra*_*ram 5

事实证明,您可以将CMakeLists.txt中的target_compile_options()宏与以下配置规范一起使用:

target_compile_options(opende PRIVATE
"$<$<CONFIG:RELEASE>:-O3>"
"$<$<CONFIG:DEBUG>:-O3>"
)
Run Code Online (Sandbox Code Playgroud)

该宏将添加到现有的编译选项中。