diff --git a/.gitignore b/.gitignore index 492e2e8a..c61e0538 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,15 @@ *~ builddir repo +subprojects/**/ +subprojects/*.wrap +!subprojects/ +!subprojects/packagefiles/ +!subprojects/packagefiles/*.patch +!subprojects/granite.wrap +!subprojects/json-glib.wrap +!subprojects/libgee.wrap +!subprojects/granite-stylesheet.wrap +.pixiewood +_build +apks/ diff --git a/build-aux/pixiewood.xml b/build-aux/pixiewood.xml new file mode 100644 index 00000000..b094b337 --- /dev/null +++ b/build-aux/pixiewood.xml @@ -0,0 +1,60 @@ + + + + + + + + + + hack + pthread-restrictions + + + + + + + + + aarch64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/actions/edit-delete-symbolic.svg b/data/icons/scalable/actions/edit-delete-symbolic.svg new file mode 100644 index 00000000..d9b8fd85 --- /dev/null +++ b/data/icons/scalable/actions/edit-delete-symbolic.svg @@ -0,0 +1,29 @@ + + + + + + image/svg+xml + + + + + + + diff --git a/data/icons/scalable/actions/face-angel-symbolic.svg b/data/icons/scalable/actions/face-angel-symbolic.svg new file mode 100644 index 00000000..d9a06bc6 --- /dev/null +++ b/data/icons/scalable/actions/face-angel-symbolic.svg @@ -0,0 +1,19 @@ + + + + diff --git a/data/icons/scalable/actions/face-angry-symbolic.svg b/data/icons/scalable/actions/face-angry-symbolic.svg new file mode 100644 index 00000000..01b36221 --- /dev/null +++ b/data/icons/scalable/actions/face-angry-symbolic.svg @@ -0,0 +1,19 @@ + + + + diff --git a/data/icons/scalable/actions/face-cool-symbolic.svg b/data/icons/scalable/actions/face-cool-symbolic.svg new file mode 100644 index 00000000..44108d2f --- /dev/null +++ b/data/icons/scalable/actions/face-cool-symbolic.svg @@ -0,0 +1,20 @@ + + + + diff --git a/data/icons/scalable/actions/face-crying-symbolic.svg b/data/icons/scalable/actions/face-crying-symbolic.svg new file mode 100644 index 00000000..ba25ce4b --- /dev/null +++ b/data/icons/scalable/actions/face-crying-symbolic.svg @@ -0,0 +1,19 @@ + + + + diff --git a/data/icons/scalable/actions/face-devilish-symbolic.svg b/data/icons/scalable/actions/face-devilish-symbolic.svg new file mode 100644 index 00000000..918042b5 --- /dev/null +++ b/data/icons/scalable/actions/face-devilish-symbolic.svg @@ -0,0 +1,19 @@ + + + + diff --git a/data/icons/scalable/actions/face-embarrassed-symbolic.svg b/data/icons/scalable/actions/face-embarrassed-symbolic.svg new file mode 100644 index 00000000..f3a7156f --- /dev/null +++ b/data/icons/scalable/actions/face-embarrassed-symbolic.svg @@ -0,0 +1,19 @@ + + + + diff --git a/data/icons/scalable/actions/face-heart-broken-symbolic.svg b/data/icons/scalable/actions/face-heart-broken-symbolic.svg new file mode 100644 index 00000000..7654a929 --- /dev/null +++ b/data/icons/scalable/actions/face-heart-broken-symbolic.svg @@ -0,0 +1,20 @@ + + + + diff --git a/data/icons/scalable/actions/face-heart-symbolic.svg b/data/icons/scalable/actions/face-heart-symbolic.svg new file mode 100644 index 00000000..7ef722e7 --- /dev/null +++ b/data/icons/scalable/actions/face-heart-symbolic.svg @@ -0,0 +1,20 @@ + + + + diff --git a/data/icons/scalable/actions/face-kiss-symbolic.svg b/data/icons/scalable/actions/face-kiss-symbolic.svg new file mode 100644 index 00000000..012cc5aa --- /dev/null +++ b/data/icons/scalable/actions/face-kiss-symbolic.svg @@ -0,0 +1,19 @@ + + + + diff --git a/data/icons/scalable/actions/face-laugh-symbolic.svg b/data/icons/scalable/actions/face-laugh-symbolic.svg new file mode 100644 index 00000000..19c986a5 --- /dev/null +++ b/data/icons/scalable/actions/face-laugh-symbolic.svg @@ -0,0 +1,19 @@ + + + + diff --git a/data/icons/scalable/actions/face-monkey-symbolic.svg b/data/icons/scalable/actions/face-monkey-symbolic.svg new file mode 100644 index 00000000..9e270c89 --- /dev/null +++ b/data/icons/scalable/actions/face-monkey-symbolic.svg @@ -0,0 +1,20 @@ + + + + diff --git a/data/icons/scalable/actions/face-plain-symbolic.svg b/data/icons/scalable/actions/face-plain-symbolic.svg new file mode 100644 index 00000000..2635b16a --- /dev/null +++ b/data/icons/scalable/actions/face-plain-symbolic.svg @@ -0,0 +1,19 @@ + + + + diff --git a/data/icons/scalable/actions/face-raspberry-symbolic.svg b/data/icons/scalable/actions/face-raspberry-symbolic.svg new file mode 100644 index 00000000..0fd06d87 --- /dev/null +++ b/data/icons/scalable/actions/face-raspberry-symbolic.svg @@ -0,0 +1,19 @@ + + + + diff --git a/data/icons/scalable/actions/face-sad-symbolic.svg b/data/icons/scalable/actions/face-sad-symbolic.svg new file mode 100644 index 00000000..08ea148c --- /dev/null +++ b/data/icons/scalable/actions/face-sad-symbolic.svg @@ -0,0 +1,19 @@ + + + + diff --git a/data/icons/scalable/actions/face-sick-symbolic.svg b/data/icons/scalable/actions/face-sick-symbolic.svg new file mode 100644 index 00000000..609110f5 --- /dev/null +++ b/data/icons/scalable/actions/face-sick-symbolic.svg @@ -0,0 +1,19 @@ + + + + diff --git a/data/icons/scalable/actions/face-smile-big-symbolic.svg b/data/icons/scalable/actions/face-smile-big-symbolic.svg new file mode 100644 index 00000000..751cf135 --- /dev/null +++ b/data/icons/scalable/actions/face-smile-big-symbolic.svg @@ -0,0 +1,19 @@ + + + + diff --git a/data/icons/scalable/actions/face-smile-symbolic.svg b/data/icons/scalable/actions/face-smile-symbolic.svg new file mode 100644 index 00000000..69a3803d --- /dev/null +++ b/data/icons/scalable/actions/face-smile-symbolic.svg @@ -0,0 +1,19 @@ + + + + diff --git a/data/icons/scalable/actions/face-smirk-symbolic.svg b/data/icons/scalable/actions/face-smirk-symbolic.svg new file mode 100644 index 00000000..f3d5ce27 --- /dev/null +++ b/data/icons/scalable/actions/face-smirk-symbolic.svg @@ -0,0 +1,19 @@ + + + + diff --git a/data/icons/scalable/actions/face-surprise-symbolic.svg b/data/icons/scalable/actions/face-surprise-symbolic.svg new file mode 100644 index 00000000..d036909c --- /dev/null +++ b/data/icons/scalable/actions/face-surprise-symbolic.svg @@ -0,0 +1,19 @@ + + + + diff --git a/data/icons/scalable/actions/face-tired-symbolic.svg b/data/icons/scalable/actions/face-tired-symbolic.svg new file mode 100644 index 00000000..edcb3d6e --- /dev/null +++ b/data/icons/scalable/actions/face-tired-symbolic.svg @@ -0,0 +1,19 @@ + + + + diff --git a/data/icons/scalable/actions/face-uncertain-symbolic.svg b/data/icons/scalable/actions/face-uncertain-symbolic.svg new file mode 100644 index 00000000..162f8996 --- /dev/null +++ b/data/icons/scalable/actions/face-uncertain-symbolic.svg @@ -0,0 +1,19 @@ + + + + diff --git a/data/icons/scalable/actions/face-wink-symbolic.svg b/data/icons/scalable/actions/face-wink-symbolic.svg new file mode 100644 index 00000000..b47c1480 --- /dev/null +++ b/data/icons/scalable/actions/face-wink-symbolic.svg @@ -0,0 +1,19 @@ + + + + diff --git a/data/icons/scalable/actions/face-worried-symbolic.svg b/data/icons/scalable/actions/face-worried-symbolic.svg new file mode 100644 index 00000000..f8815c99 --- /dev/null +++ b/data/icons/scalable/actions/face-worried-symbolic.svg @@ -0,0 +1,19 @@ + + + + diff --git a/data/icons/scalable/actions/list-add-symbolic.svg b/data/icons/scalable/actions/list-add-symbolic.svg new file mode 100644 index 00000000..a9ec1811 --- /dev/null +++ b/data/icons/scalable/actions/list-add-symbolic.svg @@ -0,0 +1,23 @@ + + + + + + + diff --git a/data/icons/scalable/actions/open-menu-symbolic.svg b/data/icons/scalable/actions/open-menu-symbolic.svg new file mode 100644 index 00000000..c9206e36 --- /dev/null +++ b/data/icons/scalable/actions/open-menu-symbolic.svg @@ -0,0 +1,29 @@ + + + + + + image/svg+xml + + + + + + + diff --git a/data/icons/scalable/actions/view-list-symbolic.svg b/data/icons/scalable/actions/view-list-symbolic.svg new file mode 100644 index 00000000..3b60ffff --- /dev/null +++ b/data/icons/scalable/actions/view-list-symbolic.svg @@ -0,0 +1,14 @@ + + diff --git a/data/jorts.gresource.xml.in b/data/jorts.gresource.xml.in index af22535f..931327d0 100644 --- a/data/jorts.gresource.xml.in +++ b/data/jorts.gresource.xml.in @@ -3,5 +3,33 @@ Application.css Themes.css + + icons/scalable/actions/edit-delete-symbolic.svg + icons/scalable/actions/face-sad-symbolic.svg + icons/scalable/actions/face-angel-symbolic.svg + icons/scalable/actions/face-sick-symbolic.svg + icons/scalable/actions/face-angry-symbolic.svg + icons/scalable/actions/face-smile-big-symbolic.svg + icons/scalable/actions/face-cool-symbolic.svg + icons/scalable/actions/face-smile-symbolic.svg + icons/scalable/actions/face-crying-symbolic.svg + icons/scalable/actions/face-smirk-symbolic.svg + icons/scalable/actions/face-devilish-symbolic.svg + icons/scalable/actions/face-surprise-symbolic.svg + icons/scalable/actions/face-embarrassed-symbolic.svg + icons/scalable/actions/face-tired-symbolic.svg + icons/scalable/actions/face-heart-broken-symbolic.svg + icons/scalable/actions/face-uncertain-symbolic.svg + icons/scalable/actions/face-heart-symbolic.svg + icons/scalable/actions/face-wink-symbolic.svg + icons/scalable/actions/face-kiss-symbolic.svg + icons/scalable/actions/face-worried-symbolic.svg + icons/scalable/actions/face-laugh-symbolic.svg + icons/scalable/actions/list-add-symbolic.svg + icons/scalable/actions/face-monkey-symbolic.svg + icons/scalable/actions/open-menu-symbolic.svg + icons/scalable/actions/face-plain-symbolic.svg + icons/scalable/actions/view-list-symbolic.svg + icons/scalable/actions/face-raspberry-symbolic.svg - \ No newline at end of file + diff --git a/data/jorts.metainfo.xml.in.in b/data/jorts.metainfo.xml.in.in index f1b87996..7866548a 100644 --- a/data/jorts.metainfo.xml.in.in +++ b/data/jorts.metainfo.xml.in.in @@ -1,5 +1,5 @@ - + @APP_ID@ CC0-1.0 GPL-3.0+ diff --git a/data/meson.build b/data/meson.build index 9fca466c..4267e6ca 100644 --- a/data/meson.build +++ b/data/meson.build @@ -29,7 +29,8 @@ gschema_file = configure_file( install_data( gschema_file, - install_dir: datadir / 'glib-2.0' / 'schemas' + install_dir: datadir / 'glib-2.0' / 'schemas', + install_tag: 'runtime' ) @@ -47,7 +48,10 @@ subdir('icons') #======================== # FONTS -subdir('fonts') +if not android + subdir('fonts') + +endif #======================== diff --git a/meson.build b/meson.build index b88d99e1..9846a777 100644 --- a/meson.build +++ b/meson.build @@ -3,7 +3,7 @@ project( ['c', 'vala'], # The floor is vala license: 'GPL-3.0-or-later', version: '4.3.0', # Versioning: first should follow Gtk version, second and third depending how proud you are of the update - meson_version: '>= 1.1' # Use meson.option instead of meson_options.txt + meson_version: '>= 1.1' # Use meson.options instead of meson_options.txt ) app_name = meson.project_name() @@ -76,15 +76,20 @@ endif linux = get_option('profile') == 'linux' windows = get_option('profile') == 'windows' +android = get_option('profile') == 'android' # Here is to autodetect and adjust # Remember however that people may do cross compiling, so do not assume by default it is for linux # So avoid else conditions adding linux stuff build_machine_system = build_machine.system() +host_machine_system = host_machine.system() -if build_machine_system == 'windows' +if host_machine_system == 'windows' windows = true +elif host_machine_system == 'android' + android = true + endif # Here is to adjust the project accordingly to stuff @@ -95,6 +100,18 @@ if windows appstream = false libportal = false +elif android + appstream = true + libportal = false + + add_project_arguments([ + '--define=ANDROID', + '--pkg=gtk4', + '--pkg=json-glib-1.0', + '--pkg=glib-2.0' + ], language: 'vala') + + subproject('granite-stylesheet') else # Ideal case, Linux, with all the things appstream = true @@ -132,6 +149,6 @@ subdir('tests') gnome.post_install( glib_compile_schemas: true, - gtk_update_icon_cache: true, + gtk_update_icon_cache: not android, update_desktop_database: true ) diff --git a/meson.options b/meson.options index c0130fdb..c2e46d5e 100644 --- a/meson.options +++ b/meson.options @@ -6,9 +6,9 @@ option('icon_variant', ) option('profile', type : 'combo', - choices : ['linux', 'windows'], + choices : ['linux', 'windows', 'android'], value : 'linux', description : 'What we build for. Switched on automatically on windows machines' ) option('development', type: 'boolean', value: false, description: 'If this is a dev build') -option('legacy_rdnn', type: 'boolean', value: false, description: 'If this uses the io.github.ellie-commons domain (Flathub)') \ No newline at end of file +option('legacy_rdnn', type: 'boolean', value: false, description: 'If this uses the io.github.ellie-commons domain (Flathub)') diff --git a/src/meson.build b/src/meson.build index 8695f126..fa677d4b 100644 --- a/src/meson.build +++ b/src/meson.build @@ -98,5 +98,6 @@ executable( dependencies: dependencies, c_args: '-w', # Because of Vala we get ten thousand warnings we can do nothing about win_subsystem: development ? 'console' : 'windows', # Show a console in windows dev builds. Seem to not bother standard builds + android_exe_type: 'application', install : true ) diff --git a/subprojects/granite-stylesheet.wrap b/subprojects/granite-stylesheet.wrap new file mode 100644 index 00000000..09d8664b --- /dev/null +++ b/subprojects/granite-stylesheet.wrap @@ -0,0 +1,6 @@ +[wrap-git] +directory=granite-stylesheet +url=https://github.com/elementary/stylesheet.git +revision=main +depth=1 +diff_files=granite-stylesheet_install_tag.patch diff --git a/subprojects/granite.wrap b/subprojects/granite.wrap new file mode 100644 index 00000000..9be734f5 --- /dev/null +++ b/subprojects/granite.wrap @@ -0,0 +1,9 @@ +[wrap-git] +directory=granite +url=https://github.com/elementary/granite.git +revision=7.8.1 +depth=1 +diff_files=granite_disable_icon_cache.patch,granite_pass_pkg_args_to_valac.patch + +[provide] +granite-7 = libgranite_dep diff --git a/subprojects/json-glib.wrap b/subprojects/json-glib.wrap new file mode 100644 index 00000000..fbae4039 --- /dev/null +++ b/subprojects/json-glib.wrap @@ -0,0 +1,10 @@ +[wrap-file] +directory = json-glib-1.10.8 +source_url = https://download.gnome.org/sources/json-glib/1.10/json-glib-1.10.8.tar.xz +source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/json-glib_1.10.8-1/json-glib-1.10.8.tar.xz +source_filename = json-glib-1.10.8.tar.xz +source_hash = 55c5c141a564245b8f8fbe7698663c87a45a7333c2a2c56f06f811ab73b212dd +wrapdb_version = 1.10.8-1 + +[provide] +json-glib-1.0 = json_glib_dep diff --git a/subprojects/libgee.wrap b/subprojects/libgee.wrap new file mode 100644 index 00000000..742e7658 --- /dev/null +++ b/subprojects/libgee.wrap @@ -0,0 +1,7 @@ +[wrap-git] +url = https://github.com/frida/libgee +revision = ad17ed847039469fcc2dc711ecfee2bbf7d2bf87 + +[provide] +dependency_names = gee-0.8 + diff --git a/subprojects/packagefiles/granite-stylesheet_install_tag.patch b/subprojects/packagefiles/granite-stylesheet_install_tag.patch new file mode 100644 index 00000000..4add88d6 --- /dev/null +++ b/subprojects/packagefiles/granite-stylesheet_install_tag.patch @@ -0,0 +1,23 @@ +diff --git a/src/gtk-4.0/meson.build b/src/gtk-4.0/meson.build +index a381884..9baec00 100644 +--- a/src/gtk-4.0/meson.build ++++ b/src/gtk-4.0/meson.build +@@ -41,15 +41,15 @@ foreach variant : variants + + meson.add_install_script (install_exec, + variant_target.full_path(), +- dest_theme_dir / 'gtk-4.0' / 'gtk.css' ++ dest_theme_dir / 'gtk-4.0' / 'gtk.css', install_tag: 'runtime' + ) + + meson.add_install_script (install_exec, + variant_dark_target.full_path(), +- dest_theme_dir / 'gtk-4.0' / 'gtk-dark.css' ++ dest_theme_dir / 'gtk-4.0' / 'gtk-dark.css', install_tag: 'runtime' + ) + + install_subdir([ + 'assets', +- ], install_dir: dest_theme_dir / 'gtk-4.0' ) ++ ], install_dir: dest_theme_dir / 'gtk-4.0', install_tag: 'runtime') + endforeach diff --git a/subprojects/packagefiles/granite_disable_icon_cache.patch b/subprojects/packagefiles/granite_disable_icon_cache.patch new file mode 100644 index 00000000..e4bf1d55 --- /dev/null +++ b/subprojects/packagefiles/granite_disable_icon_cache.patch @@ -0,0 +1,11 @@ +diff --git a/meson.build b/meson.build +index 004caaee..fbb7317d 100644 +--- a/meson.build ++++ b/meson.build +@@ -77,5 +77,5 @@ if get_option('demo') + endif + + gnome.post_install( +- gtk_update_icon_cache: true ++ gtk_update_icon_cache: false + ) diff --git a/subprojects/packagefiles/granite_pass_pkg_args_to_valac.patch b/subprojects/packagefiles/granite_pass_pkg_args_to_valac.patch new file mode 100644 index 00000000..67b526e6 --- /dev/null +++ b/subprojects/packagefiles/granite_pass_pkg_args_to_valac.patch @@ -0,0 +1,20 @@ +diff --git a/meson.build b/meson.build +index 004caaee..c11e0b10 100644 +--- a/meson.build ++++ b/meson.build +@@ -28,6 +28,15 @@ else + vala_os_arg = [] + endif + ++if host_machine.system() == 'android' ++ vala_os_arg = ['--define=ANDROID'] ++ ++ add_project_arguments([ ++ '--pkg=gtk4', ++ '--pkg=glib-2.0' ++ ], language: 'vala') ++endif ++ + glib_min_version = '2.50' + if build_machine.system() == 'windows' + gio_os_dep = dependency('gio-windows-2.0', version: '>=' + glib_min_version)