This is an automated email from the ASF dual-hosted git repository.

lcwik pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new af7920d  Adjust gradle build dirs and hints to help IntelliJ (#4583)
af7920d is described below

commit af7920dce12e1a3c018b90f7c305f7531b6df0d6
Author: Kenn Knowles <k...@kennknowles.com>
AuthorDate: Mon Feb 5 08:34:12 2018 -0800

    Adjust gradle build dirs and hints to help IntelliJ (#4583)
---
 build_rules.gradle                    | 48 +++++++++++++++++++++++++++++++++--
 sdks/java/extensions/sql/build.gradle | 20 +++++++++++++--
 2 files changed, 64 insertions(+), 4 deletions(-)

diff --git a/build_rules.gradle b/build_rules.gradle
index fa691af..c819776 100644
--- a/build_rules.gradle
+++ b/build_rules.gradle
@@ -67,6 +67,9 @@ repositories {
   maven { url "https://repository.apache.org/content/repositories/releases"; }
 }
 
+// Apply a plugin which enables configuring projects imported into Intellij.
+apply plugin: "idea"
+
 // Provide code coverage
 // TODO: Should this only apply to Java projects?
 apply plugin: "jacoco"
@@ -363,6 +366,18 @@ ext.applyJavaNature = {
       force library.java.values()
     }
   }
+
+  def aptGeneratedMain = "${project.buildDir}/generated/source/apt/main"
+  def aptGeneratedTest = "${project.buildDir}/generated/source/apt/test"
+  idea {
+    module {
+      sourceDirs += file(aptGeneratedMain)
+      generatedSourceDirs += file(aptGeneratedMain)
+
+      testSourceDirs += file(aptGeneratedTest)
+      generatedSourceDirs += file(aptGeneratedTest)
+    }
+  }
 }
 
 
/*************************************************************************************************/
@@ -400,6 +415,17 @@ ext.applyGoNature = {
       tasks.getByPath(project.path + ":resolveTestDependencies").mustRunAfter 
tasks.getByPath(previous + ":installDependencies")
     }
   }
+
+  idea {
+    module {
+      // The gogradle plugin downloads all dependencies into the source tree 
here,
+      // which is a path baked into golang
+      excludeDirs += file("${project.path}/vendor")
+
+      // gogradle's private working directory
+      excludeDirs += file("${project.path}/.gogradle")
+    }
+  }
 }
 
 
/*************************************************************************************************/
@@ -443,6 +469,26 @@ ext.applyGrpcNature = {
       }
     }
   }
+
+  def generatedProtoMainJavaDir = 
"${project.buildDir}/generated/source/proto/main/java"
+  def generatedProtoTestJavaDir = 
"${project.buildDir}/generated/source/proto/test/java"
+  def generatedGrpcMainJavaDir = 
"${project.buildDir}/generated/source/proto/main/grpc"
+  def generatedGrpcTestJavaDir = 
"${project.buildDir}/generated/source/proto/test/grpc"
+  idea {
+    module {
+      sourceDirs += file(generatedProtoMainJavaDir)
+      generatedSourceDirs += file(generatedProtoMainJavaDir)
+
+      testSourceDirs += file(generatedProtoTestJavaDir)
+      generatedSourceDirs += file(generatedProtoTestJavaDir)
+
+      sourceDirs += file(generatedProtoMainJavaDir)
+      generatedSourceDirs += file(generatedGrpcMainJavaDir)
+
+      testSourceDirs += file(generatedGrpcTestJavaDir)
+      generatedSourceDirs += file(generatedGrpcTestJavaDir)
+    }
+  }
 }
 
 
/*************************************************************************************************/
@@ -453,5 +499,3 @@ ext.applyAvroNature = {
   println "applyAvroNature with " + (it ? "$it" : "default configuration") + " 
for project $project.name"
   apply plugin: "com.commercehub.gradle.plugin.avro"
 }
-
-
diff --git a/sdks/java/extensions/sql/build.gradle 
b/sdks/java/extensions/sql/build.gradle
index bcca0cf..b7ba79a 100644
--- a/sdks/java/extensions/sql/build.gradle
+++ b/sdks/java/extensions/sql/build.gradle
@@ -80,7 +80,7 @@ task copyFmppTemplatesFromCalciteCore(type: Copy) {
 }
 
 // Generate the FMPP sources from the FMPP templates.
-def generateFmppOutputDir = "${project.buildDir}/generated-fmpp"
+def generateFmppOutputDir = "${project.buildDir}/generated/fmpp"
 task generateFmppSources {
   dependsOn configurations.fmppTask
   dependsOn copyFmppTemplatesFromSrc
@@ -91,9 +91,14 @@ task generateFmppSources {
   }
 }
 
+// Match the output directory for generated code with the package, to be more 
tool-friendly
+def generateFmppJavaccRoot = "${generateFmppOutputDir}/javacc"
+def generatedJavaccSourceDir = "${project.buildDir}/generated/javacc"
+def generatedJavaccPackageDir = 
"${generatedJavaccSourceDir}/org/apache/beam/sdk/extensions/sql/impl/parser/impl"
 compileJavacc {
   dependsOn generateFmppSources
-  inputDirectory = file(generateFmppOutputDir)
+  inputDirectory = file(generateFmppJavaccRoot)
+  outputDirectory = file(generatedJavaccPackageDir)
   arguments = [grammar_encoding: "UTF-8", static: "false", lookahead: "2"]
 }
 
@@ -116,3 +121,14 @@ shadowJar {
   // module.
   relocate "org.codehaus", 
"org.apache.beam.sdks.java.extensions.sql.repackaged.org.codehaus"
 }
+
+// Help IntelliJ find the fmpp bits
+idea {
+  module {
+    sourceDirs += file(generateFmppOutputDir)
+    generatedSourceDirs += file(generateFmppOutputDir)
+
+    sourceDirs += file(generatedJavaccSourceDir)
+    generatedSourceDirs += file(generatedJavaccSourceDir)
+  }
+}

-- 
To stop receiving notification emails like this one, please contact
lc...@apache.org.

Reply via email to