513d2cae3e
Also restructure meson.build and the ghactions workflow a bit, and enable -ffunction-sections and -fdata-sections. Note that starcatcher uploads have not been tested and most likely don't work.
103 lines
2.1 KiB
Python
103 lines
2.1 KiB
Python
import os
|
|
import os.path
|
|
import shutil
|
|
import subprocess
|
|
import sys
|
|
|
|
(
|
|
script,
|
|
d8,
|
|
aapt,
|
|
aapt2,
|
|
source_dir,
|
|
build_dir,
|
|
private_name,
|
|
unaligned_name,
|
|
sha_name,
|
|
android_jar,
|
|
sdl_jar,
|
|
powder_jar,
|
|
tpt_arch,
|
|
debug_release,
|
|
manifest_xml,
|
|
*resources,
|
|
) = sys.argv
|
|
|
|
if tpt_arch == 'x86':
|
|
android_arch = 'x86'
|
|
if tpt_arch == 'arm':
|
|
android_arch = 'armeabi-v7a'
|
|
if tpt_arch == 'aarch64':
|
|
android_arch = 'arm64-v8a'
|
|
if tpt_arch == 'x86_64':
|
|
android_arch = 'x86_64'
|
|
|
|
manifest_path = os.path.join(build_dir, manifest_xml)
|
|
sha_path = os.path.join(build_dir, sha_name)
|
|
unaligned_path = os.path.join(build_dir, unaligned_name)
|
|
private_dir = os.path.join(build_dir, private_name)
|
|
arch_dir = os.path.join(private_dir, 'lib', android_arch)
|
|
sha_lib_path = os.path.join(arch_dir, sha_name)
|
|
flat_dir = os.path.join(private_dir, 'flat')
|
|
|
|
if os.path.exists(arch_dir):
|
|
shutil.rmtree(arch_dir)
|
|
os.makedirs(arch_dir)
|
|
if os.path.exists(sha_lib_path):
|
|
os.remove(sha_lib_path)
|
|
if os.path.exists(unaligned_path):
|
|
os.remove(unaligned_path)
|
|
if os.path.exists(flat_dir):
|
|
shutil.rmtree(flat_dir)
|
|
os.makedirs(flat_dir)
|
|
|
|
if subprocess.run([
|
|
aapt2,
|
|
'compile',
|
|
'-o', os.path.join(private_dir, 'flat'),
|
|
*resources,
|
|
], cwd = build_dir).returncode:
|
|
sys.exit(1)
|
|
|
|
aapt2_link_inputs = []
|
|
for root, dirs, files in os.walk(flat_dir):
|
|
for name in files:
|
|
if name.endswith(".flat"):
|
|
aapt2_link_inputs.append(os.path.join(root, name))
|
|
if subprocess.run([
|
|
aapt2,
|
|
'link',
|
|
'-o', unaligned_path,
|
|
'-I', android_jar,
|
|
'--manifest', manifest_path,
|
|
*aapt2_link_inputs,
|
|
]).returncode:
|
|
sys.exit(1)
|
|
|
|
shutil.copy(sha_path, sha_lib_path)
|
|
if subprocess.run([
|
|
aapt,
|
|
'add',
|
|
unaligned_path,
|
|
os.path.join('lib', android_arch, sha_name),
|
|
], cwd = private_dir).returncode:
|
|
sys.exit(1)
|
|
|
|
if subprocess.run([
|
|
d8,
|
|
os.path.join(build_dir, sdl_jar),
|
|
os.path.join(build_dir, powder_jar),
|
|
'--' + debug_release,
|
|
'--lib', android_jar,
|
|
'--min-api', '21',
|
|
], cwd = private_dir).returncode:
|
|
sys.exit(1)
|
|
|
|
if subprocess.run([
|
|
aapt,
|
|
'add',
|
|
unaligned_path,
|
|
'classes.dex',
|
|
], cwd = private_dir).returncode:
|
|
sys.exit(1)
|