【发布时间】:2019-11-08 08:08:42
【问题描述】:
使用 Gradle 5.4.1,我想为 Android 应用构建一个 CMake 项目。这可以在 app/build.gradle 中完成:
externalNativeBuild {
cmake {
// Provides a relative path to your CMake build script.
version "3.13.0+"
path "../subproject/CMakeLists.txt"
}
}
该项目使用 SWIG 生成一个共享库和一些 Java 文件。我可以通过 -DJAVA_OUTPUT_DIR=generated/java 指定 Java 源的输出目录。
如何强制 gradle 在编译主应用源代码 (Kotlin) 之前等待 CMake 构建?源代码导入生成的 JAVA 文件,当前构建过程因缺少 Java 文件而失败。看来 gradle 并行运行 cmake 和 Kotlin 编译器。
额外问题:如何将生成的源输出目录作为生成的源添加到 AndroidStudio 项目树中?树中有一个用于生成源的特殊条目。
版本信息:
$ ./gradlew --version -------------------------------------------------- ---------- 摇篮 5.4.1 -------------------------------------------------- ---------- 构建时间:2019-04-26 08:14:42 UTC 修订:261d171646b36a6a28d5a19a69676cd098a4c19d 科特林:1.3.21 时髦的:2.5.4 Ant:2018 年 7 月 10 日编译的 Apache Ant(TM) 版本 1.9.13 JVM:11.0.5(Debian 11.0.5+10-post-Debian-1deb10u1) 操作系统:Linux 4.19.0-6-amd64 amd64【问题讨论】:
-
@SergeyVoytovich 不,我的 gradle 脚本中没有任何自定义任务。或者我可以写一些类似 preBuild.dependsOn(some_cmake_build_task) 的东西吗?那么任务的正确名称是什么?
标签: android gradle kotlin cmake swig