use of com.facebook.buck.rules.ConstantToolProvider in project buck by facebook.
the class BuckConfig method getToolProvider.
/**
* @return a {@link Tool} identified by a @{link BuildTarget} or {@link Path} reference
* by the given section:field, if set.
*/
public Optional<ToolProvider> getToolProvider(String section, String field) {
Optional<String> value = getValue(section, field);
if (!value.isPresent()) {
return Optional.empty();
}
Optional<BuildTarget> target = getMaybeBuildTarget(section, field);
if (target.isPresent()) {
return Optional.of(new BinaryBuildRuleToolProvider(target.get(), String.format("[%s] %s", section, field)));
} else {
checkPathExists(value.get(), String.format("Overridden %s:%s path not found: ", section, field));
return Optional.of(new ConstantToolProvider(new HashedFileTool(getPathFromVfs(value.get()))));
}
}
use of com.facebook.buck.rules.ConstantToolProvider in project buck by facebook.
the class AppleConfig method getCodesignProvider.
public ToolProvider getCodesignProvider() {
final String codesignField = "codesign";
Optional<BuildTarget> target = delegate.getMaybeBuildTarget(APPLE_SECTION, codesignField);
String source = String.format("[%s] %s", APPLE_SECTION, codesignField);
if (target.isPresent()) {
return new BinaryBuildRuleToolProvider(target.get(), source);
} else {
Optional<Path> codesignPath = delegate.getPath(APPLE_SECTION, codesignField);
Path defaultCodesignPath = Paths.get("/usr/bin/codesign");
HashedFileTool codesign = new HashedFileTool(codesignPath.orElse(defaultCodesignPath));
return new ConstantToolProvider(codesign);
}
}
use of com.facebook.buck.rules.ConstantToolProvider in project buck by facebook.
the class HaskellBuckConfig method getPackager.
@Override
public ToolProvider getPackager() {
Optional<ToolProvider> configuredPackager = delegate.getToolProvider(SECTION, "packager");
if (configuredPackager.isPresent()) {
return configuredPackager.get();
}
Optional<Path> systemPackager = getSystemPackager();
if (systemPackager.isPresent()) {
return new ConstantToolProvider(new HashedFileTool(systemPackager.get()));
}
throw new HumanReadableException("No Haskell packager found in .buckconfig (%s.compiler) or on system", SECTION);
}
use of com.facebook.buck.rules.ConstantToolProvider in project buck by facebook.
the class HaskellBuckConfig method getLinker.
@Override
public ToolProvider getLinker() {
Optional<ToolProvider> configuredLinker = delegate.getToolProvider(SECTION, "linker");
if (configuredLinker.isPresent()) {
return configuredLinker.get();
}
Optional<Path> systemLinker = getSystemCompiler();
if (systemLinker.isPresent()) {
return new ConstantToolProvider(new HashedFileTool(systemLinker.get()));
}
throw new HumanReadableException("No Haskell linker found in .buckconfig (%s.compiler) or on system", SECTION);
}
Aggregations