Package: cdbs Severity: wishlist Tags: patch Hi,
Gradle [1] is a build tool increasingly used by Java projects, but CDBS doesn't support it yet. I implemented the Gradle support by deriving the .mk files for Ant: https://github.com/ebourg/cdbs/commit/0e15474 The following variables are available to tweak the build: GRADLE_ARGS DEB_GRADLE_BUILD_TASK DEB_GRADLE_INSTALL_TASK DEB_GRADLE_CHECK_TASK DEB_GRADLE_CLEAN_TASK DEB_GRADLE_BUILDFILE DEB_GRADLE_PROPERTYFILE Could you please consider merging this patch? Thank you, Emmanuel Bourg [1] http://www.gradle.org
From 0e154745d988209b2cb3fc7572b0c4a083a87515 Mon Sep 17 00:00:00 2001 From: Emmanuel Bourg <ebo...@apache.org> Date: Thu, 7 Aug 2014 17:13:08 +0200 Subject: [PATCH] Added Gradle support --- 1/class/gradle-vars.mk.in | 56 +++++++++++++++++++++++++++++++++++++++++++++++ 1/class/gradle.mk.in | 55 ++++++++++++++++++++++++++++++++++++++++++++++ Makefile.in | 2 ++ 3 files changed, 113 insertions(+) create mode 100644 1/class/gradle-vars.mk.in create mode 100644 1/class/gradle.mk.in diff --git a/1/class/gradle-vars.mk.in b/1/class/gradle-vars.mk.in new file mode 100644 index 0000000..d0597bd --- /dev/null +++ b/1/class/gradle-vars.mk.in @@ -0,0 +1,56 @@ +# -*- mode: makefile; coding: utf-8 -*- +# Copyright © 2003 Stefan Gybas <sgy...@debian.org> +# Description: Defines useful variables for packages which use Gradle +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +#PATH_RULES# + +ifndef _cdbs_class_gradle_vars +_cdbs_class_gradle_vars = 1 + +# Gradle home directory. Doesn't need to be changed except when using +# nonstandard Gradle installations. +GRADLE_HOME ?= /usr/share/gradle + +# The home directory of the Java Runtime Environment (JRE) or Java Development +# Kit (JDK). You can either directly set JAVA_HOME in debian/rules or set +# JAVA_HOME_DIRS to multiple possible home directories. The first existing +# directory from this list is used for JAVA_HOME. You can also override +# JAVACMD in case you don't want to use the default JAVA_HOME/bin/java. +JAVA_HOME ?= $(shell for jh in $(JAVA_HOME_DIRS); do if [ -x "$$jh/bin/java" ]; then \ + echo $${jh}; exit 0; fi; done) +JAVACMD ?= $(JAVA_HOME)/bin/java + +# Property file for Gradle, defaults to debian/gradle.properties if it exists. +# You may define additional properties that are referenced from build.gradle so +# you don't have to modify upstream's build.gradle. +DEB_GRADLE_PROPERTYFILE ?= $(shell test -f $(CURDIR)/debian/gradle.properties && echo $(CURDIR)/debian/gradle.properties) + +# You can specify additional arguments in GRADLE_ARGS +DEB_GRADLE_INVOKE ?= cd $(DEB_BUILDDIR) && gradle --info --offline --stacktrace --refresh-dependencies --gradle-user-home $(CURDIR)/.gradle \ + $(if $(GRADLE_ARGS),$(GRADLE_ARGS),) \ + $(if $(DEB_GRADLE_BUILDFILE),--build-file $(DEB_GRADLE_BUILDFILE),) \ + $(if $(DEB_GRADLE_PROPERTYFILE),--settings-file $(DEB_GRADLE_PROPERTYFILE),) + +# Targets to invoke for building, installing, testing and cleaning up. +# Building uses the default target from build.xml, installing and testing is +# only called if the corresponding variable is set. You can also specify +# multiple targets for each step. +#DEB_GRADLE_BUILD_TASK = +#DEB_GRADLE_INSTALL_TASK = +#DEB_GRADLE_CHECK_TASK = +DEB_GRADLE_CLEAN_TASK ?= clean + +endif diff --git a/1/class/gradle.mk.in b/1/class/gradle.mk.in new file mode 100644 index 0000000..bb558a9 --- /dev/null +++ b/1/class/gradle.mk.in @@ -0,0 +1,55 @@ +# -*- mode: makefile; coding: utf-8 -*- +# Copyright © 2003 Stefan Gybas <sgy...@debian.org> +# Description: Builds and cleans packages which have an build.gradle file +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +#PATH_RULES# + +ifndef _cdbs_class_gradle +_cdbs_class_gradle = 1 + +include $(_cdbs_rules_path)/buildcore.mk$(_cdbs_makefile_suffix) +include $(_cdbs_class_path)/gradle-vars.mk$(_cdbs_makefile_suffix) + +testsanity:: + @if ! test -x "$(firstword $(JAVACMD))"; then \ + echo "You must specify a valid JAVA_HOME or JAVACMD!"; \ + exit 1; \ + fi + +common-build-arch common-build-indep:: debian/stamp-gradle-build +debian/stamp-gradle-build: + $(DEB_GRADLE_INVOKE) $(DEB_GRADLE_BUILD_TASK) + touch debian/stamp-gradle-build + +clean:: + -$(DEB_GRADLE_INVOKE) $(DEB_GRADLE_CLEAN_TASK) + rm -f debian/stamp-gradle-build + +common-install-arch common-install-indep:: common-install-impl +common-install-impl:: + $(if $(DEB_GRADLE_INSTALL_TASK),$(DEB_GRADLE_INVOKE) $(DEB_GRADLE_INSTALL_TASK),@echo "DEB_GRADLE_INSTALL_TASK unset, skipping default gradle.mk common-install target") + +ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) +common-build-arch common-build-indep:: debian/stamp-gradle-check +debian/stamp-gradle-check: debian/stamp-gradle-build + $(if $(DEB_GRADLE_CHECK_TASK),$(DEB_GRADLE_INVOKE) $(DEB_GRADLE_CHECK_TASK),@echo "DEB_GRADLE_CHECK_TASK unset, not running checks") + $(if $(DEB_GRADLE_CHECK_TASK),touch $@) + +clean:: + $(if $(DEB_GRADLE_CHECK_TASK),rm -f debian/stamp-gradle-check) +endif + +endif diff --git a/Makefile.in b/Makefile.in index 0a01457..65218ee 100644 --- a/Makefile.in +++ b/Makefile.in @@ -291,6 +291,8 @@ all_mk_files = 1/rules/buildvars.mk \ 1/class/cmake.mk \ 1/class/docbookxml.mk \ 1/class/gnome.mk \ + 1/class/gradle-vars.mk \ + 1/class/gradle.mk \ 1/class/kde.mk \ 1/class/langcore.mk \ 1/class/makefile-vars.mk \ -- 2.0.3
signature.asc
Description: OpenPGP digital signature