Skip to content

Commit

Permalink
Task: split build file
Browse files Browse the repository at this point in the history
  • Loading branch information
William Drai committed May 23, 2014
1 parent b54d8fb commit 76f34c2
Show file tree
Hide file tree
Showing 53 changed files with 2,455 additions and 2,536 deletions.
2,559 changes: 23 additions & 2,536 deletions build.gradle

Large diffs are not rendered by default.

194 changes: 194 additions & 0 deletions dist/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
// Distribution

apply plugin: 'bintray'

defaultTasks 'dist'

configurations {
create('server')
create('javaClient')
create('flexClient')
create('generator')
create('javaClientDeps')
create('androidClientDeps')
create('androidBinding')
create('javaClientWebsocket')
create('java8Support')

server { transitive = false }
serverCore { transitive = false }
javaClient { transitive = false }
flexClient { transitive = false }
generator { transitive = false }
androidBinding { transitive = false }
java8Support { transitive = false }
}

def serverProjects = rootProject.subprojects.findAll { it.name.startsWith('granite-server') && !coreProjects.contains(it.path) }
def serverCoreProjects = rootProject.subprojects.findAll { it.name.startsWith('granite-server') && coreProjects.contains(it.path) }
def javaClientProjects = rootProject.subprojects.findAll { it.name.startsWith('granite-client-java') || it.name.startsWith('granite-client-android') }
def flexClientProjects = rootProject.subprojects.findAll { it.name.startsWith('granite-client-flex') && !it.name.endsWith('-tests') }
def generatorProjects = rootProject.subprojects.findAll { it.name.startsWith('granite-generator') }
def androidBindingProjects = rootProject.subprojects.findAll { it.name.startsWith('granite-binding-android') }
def java8SupportProjects = rootProject.subprojects.findAll { it.name.startsWith('granite-jmf-java8') }
def allJavaProjects = serverProjects + serverCoreProjects + javaClientProjects + generatorProjects + androidBindingProjects + java8SupportProjects
def allFlexProjects = flexClientProjects
def allProjects = allJavaProjects + allFlexProjects

evaluationDependsOn(':granite-eclipse')
allProjects.each { evaluationDependsOn(':' + it.name) }

dependencies {
server serverProjects
serverCore serverCoreProjects
javaClient javaClientProjects
flexClient flexClientProjects
generator generatorProjects
androidBinding androidBindingProjects
java8Support java8SupportProjects

javaClientDeps 'org.apache.httpcomponents:httpasyncclient:4.0.1'

androidClientDeps project(':granite-client-android').files('lib/android-async-http-1.4.3.jar')

javaClientWebsocket 'org.eclipse.jetty:jetty-client:' + jetty9Version,
'org.eclipse.jetty.websocket:websocket-client:' + jetty9Version
}

task dist(type: Zip, dependsOn: ':granite-eclipse:buildUpdateSite') {
allJavaProjects.each { dependsOn ':' + it.name + ':jar' }
allFlexProjects.each { dependsOn ':' + it.name + ':compileFlex' }

archiveName = 'graniteds-dist-' + granitedsVersion + '.zip'

into ('graniteds-' + granitedsVersion)

from file('README.adoc')

from file('LICENSES.adoc')

into ('licenses') {
from fileTree('licenses')
exclude 'LICENSES.adoc'
}

into ('libraries/server') {
from configurations.server
}
into ('libraries/server/submodules') {
from configurations.serverCore
}
into ('libraries/server/optional-java8') {
from configurations.java8Support
}
into ('libraries/java-client') {
from configurations.javaClient
}
into ('libraries/java-client/dependencies') {
from configurations.javaClientDeps
}
into ('libraries/java-client/dependencies-android') {
from configurations.androidClientDeps
}
into ('libraries/java-client/optional-websocket') {
from configurations.javaClientWebsocket
}
into ('libraries/java-client/optional-java8') {
from configurations.java8Support
}
into ('libraries/flex-client') {
from configurations.flexClient
}
into ('libraries/binding-android') {
from configurations.androidBinding
}

into ('tools') {
from project(':granite-eclipse').configurations.lib
rename { it.startsWith('granite-generator') ? it.substring(0, it.length()-5-granitedsVersion.length()) + '.jar' : null }
}

into ('tools/eclipse') {
from project(':granite-eclipse').file('build/tycho/granite-eclipse-builder-plugin/target/org.granite.builder-' + pluginVersion + '.jar')
}

allJavaProjects.each { subproject ->
subproject.configurations.archives.allArtifacts.findAll { it.classifier == 'sources' }.each { artifact ->
into ('sources/java') { from artifact.file }
}
}
allFlexProjects.each { subproject ->
subproject.configurations.archives.allArtifacts.findAll { it.classifier == 'sources' }.each { artifact ->
into ('sources/as3') { from artifact.file }
}
}
}

task docs(type: Zip, dependsOn: [ ':reference-docs:asciidoctor' ]) {
allJavaProjects.each { dependsOn ':' + it.name + ':javadoc' }
allFlexProjects.each { dependsOn ':' + it.name + ':asdoc' }

archiveName = 'graniteds-docs-' + granitedsVersion + '.zip'

into ('graniteds-' + granitedsVersion)

from file('LICENSES.adoc')

into ('licenses') {
from fileTree('licenses')
exclude 'LICENSES.adoc'
}

into ('docs/reference') {
from project(':reference-docs').fileTree('build/docs')
}

into ('docs/server/api') {
from project(':granite-server').fileTree('build/docs/javadoc')
}
into ('docs/server-udp/api') {
from project(':granite-server-udp').fileTree('build/docs/javadoc')
}
into ('docs/client-flex/api') {
from project(':granite-client-flex45-advanced').fileTree('build/docs/asdoc')
}
into ('docs/client-flex-udp/api') {
from project(':granite-client-flex-udp').fileTree('build/docs/asdoc')
}
into ('docs/client-java/api') {
from project(':granite-client-java').fileTree('build/docs/javadoc')
}
into ('docs/client-java-udp/api') {
from project(':granite-client-java-udp').fileTree('build/docs/javadoc')
}
into ('docs/client-javafx/api') {
from project(':granite-client-javafx').fileTree('build/docs/javadoc')
}
into ('docs/client-android/api') {
from project(':granite-client-android').fileTree('build/docs/javadoc')
}
}

artifacts {
archives file: dist.archivePath, name: 'graniteds-dist', extension: 'zip', builtBy: dist
archives file: docs.archivePath, name: 'graniteds-docs', extension: 'zip', builtBy: docs
}

def bintrayVersion = granitedsVersion

bintray {
user = bintrayUserName
key = bintrayApiKey
configurations = [ 'archives' ]
pkg {
repo = 'graniteds'
userOrg = 'graniteds'
name = 'graniteds-distribution'
desc = 'GraniteDS main distribution'
licenses = [ 'LGPL-2.1', 'GPL-3.0' ]
labels = [ 'graniteds', 'flex', 'amf', 'javafx', 'android' ]
version {
name = bintrayVersion
}
}
}
7 changes: 7 additions & 0 deletions granite-amf/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
// AMF Serialization implementation

description = 'GraniteDS AMF Serialization library'

dependencies {
compile project(':granite-common')
}
17 changes: 17 additions & 0 deletions granite-binding-android/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Android data binding library

dependencies {
compile 'com.google.android:android:4.0.1.2'
}

sourceSets {
main {
java {
source project(':granite-binding').sourceSets.main.java
}
resources {
source project(':granite-binding').sourceSets.main.resources
}
}
}

4 changes: 4 additions & 0 deletions granite-binding/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
// Simple data binding library

description = 'GraniteDS Binding library'

50 changes: 50 additions & 0 deletions granite-client-android-advanced/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
// Android advanced client library

evaluationDependsOn(':granite-client-android')

dependencies {

compile 'javax.inject:javax.inject:1',
'com.google.android:android:4.0.1.2'

compile 'org.jboss.spec.javax.websocket:jboss-websocket-api_1.0_spec:1.0.0.Final',
'org.glassfish.tyrus:tyrus-client:1.4'

compile files('lib/android-async-http-1.4.3.jar')

compile project(':granite-client-android')

testCompile project(':granite-client-java').sourceSets.test.output

testCompile 'org.hibernate:hibernate-core:3.6.10.Final',
'org.hibernate.javax.persistence:hibernate-jpa-2.0-api:1.0.1.Final',
'antlr:antlr:2.7.7'

testCompile project(':granite-server-core'), project(':granite-server-hibernate')
}

// Include sources of java client
sourceSets {
main {
java {
source project(':granite-client-java-advanced').sourceSets.main.java
source project(':granite-binding-android').sourceSets.main.java

exclude androidJavaExcludes
}
resources {
source project(':granite-client-java-advanced').sourceSets.main.resources
source project(':granite-binding-android').sourceSets.main.resources

exclude androidResourceExcludes
}
}
}

sourceSets.main.java.filter.exclude androidJavaExcludes

sourceSets.main.resources.filter.exclude androidResourceExcludes

javadoc {
source = sourceSets.main.java // Redefine here so filter is applied
}
88 changes: 88 additions & 0 deletions granite-client-android/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
// Android client library

rootProject.ext.androidJavaExcludes = [
'org/granite/config/api/**',
'org/granite/config/flex/**',
'org/granite/collections/**',
'org/granite/context/**',
'org/granite/logging/impl/**',
'org/granite/messaging/persistence/*Externalizable*',
'org/granite/scan/**',
'org/granite/client/scan/**',
'org/granite/client/configuration/Client*',
'org/granite/client/configuration/Simple*',
'org/granite/client/messaging/alias/**',
'org/granite/client/messaging/amf/**',
'org/granite/client/messaging/channel/AMF*',
'org/granite/client/messaging/channel/amf/AMF*',
'org/granite/client/messaging/codec/AMF*',
'org/granite/client/messaging/codec/ClientJavaClassDescriptor*',
'org/granite/client/messaging/transport/jetty9/**',
'org/granite/client/messaging/transport/jetty/**',
'org/granite/client/messaging/transport/apache/**',
'org/granite/client/validation/Default*',
'org/granite/client/validation/Notifying*',
'org/granite/client/validation/Server*',
'org/granite/client/validation/Validation*',
'org/granite/client/tide/spring/**',
'org/granite/client/tide/cdi/**',
'org/granite/client/tide/validation/**'
]

rootProject.ext.androidResourceExcludes = [
'unused.txt',
'org/granite/config/*.xsd',
'org/granite/config/*.dtd',
'org/granite/config/*.xml',
'org/granite/client/configuration/granite-config.xml'
]

evaluationDependsOn(':granite-common')
evaluationDependsOn(':granite-jmf')
evaluationDependsOn(':granite-client-java')

dependencies {

compile 'com.google.android:android:4.0.1.2'

compile 'org.jboss.spec.javax.websocket:jboss-websocket-api_1.0_spec:1.0.0.Final',
'org.glassfish.tyrus:tyrus-client:1.4'

compile files('lib/android-async-http-1.4.3.jar')

testCompile project(':granite-client-java').sourceSets.test.output

testCompile 'org.hibernate:hibernate-core:3.6.10.Final',
'org.hibernate.javax.persistence:hibernate-jpa-2.0-api:1.0.1.Final',
'antlr:antlr:2.7.7'

testCompile project(':granite-server-core'), project(':granite-server-hibernate')
}

// Include sources of java client
sourceSets {
main {
java {
source project(':granite-common').sourceSets.main.java
source project(':granite-jmf').sourceSets.main.java
source project(':granite-client-java').sourceSets.compact.java

exclude androidJavaExcludes
}
resources {
source project(':granite-common').sourceSets.main.resources
source project(':granite-jmf').sourceSets.main.resources
source project(':granite-client-java').sourceSets.compact.resources

exclude androidResourceExcludes
}
}
}

sourceSets.main.java.filter.exclude androidJavaExcludes

sourceSets.main.resources.filter.exclude androidResourceExcludes

javadoc {
source = sourceSets.main.java // Redefine here so filter is applied
}
Loading

0 comments on commit 76f34c2

Please sign in to comment.