build.gradle revision 181c04c839c38d6f2b9ef6214c2ec858307a70ee
1181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver/* 2181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * Copyright 2012, Google Inc. 3181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * All rights reserved. 4181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * 5181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * Redistribution and use in source and binary forms, with or without 6181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * modification, are permitted provided that the following conditions are 7181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * met: 8181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * 9181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * * Redistributions of source code must retain the above copyright 10181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * notice, this list of conditions and the following disclaimer. 11181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * * Redistributions in binary form must reproduce the above 12181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * copyright notice, this list of conditions and the following disclaimer 13181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * in the documentation and/or other materials provided with the 14181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * distribution. 15181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * * Neither the name of Google Inc. nor the names of its 16181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * contributors may be used to endorse or promote products derived from 17181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * this software without specific prior written permission. 18181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * 19181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver */ 31181c04c839c38d6f2b9ef6214c2ec858307a70eeBen Gruver 327d7ee58ad94dc2ea4cd35e3b8e14577648e3bdddBen Gruversubprojects { 337d7ee58ad94dc2ea4cd35e3b8e14577648e3bdddBen Gruver apply plugin: 'java' 347d7ee58ad94dc2ea4cd35e3b8e14577648e3bdddBen Gruver 355cf9fe7c0af588670265a5804dfae9ab8bb5c391Ben Gruver ext.baseVersion = '1.3.4' 365cf9fe7c0af588670265a5804dfae9ab8bb5c391Ben Gruver ext.jarVersion = baseVersion 377d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver 387d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver // For non-release builds, we want to append the commit and 397d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver // dirty status to the version 407d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver gradle.taskGraph.whenReady { 417d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver if (!it.hasTask(release)) { 427d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver def versionSuffix 437d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver try { 447d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver def git = org.eclipse.jgit.api.Git.open(file('.')) 457d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver def head = git.getRepository().getRef("HEAD") 467d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver versionSuffix = head.getObjectId().abbreviate(8).name() 477d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver 487d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver if (!git.status().call().clean) { 497d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver versionSuffix += '-dirty' 507d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver } 517d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver } catch (Exception) { 527d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver // In case we can't get the commit for some reason, 537d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver // just use -dev 547d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver versionSuffix = 'dev' 557d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver } 567d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver 575cf9fe7c0af588670265a5804dfae9ab8bb5c391Ben Gruver version = baseVersion + '-' + versionSuffix 585cf9fe7c0af588670265a5804dfae9ab8bb5c391Ben Gruver 595cf9fe7c0af588670265a5804dfae9ab8bb5c391Ben Gruver // use <version>-dev for the jar name, rather than the 605cf9fe7c0af588670265a5804dfae9ab8bb5c391Ben Gruver // full commit+dirty string 615cf9fe7c0af588670265a5804dfae9ab8bb5c391Ben Gruver jarVersion = baseVersion + '-dev' 62c9afead1a95863a28f58df4a46d9395c2a918ad5Ben Gruver } else { 63c9afead1a95863a28f58df4a46d9395c2a918ad5Ben Gruver version = baseVersion 645cf9fe7c0af588670265a5804dfae9ab8bb5c391Ben Gruver } 655cf9fe7c0af588670265a5804dfae9ab8bb5c391Ben Gruver 665cf9fe7c0af588670265a5804dfae9ab8bb5c391Ben Gruver jar { 675cf9fe7c0af588670265a5804dfae9ab8bb5c391Ben Gruver version = jarVersion 687d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver } 697d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver } 707d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver 717d7ee58ad94dc2ea4cd35e3b8e14577648e3bdddBen Gruver repositories { 727d7ee58ad94dc2ea4cd35e3b8e14577648e3bdddBen Gruver mavenCentral() 737d7ee58ad94dc2ea4cd35e3b8e14577648e3bdddBen Gruver } 747d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver 757d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver // Note: please don't use this. This is strictly for the official releases 767d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver // that are posted on the googlecode download page. 777d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver task release { 787d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver } 797d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver} 807d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver 817d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver 827d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruverbuildscript { 837d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver repositories { 847d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver mavenCentral() 857d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver } 867d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver dependencies { 877d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver classpath 'org.eclipse.jgit:org.eclipse.jgit:2.0.0.201206130900-r' 887d1263a4ff78ce92b2008e4664fb855f7d03da87Ben Gruver } 897d7ee58ad94dc2ea4cd35e3b8e14577648e3bdddBen Gruver}