android src 文件路径,android – gradle实验包括通过srcDir srcFile指令的文件目录

我至少可以回答我的第一点.在深入挖掘源代码(在某些时候它成为最好的文档)后,我发现了检索源代码的方法的实现:

public Set getSrcDirs() {

Set dirs = new LinkedHashSet();

for (DirectoryTree tree : getSrcDirTrees()) {

dirs.add(tree.getDir());

}

return dirs;

}

在DefaultSourceDirectorySet.java中.

gradle-eperimental插件中使用此方法来检索cpp和c源:

languageSourceSets.create(

sourceSetName + "Cpp",CppSourceSet.class,new Action() {

@Override

public void execute(CppSourceSet source) {

source.getSource().setSrcDirs(jni.getSource().getSrcDirs());

source.getSource().include("**/*.C");

source.getSource().include("**/*.CPP");

source.getSource().include("**/*.c++");

source.getSource().include("**/*.cc");

source.getSource().include("**/*.cp");

source.getSource().include("**/*.cpp");

source.getSource().include("**/*.cxx");

source.getSource().exclude(jni.getSource().getExcludes());

source.exportedHeaders(new Action() {

@Override

public void execute(SourceDirectorySet files) {

files.source(jni.getExportedHeaders());

}

});

configurePrebuiltDependency(source,jni);

}

});

在NdkConfiguration.java文件的execute方法中.

对于标题,它是不同的,没有这样的东西

source.getSource()包括( “** / * H.”);

相反,我们有:

for (LanguageSourceSet sourceSet : nativeBinary.getSources()) {

if (sourceSet instanceof HeaderExportingSourceSet) {

HeaderExportingSourceSet source = (HeaderExportingSourceSet) sourceSet;

artifact.getExportedHeaderDirectories().addAll(

source.getExportedHeaders().getSrcDirs());

}

}

在NdkComponentModelPlugin.java的execute方法中.它直接使用默认gradle实现的getSrcDirs方法,该方法在给定的一个下递归地包含所有dir

我将继续调查其他观点

编辑:总结:

1°)

a°)srcDir包括与模式匹配的所有文件:

* .C,* .CPP,*.c,*.cc,* .cp,*.cpp,* .cxx

b°)includeHeaders有效,并且只包含给定文件夹深度的标题(因此,如果要包含它们,则必须将所有子路径提供给标题:#include“test.h”,而不是#include“dir1” /dir2/dir3/test.h”

2°)它看起来我在我的包含中做了一些错误,因为它们现在看起来似乎有效.但是,您不能只包含文件.因此最好包括源文件的顶部目录,然后排除与给定模式不匹配的每个文件(如Alex Cohn答案中所述)

3°)include指令不起作用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值