我正在使用gradle-experimental进行ndk项目。我有一个“预构建”库,它实际上是我在gradle任务中通过shell调用生成的库。我正在尝试使该项目的开箱即用非常容易,因此我需要能够在gradle构建之前运行此buildTask。我已经研究了preBuild.dependsOn ...
,但不幸的是,实验不支持该功能。有任何想法吗?我目前有一个运行它的.sh
文件,但我正试图摆脱它。
编辑:不重复,因为gradle-experimental不支持我已经说过的preBuild。
最佳答案
假设:
moduleName
是 foo ABI
是 armeabi Variants
是调试和版本 您必须为添加到abiFilters中的每个变体和ABI创建一个组合。
在
build.gradle
中创建RuleSource类class FooRuleSource extends RuleSource {
@Mutate
void validatePreCompileFooDebugEnvironmentArmeabi(
@Path('tasks.compileFooArmeabiDebugSharedLibraryFooMainCpp') Task compileTask) {
validateEnvironment(compileTask)
}
@Mutate
void validatePreCompileFooReleaseEnvironmentArmeabi(
@Path('tasks.compileFooArmeabiReleaseSharedLibraryFooMainCpp') Task compileTask) {
validateEnvironment(compileTask)
}
private void validateEnvironment(compileTask) {
compileTask.dependsOn("desiredTask")
}
}
在
build.gradle
中创建任务:task desiredTask(type:Exec){
commandLine 'echo', 'hi'
}