Files
davidandClaude Opus 5.5 93d2369724 Rename to Federated Calendar
Ship as Federated Calendar, with the application ID
computer.federated.FederatedCalendar and the executable
federated-calendar, so it can be installed and run alongside GNOME
Calendar.

The settings schema follows the application ID too, so the two don't
share settings or install the same schema. The project name sets the
executable, gettext domain and data directory; the desktop file, D-Bus
service, search provider, metainfo and icons follow the application ID.

Internal resource paths and the template file names are unchanged, to
keep merging from GNOME Calendar simple.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 09:01:27 -06:00

89 lines
2.8 KiB
Meson

subdir('icons')
enum_headers = files(src_dir / 'gcal-enums.h')
enums_xml = gnome.mkenums(
'@0@.enums.xml'.format(settings_schema_id),
sources: enum_headers,
comments: '<!-- @comment@ -->',
fhead: '<schemalist>',
vhead: ' <@type@ id="@0@.@EnumName@">'.format(settings_schema_id),
vprod: ' <value nick="@valuenick@" value="@valuenum@"/>',
vtail: ' </@type@>',
ftail: '</schemalist>',
install_header: true,
install_dir: calendar_schemadir
)
# Desktop files
# Note: This name is registered in gcal-weather-service.c.
desktop_conf = configuration_data()
desktop_conf.set('icon', application_id)
desktop_conf.set('binary', meson.project_name())
desktop = i18n.merge_file(
type: 'desktop',
input: configure_file(
input: files('org.gnome.Calendar.desktop.in.in'),
output: 'org.gnome.Calendar.desktop.in',
configuration: desktop_conf
),
output: '@0@.desktop'.format(application_id),
po_dir: po_dir,
install: true,
install_dir: calendar_datadir / 'applications'
)
# GNOME Shell search provider
search_provider_conf = configuration_data()
search_provider_conf.set('appid', application_id)
search_provider_conf.set('profile', profile)
search_provider_conf.set('objectpath', '/' + application_id.replace('.', '/'))
configure_file(
configuration: search_provider_conf,
input: files('org.gnome.Calendar.search-provider.ini.in'),
install_dir: calendar_datadir / 'gnome-shell' / 'search-providers',
output: '@0@.search-provider.ini'.format(application_id)
)
# GSettings schema
schema_conf = configuration_data()
schema_conf.set('GETTEXT_PACKAGE', meson.project_name())
schema_conf.set('SCHEMA_ID', settings_schema_id)
schema_conf.set('SCHEMA_PATH', settings_schema_path)
schema_xml = configure_file(
input: 'org.gnome.calendar.gschema.xml.in',
output: '@0@.gschema.xml'.format(settings_schema_id),
install: true,
install_dir: calendar_schemadir,
configuration: schema_conf
)
output = 'gschemas.compiled'
# for unit tests - gnome.compile_schemas() only looks in srcdir
compiled_schemas = custom_target(
output,
input: schema_xml,
output: output,
command: [find_program('glib-compile-schemas'), meson.current_build_dir()],
depends: enums_xml
)
# DBus service files
service_conf = configuration_data()
service_conf.set('appid', application_id)
service_conf.set('bindir', calendar_bindir)
service_conf.set('binary', meson.project_name())
service = 'org.gnome.Calendar.service'
configure_file(
input: service + '.in',
output: '@0@.service'.format(application_id),
install: true,
install_dir: calendar_datadir / 'dbus-1' / 'services',
configuration: service_conf
)
shell_search_provider_dbus_interfaces = files('shell-search-provider-dbus-interfaces.xml')