blob: dc7a5c22608e1444f32dc40343340632fa09dd03 [file] [log] [blame]
package com.android.build.gradle.ndk;
import com.android.annotations.NonNull;
import com.android.annotations.Nullable;
import com.google.common.collect.Sets;
import org.gradle.api.Action;
import org.gradle.api.tasks.util.PatternFilterable;
import org.gradle.api.tasks.util.PatternSet;
import java.util.Collection;
import java.util.Collections;
import java.util.Set;
/**
* Extension for android-ndk plugin.
*/
public class NdkExtension {
@NonNull
private String moduleName = "";
@NonNull
private String target = "";
@NonNull
private String cFlags = "";
@NonNull
private String cppFlags = "";
@NonNull
private Set<String> ldLibs;
@NonNull
private String toolchain = "";
@NonNull
private String toolchainVersion = "";
@NonNull
private String stl = "";
private boolean renderscriptNdkMode = false;
@NonNull
private PatternSet cFilePattern;
@NonNull
private PatternSet cppFilePattern;
public NdkExtension() {
cFilePattern = new PatternSet();
cppFilePattern = new PatternSet();
ldLibs = Sets.newHashSet();
}
@NonNull
public String getModuleName() {
return moduleName;
}
public void setModuleName(@NonNull String moduleName) {
this.moduleName = moduleName;
}
@NonNull
public String getCompileSdkVersion() {
return target;
}
public void compileSdkVersion(@NonNull String target) {
this.target = target;
}
public void compileSdkVersion(int apiLevel) {
compileSdkVersion("android-" + apiLevel);
}
public void setCompileSdkVersion(int apiLevel) {
compileSdkVersion(apiLevel);
}
public void setCompileSdkVersion(@NonNull String target) {
compileSdkVersion(target);
}
@NonNull
public String getToolchain() {
return toolchain;
}
public void setToolchain(@NonNull String toolchain) {
this.toolchain = toolchain;
}
/**
* The toolchain version.
*/
@NonNull
public String getToolchainVersion() {
return toolchainVersion;
}
public void setToolchainVersion(@NonNull String toolchainVersion) {
this.toolchainVersion = toolchainVersion;
}
@NonNull
public String getcFlags() {
return cFlags;
}
public void setcFlags(@NonNull String cFlags) {
this.cFlags = cFlags;
}
@NonNull
public String getCppFlags() {
return cppFlags;
}
public void setCppFlags(@NonNull String cppFlags) {
this.cppFlags = cppFlags;
}
@NonNull
public Set<String> getLdLibs() {
return ldLibs;
}
@NonNull
public NdkExtension ldLibs(String lib) {
ldLibs.add(lib);
return this;
}
@NonNull
public NdkExtension ldLibs(String... libs) {
Collections.addAll(ldLibs, libs);
return this;
}
@NonNull
public NdkExtension setLdLibs(@NonNull Collection<String> libs) {
ldLibs.clear();
ldLibs.addAll(libs);
return this;
}
@NonNull
public String getStl() {
return stl;
}
public void setStl(@NonNull String stl) {
this.stl = stl;
}
public boolean getRenderscriptNdkMode() {
return renderscriptNdkMode;
}
public void setRenderscriptNdkMode(boolean renderscriptNdkMode) {
this.renderscriptNdkMode = renderscriptNdkMode;
}
public void cFilePattern(Action<PatternFilterable> action) {
action.execute(cFilePattern);
}
@NonNull
public PatternFilterable getCFilePattern() {
return cFilePattern;
}
public void setCFilePattern(@NonNull PatternFilterable pattern) {
cFilePattern.copyFrom(pattern);
}
public void cppFilePattern(Action<PatternFilterable> action) {
action.execute(cppFilePattern);
}
@NonNull
public PatternFilterable getCppFilePattern() {
return cppFilePattern;
}
public void setCppFilePattern(@NonNull PatternFilterable pattern) {
cppFilePattern.copyFrom(pattern);
}
}