来自 Android Studio 的本地 CMake 配置
Local CMake configuration from Android Studio
在常规项目中使用 CMake 时,可以通过 -D
选项或使用 ccmake
或 cmake-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
...
}
}
在常规项目中使用 CMake 时,可以通过 -D
选项或使用 ccmake
或 cmake-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
...
}
}