mirror of
https://github.com/f-droid/fdroidserver.git
synced 2025-11-05 15:00:30 +03:00
add support for gradle kotlin scripts
https://guides.gradle.org/migrating-build-logic-from-groovy-to-kotlin/ Closes fdroid/fdroidserver#613 cherry-picked from Bubu/fdroidserver@7d2e9f9c
This commit is contained in:
parent
3de2d0f56f
commit
9ae41cc1ff
5 changed files with 21 additions and 9 deletions
|
|
@ -468,7 +468,7 @@ def build_local(app, build, vcs, build_dir, output_dir, log_dir, srclib_dir, ext
|
||||||
if f in files:
|
if f in files:
|
||||||
os.remove(os.path.join(root, f))
|
os.remove(os.path.join(root, f))
|
||||||
|
|
||||||
if any(f in files for f in ['build.gradle', 'settings.gradle']):
|
if any(f in files for f in ['build.gradle', 'build.gradle.kts', 'settings.gradle', 'settings.gradle.kts']):
|
||||||
# Even when running clean, gradle stores task/artifact caches in
|
# Even when running clean, gradle stores task/artifact caches in
|
||||||
# .gradle/ as binary files. To avoid overcomplicating the scanner,
|
# .gradle/ as binary files. To avoid overcomplicating the scanner,
|
||||||
# manually delete them, just like `gradle clean` should have removed
|
# manually delete them, just like `gradle clean` should have removed
|
||||||
|
|
|
||||||
|
|
@ -334,7 +334,7 @@ def try_init_submodules(app, last_build, vcs):
|
||||||
def dirs_with_manifest(startdir):
|
def dirs_with_manifest(startdir):
|
||||||
for root, dirs, files in os.walk(startdir):
|
for root, dirs, files in os.walk(startdir):
|
||||||
if any(m in files for m in [
|
if any(m in files for m in [
|
||||||
'AndroidManifest.xml', 'pom.xml', 'build.gradle']):
|
'AndroidManifest.xml', 'pom.xml', 'build.gradle', 'build.gradle.kts']):
|
||||||
yield root
|
yield root
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1301,7 +1301,8 @@ def manifest_paths(app_dir, flavours):
|
||||||
[os.path.join(app_dir, 'AndroidManifest.xml'),
|
[os.path.join(app_dir, 'AndroidManifest.xml'),
|
||||||
os.path.join(app_dir, 'src', 'main', 'AndroidManifest.xml'),
|
os.path.join(app_dir, 'src', 'main', 'AndroidManifest.xml'),
|
||||||
os.path.join(app_dir, 'src', 'AndroidManifest.xml'),
|
os.path.join(app_dir, 'src', 'AndroidManifest.xml'),
|
||||||
os.path.join(app_dir, 'build.gradle')]
|
os.path.join(app_dir, 'build.gradle'),
|
||||||
|
os.path.join(app_dir, 'build.gradle.kts')]
|
||||||
|
|
||||||
for flavour in flavours:
|
for flavour in flavours:
|
||||||
if flavour == 'yes':
|
if flavour == 'yes':
|
||||||
|
|
@ -1788,9 +1789,15 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
|
||||||
|
|
||||||
if build.target:
|
if build.target:
|
||||||
n = build.target.split('-')[1]
|
n = build.target.split('-')[1]
|
||||||
|
build_gradle = os.path.join(root_dir, "build.gradle")
|
||||||
|
build_gradle_kts = build_gradle + ".kts"
|
||||||
|
if os.path.exists(build_gradle):
|
||||||
|
gradlefile = build_gradle
|
||||||
|
elif os.path.exist(build_gradle_kts):
|
||||||
|
gradlefile = build_gradle_kts
|
||||||
regsub_file(r'compileSdkVersion[ =]+[0-9]+',
|
regsub_file(r'compileSdkVersion[ =]+[0-9]+',
|
||||||
r'compileSdkVersion %s' % n,
|
r'compileSdkVersion %s' % n,
|
||||||
os.path.join(root_dir, 'build.gradle'))
|
gradlefile)
|
||||||
|
|
||||||
# Remove forced debuggable flags
|
# Remove forced debuggable flags
|
||||||
remove_debuggable_flags(root_dir)
|
remove_debuggable_flags(root_dir)
|
||||||
|
|
@ -2381,9 +2388,13 @@ gradle_line_matches = [
|
||||||
|
|
||||||
def remove_signing_keys(build_dir):
|
def remove_signing_keys(build_dir):
|
||||||
for root, dirs, files in os.walk(build_dir):
|
for root, dirs, files in os.walk(build_dir):
|
||||||
|
gradlefile = None
|
||||||
if 'build.gradle' in files:
|
if 'build.gradle' in files:
|
||||||
path = os.path.join(root, 'build.gradle')
|
gradlefile = "build.gradle"
|
||||||
|
elif 'build.gradle.kts' in files:
|
||||||
|
gradlefile = "build.gradle.kts"
|
||||||
|
if gradlefile:
|
||||||
|
path = os.path.join(root, gradlefile)
|
||||||
with open(path, "r") as o:
|
with open(path, "r") as o:
|
||||||
lines = o.readlines()
|
lines = o.readlines()
|
||||||
|
|
||||||
|
|
@ -2421,7 +2432,7 @@ def remove_signing_keys(build_dir):
|
||||||
o.write(line)
|
o.write(line)
|
||||||
|
|
||||||
if changed:
|
if changed:
|
||||||
logging.info("Cleaned build.gradle of keysigning configs at %s" % path)
|
logging.info("Cleaned %s of keysigning configs at %s" % (gradlefile, path))
|
||||||
|
|
||||||
for propfile in [
|
for propfile in [
|
||||||
'project.properties',
|
'project.properties',
|
||||||
|
|
|
||||||
|
|
@ -299,7 +299,8 @@ def main():
|
||||||
app.Categories = options.categories.split(',')
|
app.Categories = options.categories.split(',')
|
||||||
if os.path.exists(os.path.join(subdir, 'jni')):
|
if os.path.exists(os.path.join(subdir, 'jni')):
|
||||||
build.buildjni = ['yes']
|
build.buildjni = ['yes']
|
||||||
if os.path.exists(os.path.join(subdir, 'build.gradle')):
|
if os.path.exists(os.path.join(subdir, 'build.gradle')) \
|
||||||
|
or os.path.exists(os.path.join(subdir, 'build.gradle')):
|
||||||
build.gradle = ['yes']
|
build.gradle = ['yes']
|
||||||
|
|
||||||
package_json = os.path.join(build_dir, 'package.json') # react-native
|
package_json = os.path.join(build_dir, 'package.json') # react-native
|
||||||
|
|
|
||||||
|
|
@ -174,7 +174,7 @@ if [[ -n $wrapper_ver ]]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Earliest takes priority
|
# Earliest takes priority
|
||||||
for f in {.,..}/build.gradle; do
|
for f in {.,..}/build.gradle{,.kts}; do
|
||||||
[[ -f $f ]] || continue
|
[[ -f $f ]] || continue
|
||||||
while IFS='' read -r line || [ -n "$line" ]; do
|
while IFS='' read -r line || [ -n "$line" ]; do
|
||||||
if [[ -z "$plugin_pver" && $line == *'com.android.tools.build:gradle:'* ]]; then
|
if [[ -z "$plugin_pver" && $line == *'com.android.tools.build:gradle:'* ]]; then
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue