chiark / gitweb /
Add support for gradle properties via gradleprops
authorDaniel Martí <mvdan@mvdan.cc>
Mon, 24 Aug 2015 22:54:05 +0000 (15:54 -0700)
committerDaniel Martí <mvdan@mvdan.cc>
Mon, 24 Aug 2015 22:54:05 +0000 (15:54 -0700)
docs/fdroid.texi
fdroidserver/build.py
fdroidserver/metadata.py

index 64b1ca96c84cf0d35a4b79f5da6926795b5a3caf..4e87eaf3c7717ffeadc4966fdea38564e8855eab 100644 (file)
@@ -1028,6 +1028,13 @@ builds happen correctly.
 List of Gradle tasks to be run before the assemble task in a Gradle project
 build.
 
+@item gradleprops=<prop1>[,<prop2>,...]
+List of Gradle properties to pass via the command line to Gradle. A property
+can be of the form @code{foo} or of the form @code{key=value}.
+
+For example: @code{gradleprops=enableFoo,someSetting=bar} will result in
+@code{gradle -PenableFoo -PsomeSetting=bar}.
+
 @item antcommands=<target1>[,<target2>,...]
 Specify an alternate set of Ant commands (target) instead of the default
 'release'. It can't be given any flags, such as the path to a build.xml.
index 4695097b326f4d7527a5f862827cc77dccbd62c1..0c2d67dd8475558d8b88e07a9ad56fc596c6581e 100644 (file)
@@ -516,6 +516,9 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
             adapt_gradle(libpath)
 
         cmd = [config['gradle']]
+        if thisbuild['gradleprops']:
+            cmd += ['-P'+kv for kv in thisbuild['gradleprops']]
+
         for task in gradletasks:
             parts = task.split(':')
             parts[-1] = 'clean' + capitalize_intact(parts[-1])
@@ -711,9 +714,13 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
             with open(os.path.join(root_dir, 'build.gradle'), "a") as f:
                 f.write("\nandroid { lintOptions { checkReleaseBuilds false } }\n")
 
-        commands = [config['gradle']] + gradletasks
+        cmd = [config['gradle']]
+        if thisbuild['gradleprops']:
+            cmd += ['-P'+kv for kv in thisbuild['gradleprops']]
+
+        cmd += gradletasks
 
-        p = FDroidPopen(commands, cwd=root_dir)
+        p = FDroidPopen(cmd, cwd=root_dir)
 
     elif thisbuild['type'] == 'ant':
         logging.info("Building Ant project...")
index 09a5d07f6a9e0211b094516e781b5b7091755e39..ae20c47295e37c53626cd0d1beee89ead605454d 100644 (file)
@@ -105,6 +105,7 @@ flag_defaults = OrderedDict([
     ('buildjni', []),
     ('ndk', 'r10e'),  # defaults to latest
     ('preassemble', []),
+    ('gradleprops', []),
     ('antcommands', None),
     ('novcheck', False),
 ])
@@ -522,7 +523,8 @@ def metafieldtype(name):
 
 def flagtype(name):
     if name in ['extlibs', 'srclibs', 'patch', 'rm', 'buildjni', 'preassemble',
-                'update', 'scanignore', 'scandelete', 'gradle', 'antcommands']:
+                'update', 'scanignore', 'scandelete', 'gradle', 'antcommands',
+                'gradleprops']:
         return 'list'
     if name in ['init', 'prebuild', 'build']:
         return 'script'