来自 Android Studio 的本地 CMake 配置

Local CMake configuration from Android Studio

在常规项目中使用 CMake 时,可以通过 -D 选项或使用 ccmakecmake-gui 配置一些变量(例如库路径)。这些值保存在缓存,这提供了特定于每个 user/developer 代码的本地配置。

在 Android Studio 中,可以从 Gradle 配置 CMake,但我没能找到与上述选项等效的选项。 local.properties 文件可以从 gradle 读取,但它被 AS 覆盖。

是否有任何方法可以将 CMake 变量设置为来自 Android Studio 的本地值?

示例:在常规 CMake 项目中,我可以向我的 CMakeLists.txt 添加一行,例如:

set(EIGEN_DIR /usr/local/include/eigen3 CACHE PATH "Eigen path")

然后两个不同的开发人员可以将该值设置到他们的特定系统(即 /usr/local/include/eigen3/opt/local/include/eigen3),而不会影响项目源代码。但是,在 Android Studio 中,唯一的方法似乎是来自 build.gradle,它是项目的一部分,并将提交到存储库。

我发现这可以通过将具有所需值的变量放入 local.properties 文件中,然后使用 this answer:

中的代码读取它们来实现
Properties props = new Properties()
props.load(new FileInputStream(project.rootProject.file('local.properties')))
String conf_value = props['conf.value']

然后是

externalNativeBuild{
     cmake {
          arguments "-DMY_CONF_VALUE="+conf_value
          ...
     }
}