141 lines
3.3 KiB
Meson
141 lines
3.3 KiB
Meson
android_package = 'org.musicpd'
|
|
android_package_path = join_paths(android_package.split('.'))
|
|
|
|
android_ndk = get_option('android_ndk')
|
|
android_sdk = get_option('android_sdk')
|
|
android_abi = get_option('android_abi')
|
|
|
|
android_sdk_build_tools_version = '29.0.3'
|
|
android_sdk_platform = 'android-29'
|
|
|
|
android_build_tools_dir = join_paths(android_sdk, 'build-tools', android_sdk_build_tools_version)
|
|
android_sdk_platform_dir = join_paths(android_sdk, 'platforms', android_sdk_platform)
|
|
|
|
android_aidl = join_paths(android_build_tools_dir, 'aidl')
|
|
android_aapt = join_paths(android_build_tools_dir, 'aapt')
|
|
android_dx = join_paths(android_build_tools_dir, 'dx')
|
|
android_zipalign = join_paths(android_build_tools_dir, 'zipalign')
|
|
android_apksigner = join_paths(android_build_tools_dir, 'apksigner')
|
|
|
|
javac = find_program('javac')
|
|
rsvg_convert = find_program('rsvg-convert')
|
|
convert = find_program('convert')
|
|
zip = find_program('zip')
|
|
|
|
common_cppflags += '-I' + join_paths(meson.current_build_dir(), 'include')
|
|
|
|
#
|
|
# AIDL
|
|
#
|
|
|
|
IMainCallback_java = custom_target(
|
|
'IMainCallback.java',
|
|
output: 'IMainCallback.java',
|
|
input: join_paths(meson.current_source_dir(), 'src', 'IMainCallback.aidl'),
|
|
command: [
|
|
join_paths(meson.current_source_dir(), 'run-aidl.sh'),
|
|
android_aidl,
|
|
'@INPUT@',
|
|
'@OUTPUT@',
|
|
join_paths(meson.current_build_dir(), 'src'),
|
|
android_package_path,
|
|
],
|
|
)
|
|
|
|
IMain_java = custom_target(
|
|
'IMain.java',
|
|
output: 'IMain.java',
|
|
input: join_paths(meson.current_source_dir(), 'src', 'IMain.aidl'),
|
|
depends: IMainCallback_java,
|
|
command: [
|
|
join_paths(meson.current_source_dir(), 'run-aidl.sh'),
|
|
android_aidl,
|
|
'@INPUT@',
|
|
'@OUTPUT@',
|
|
join_paths(meson.current_build_dir(), 'src'),
|
|
android_package_path,
|
|
],
|
|
)
|
|
|
|
#
|
|
# Resources
|
|
#
|
|
|
|
android_icon = custom_target(
|
|
'Android icon',
|
|
output: 'icon.png',
|
|
input: '../mpd.svg',
|
|
command: [
|
|
rsvg_convert, '--width=48', '--height=48', '@INPUT@', '-o', '@OUTPUT@',
|
|
],
|
|
)
|
|
|
|
android_notification_icon = custom_target(
|
|
'Android notification icon',
|
|
output: 'notification_icon.png',
|
|
input: android_icon,
|
|
command: [
|
|
convert, '@INPUT@', '-colorspace', 'Gray', '-gamma', '2.2', '@OUTPUT@',
|
|
],
|
|
)
|
|
|
|
resources_apk = custom_target(
|
|
'resources.apk',
|
|
output: ['resources.apk', 'R.java'],
|
|
input: [
|
|
'res/layout/custom_notification_gb.xml',
|
|
'res/layout/log_item.xml',
|
|
'res/layout/settings.xml',
|
|
'res/values/strings.xml',
|
|
android_icon,
|
|
android_notification_icon,
|
|
],
|
|
command: [
|
|
join_paths(meson.current_source_dir(), 'make-resources-apk.sh'),
|
|
android_aapt,
|
|
join_paths(android_sdk_platform_dir, 'android.jar'),
|
|
android_package,
|
|
android_package_path,
|
|
'@OUTPUT0@',
|
|
],
|
|
)
|
|
|
|
#
|
|
# Compile Java
|
|
#
|
|
|
|
classes_jar = custom_target(
|
|
'classes.jar',
|
|
output: 'classes.jar',
|
|
input: [
|
|
'src/Bridge.java',
|
|
'src/Loader.java',
|
|
'src/Main.java',
|
|
'src/Receiver.java',
|
|
'src/Settings.java',
|
|
IMain_java,
|
|
IMainCallback_java,
|
|
resources_apk[1],
|
|
],
|
|
command: [
|
|
join_paths(meson.current_source_dir(), 'run-javac.sh'),
|
|
javac,
|
|
join_paths(android_sdk_platform_dir, 'android.jar'),
|
|
android_package_path,
|
|
zip,
|
|
'@OUTPUT@',
|
|
'@INPUT@',
|
|
],
|
|
)
|
|
|
|
classes_dex = custom_target(
|
|
'classes.dex',
|
|
output: 'classes.dex',
|
|
input: classes_jar,
|
|
command: [
|
|
android_dx,
|
|
'--dex', '--output', '@OUTPUT@',
|
|
'@INPUT@',
|
|
],
|
|
)
|