Skip to content

Commit

Permalink
Support adding custom buck include_defs via okbuck (#370)
Browse files Browse the repository at this point in the history
  • Loading branch information
kageiit committed Jan 29, 2017
1 parent 6456491 commit 6d87b08
Show file tree
Hide file tree
Showing 7 changed files with 53 additions and 32 deletions.
26 changes: 13 additions & 13 deletions .buckconfig
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
[project]
glob_handler = watchman
allow_symlinks = forbid
ide = intellij
ignore = .git, .idea, .gradle, local.properties, **/.DS_Store, **/*.iml
temp_files = ^#.*#$, .*~$, .*\.swp$
parallel_parsing = true
build_file_search_method = watchman
glob_handler = watchman
allow_symlinks = forbid
ide = intellij
ignore = .git, .idea, .gradle, local.properties, **/.DS_Store, **/*.iml
temp_files = ^#.*#$, .*~$, .*.swp$
parallel_parsing = true
build_file_search_method = watchman

[httpserver]
port = 0
port = 0

[intellij]
android_module_sdk_name = Android API 24 Platform
android_module_sdk_type = AndroidSDK
jdk_name = 1.8
jdk_type = JavaSDK
default_android_manifest_path = src/main/AndroidManifest.xml
android_module_sdk_name = Android API 24 Platform
android_module_sdk_type = AndroidSDK
jdk_name = 1.8
jdk_type = JavaSDK
default_android_manifest_path = src/main/AndroidManifest.xml

[log]
max_traces = 5
Expand Down
15 changes: 12 additions & 3 deletions buildSrc/src/main/groovy/com/uber/okbuck/OkBuckGradlePlugin.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ class OkBuckGradlePlugin implements Plugin<Project> {
if (hasGroovyLib) {
GroovyUtil.setupGroovyHome(project)
}

generate(project,
okbuckExt,
hasGroovyLib ? GroovyUtil.GROOVY_HOME_LOCATION : null)
Expand All @@ -180,12 +181,20 @@ class OkBuckGradlePlugin implements Plugin<Project> {
dotBuckConfig.createNewFile()
}

// Setup defs
FileUtil.copyResourceToProject("defs/OKBUCK_DEFS", project.file(OKBUCK_DEFS))
Set<String> defs = okbuckExt.extraDefs.collect {
"//${FileUtil.getRelativePath(project.rootDir, it)}"
}
defs.add("//${OKBUCK_DEFS}")

// generate .buckconfig.local
File dotBuckConfigLocal = project.file(".buckconfig.local")
FileUtil.copyResourceToProject("defs/OKBUCK_DEFS", project.file(OKBUCK_DEFS))
PrintStream configPrinter = new PrintStream(dotBuckConfigLocal)
DotBuckConfigLocalGenerator.generate(okbuckExt, groovyHome,
ProguardUtil.getProguardJarPath(project)).print(configPrinter)
DotBuckConfigLocalGenerator.generate(okbuckExt,
groovyHome,
ProguardUtil.getProguardJarPath(project),
defs).print(configPrinter)
IOUtils.closeQuietly(configPrinter)
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
package com.uber.okbuck.config;

import com.uber.okbuck.OkBuckGradlePlugin;

import org.apache.commons.lang.StringUtils;

import java.io.PrintStream;
import java.util.List;
import java.util.Map;
import java.util.Set;

public final class DotBuckConfigLocalFile extends BuckConfigFile {

Expand All @@ -16,20 +15,23 @@ public final class DotBuckConfigLocalFile extends BuckConfigFile {
private final List<String> ignore;
private final String groovyHome;
private final String proguardJar;
private final Set<String> defs;

public DotBuckConfigLocalFile(
Map<String, String> aliases,
String buildToolVersion,
String target,
List<String> ignore,
String groovyHome,
String proguardJar) {
String proguardJar,
Set<String> defs) {
this.aliases = aliases;
this.buildToolVersion = buildToolVersion;
this.target = target;
this.ignore = ignore;
this.groovyHome = groovyHome;
this.proguardJar = proguardJar;
this.defs = defs;
}

@Override
Expand All @@ -44,12 +46,14 @@ public final void print(PrintStream printer) {
printer.println();

printer.println("[project]");
printer.print("\tignore = " + String.join(",", ignore));
printer.print("\tignore = " + String.join(", ", ignore));
printer.println();

printer.println("[buildfile]");
printer.print("\tincludes = //" + OkBuckGradlePlugin.OKBUCK_DEFS);
printer.println();
if (!defs.isEmpty()) {
printer.println("[buildfile]");
printer.print("\tincludes = " + String.join(" ", defs));
printer.println();
}

if (!StringUtils.isEmpty(groovyHome)) {
printer.println("[groovy]");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ import com.uber.okbuck.rule.android.ExopackageAndroidLibraryRule
import com.uber.okbuck.rule.android.GenAidlRule
import com.uber.okbuck.rule.base.BuckRule
import com.uber.okbuck.rule.base.GenRule
import com.uber.okbuck.rule.java.JavaLibraryWrapperRule
import org.apache.commons.io.IOUtils
import org.gradle.api.Project

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,10 @@ final class DotBuckConfigLocalGenerator {
/**
* generate {@link DotBuckConfigLocalFile}
*/
static DotBuckConfigLocalFile generate(OkBuckExtension okbuck, String groovyHome, String proguardJar) {
static DotBuckConfigLocalFile generate(OkBuckExtension okbuck,
String groovyHome,
String proguardJar,
Set<String> defs) {
Map<String, String> aliases = [:]
okbuck.buckProjects.findAll { Project project ->
ProjectUtil.getType(project) == ProjectType.ANDROID_APP
Expand All @@ -32,6 +35,7 @@ final class DotBuckConfigLocalGenerator {
okbuck.target,
[".git", "**/.svn"],
groovyHome,
proguardJar)
proguardJar,
defs)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -120,14 +120,14 @@ abstract class AndroidRule extends BuckRule {
printer.println("\t\t'${processor}',")
}
printer.println("\t],")
}

if (!mAptDeps.empty) {
printer.println("\tannotation_processor_deps = [")
for (String dep : mAptDeps.sort()) {
printer.println("\t\t'${dep}',")
if (!mAptDeps.empty) {
printer.println("\tannotation_processor_deps = [")
for (String dep : mAptDeps.sort()) {
printer.println("\t\t'${dep}',")
}
printer.println("\t],")
}
printer.println("\t],")
}

if (!mProvidedDeps.empty) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

import org.gradle.api.Project;

import java.io.File;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
Expand Down Expand Up @@ -56,6 +58,9 @@ public class OkBuckExtension {
*/
public Map<String, Map<String, List<String>>> extraBuckOpts = new HashMap<>();

/** Extra buck defs **/
public Set<File> extraDefs = new HashSet<>();

/**
* Whether to turn on buck's resource_union to reflect gradle's resource merging behavior
*/
Expand Down

0 comments on commit 6d87b08

Please sign in to comment.