--- /dev/null
+xsltproc = find_program('xsltproc')
+
+man_pages = {
+ 'plymouth1.xml': 'plymouth.1',
+ 'plymouth.xml': 'plymouth.8',
+ 'plymouthd.xml': 'plymouthd.8',
+ 'plymouth-set-default-theme.xml': 'plymouth-set-default-theme.1',
+}
+
+foreach man_xml_input, man_output : man_pages
+ custom_target(man_output,
+ input: man_xml_input,
+ output: man_output,
+ command: [
+ xsltproc,
+ '--nonet',
+ '--stringparam', 'man.output.quietly', '1',
+ '--stringparam', 'funcsynopsis.style', 'ansi',
+ '--stringparam', 'man.th.extra1.suppress', '1',
+ '--stringparam', 'man.authors.section.enabled', '0',
+ '--stringparam', 'man.copyright.section.enabled', '0',
+ '-o', '@OUTPUT@',
+ 'http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl',
+ '@INPUT@',
+ ],
+ install: true,
+ install_dir: get_option('mandir') / 'man' + man_output.substring(-1),
+ )
+endforeach
--- /dev/null
+if use_fallback_logo
+ install_data('bizcom.png',
+ install_dir: get_option('datadir') / 'plymouth',
+ )
+endif
--- /dev/null
+project('plymouth', 'c',
+ meson_version: '>= 0.61',
+ version: run_command(
+ 'date', '+%y.%V.' + run_command(
+ 'git', 'rev-list',
+ run_command('git', 'describe', '--abbrev=0', check: true).stdout().strip() + '..HEAD',
+ '--count',
+ check: true,
+ ).stdout().strip(),
+ '-d', '@' + run_command('git', 'log', '-1', '--pretty=format:%ct', check: true).stdout().strip(),
+ check: true,
+ ).stdout().strip(),
+)
+
+# Modules
+i18n = import('i18n')
+pkgconfig = import('pkgconfig')
+
+# General variables
+plymouth_soversion = '5.0.0'
+
+plymouth_theme_path = get_option('prefix') / get_option('datadir') / 'plymouth' / 'themes'
+plymouth_plugin_path = get_option('prefix') / get_option('libdir') / 'plymouth/'
+plymouth_policy_dir = get_option('prefix') / get_option('datadir') / 'plymouth/'
+plymouth_conf_dir = get_option('prefix') / get_option('sysconfdir') / 'plymouth/'
+plymouth_time_dir = get_option('prefix') / get_option('localstatedir') / 'lib' / 'plymouth'
+
+plymouth_runtime_dir = get_option('runstatedir') / 'plymouth'
+plymouth_runtime_theme_path = plymouth_runtime_dir / 'themes'
+
+# Dependencies
+cc = meson.get_compiler('c')
+lm_dep = cc.find_library('m')
+lrt_dep = cc.find_library('rt')
+ldl_dep = cc.find_library('dl')
+
+libpng_dep = dependency('libpng', version: '>= 1.2.16')
+
+libudev_dep = dependency('libudev', required: get_option('udev'))
+libpango_dep = dependency('pango', required: get_option('pango'))
+libfreetype_dep = dependency('freetype2', required: get_option('freetype'))
+gtk3_dep = dependency('gtk+-3.0', version: '>= 3.14.0', required: get_option('gtk'))
+libdrm_dep = dependency('libdrm', required: get_option('drm'))
+
+if get_option('systemd-integration')
+ systemd_dep = dependency('systemd')
+ systemd_unit_dir = systemd_dep.get_variable('systemdsystemunitdir',
+ pkgconfig_define: [ 'rootprefix', get_option('prefix') ],
+ )
+ systemd_ask_password_agent = find_program('systemd-tty-ask-password-agent')
+endif
+
+if get_option('upstart-monitoring')
+ dbus_dep = dependency('dbus-1')
+ curses_dep = dependency('curses')
+endif
+
+# Logo
+plymouth_logo_file = get_option('logo')
+use_fallback_logo = plymouth_logo_file == ''
+if use_fallback_logo
+ plymouth_logo_file = get_option('prefix') / get_option('datadir') / 'plymouth' / 'bizcom.png'
+endif
+
+# Global C flags
+add_project_arguments([
+ '-D_GNU_SOURCE',
+ ],
+ language: 'c'
+)
+
+# config.h
+conf = configuration_data()
+conf.set_quoted('BOOT_TTY', get_option('boot-tty'))
+conf.set_quoted('SHUTDOWN_TTY', get_option('shutdown-tty'))
+conf.set_quoted('RELEASE_FILE', get_option('release-file'))
+conf.set('HAVE_UDEV', libudev_dep.found())
+conf.set('PLY_ENABLE_TRACING', get_option('tracing'))
+conf.set_quoted('PLYMOUTH_RUNTIME_DIR', plymouth_runtime_dir)
+conf.set_quoted('PLYMOUTH_THEME_PATH', plymouth_theme_path)
+conf.set_quoted('PLYMOUTH_RUNTIME_THEME_PATH', plymouth_runtime_theme_path)
+conf.set_quoted('PLYMOUTH_PLUGIN_PATH', plymouth_plugin_path)
+conf.set_quoted('PLYMOUTH_POLICY_DIR', plymouth_policy_dir)
+conf.set_quoted('PLYMOUTH_CONF_DIR', plymouth_conf_dir)
+conf.set_quoted('PLYMOUTH_TIME_DIRECTORY', plymouth_time_dir)
+conf.set('HAVE_NCURSESW_TERM_H', get_option('upstart-monitoring')? cc.has_header('ncursesw/term.h') : false)
+conf.set('HAVE_NCURSES_TERM_H', get_option('upstart-monitoring')? cc.has_header('ncurses/term.h') : false)
+config_file = configure_file(
+ output: 'config.h',
+ configuration: conf,
+)
+config_h_inc = include_directories('.')
+
+# Subdirectories
+subdir('images')
+subdir('po')
+subdir('src')
+subdir('themes')
+subdir('scripts')
+if get_option('systemd-integration')
+ subdir('systemd-units')
+endif
+if get_option('docs')
+ subdir('docs')
+endif
--- /dev/null
+option('logo',
+ type: 'string',
+ value: '',
+ description: 'Full path for logo used by boot splash plugin (if empty, uses a fallback logo)',
+)
+option('background-color',
+ type: 'string',
+ value: '0x5d5950',
+ description: 'Background color used by boot splash plugins',
+)
+option('background-start-color-stop',
+ type: 'string',
+ value: '0x807c71',
+ description: 'First color stop in background gradients used by boot splash plugins',
+)
+option('background-end-color-stop',
+ type: 'string',
+ value: '0x3a362f',
+ description: 'Last color end in background gradients used by boot splash plugins',
+)
+option('release-file',
+ type: 'string',
+ value: '/etc/system-release',
+ description: 'Release file to use to detect distribution',
+)
+option('runstatedir',
+ type: 'string',
+ value: '/run',
+ description: 'runstatedir',
+)
+option('boot-tty',
+ type: 'string',
+ value: '/dev/tty1',
+ description: 'TTY to use in boot mode',
+)
+option('shutdown-tty',
+ type: 'string',
+ value: '/dev/tty63',
+ description: 'TTY to use in shutdown mode',
+)
+option('tracing',
+ type: 'boolean',
+ value: true,
+ description: 'Build with verbose debug tracing spew',
+)
+option('upstart-monitoring',
+ type: 'boolean',
+ value: false,
+ description: 'Listen for messages on the Upstart D-Bus interface',
+)
+option('systemd-integration',
+ type: 'boolean',
+ value: true,
+ description: 'Coordinate boot up with systemd',
+)
+option('udev',
+ type: 'feature',
+ value: 'auto',
+ description: 'Build with udev support',
+)
+option('pango',
+ type: 'feature',
+ value: 'enabled',
+ description: 'Build with pango support (if enabled, used for encryption prompts)',
+)
+option('freetype',
+ type: 'feature',
+ value: 'enabled',
+ description: 'Build with freetype support (if enabled, used for encryption prompts)',
+)
+option('gtk',
+ type: 'feature',
+ value: 'enabled',
+ description: 'Build with GTK support (if disabled, there is no X11 support)',
+)
+option('drm',
+ type: 'boolean',
+ value: true,
+ description: 'Build with drm kms support',
+)
+option('docs',
+ type: 'boolean',
+ value: true,
+ description: 'Build documentation',
+)
--- /dev/null
+po_dir = meson.current_source_dir()
+
+i18n.gettext(meson.project_name(),
+ preset: 'glib',
+)
--- /dev/null
+configure_file(
+ input: 'plymouth-generate-initrd.in',
+ output: '@BASENAME@',
+ configuration: {
+ 'PLYMOUTH_LIBEXECDIR': get_option('prefix') / get_option('libexecdir'),
+ 'PLYMOUTH_DATADIR': get_option('prefix') / get_option('datadir'),
+ },
+ install_dir: get_option('libexecdir') / 'plymouth',
+ install_mode: 'rwxr-xr-x',
+)
+
+configure_file(
+ input: 'plymouth-populate-initrd.in',
+ output: '@BASENAME@',
+ configuration: {
+ 'PLYMOUTH_LIBEXECDIR': get_option('prefix') / get_option('libexecdir'),
+ 'PLYMOUTH_DATADIR': get_option('prefix') / get_option('datadir'),
+ 'PLYMOUTH_LOGO_FILE': plymouth_logo_file,
+ 'PLYMOUTH_CONF_DIR': plymouth_conf_dir,
+ 'PLYMOUTH_POLICY_DIR': plymouth_policy_dir,
+ 'PLYMOUTH_CLIENT_DIR': get_option('prefix') / get_option('bindir'),
+ 'PLYMOUTH_DAEMON_DIR': get_option('prefix') / get_option('sbindir'),
+ 'SYSTEMD_UNIT_DIR': get_option('systemd-integration')? systemd_unit_dir : '',
+ 'RELEASE_FILE': get_option('release-file'),
+ },
+ install_dir: get_option('libexecdir') / 'plymouth',
+ install_mode: 'rwxr-xr-x',
+)
+
+install_data(
+ 'plymouth-update-initrd',
+ install_dir: get_option('libexecdir') / 'plymouth',
+ install_mode: 'rwxr-xr-x',
+)
+
+configure_file(
+ input: 'plymouth-set-default-theme.in',
+ output: '@BASENAME@',
+ configuration: {
+ 'PLYMOUTH_LIBDIR': get_option('prefix') / get_option('libdir'),
+ 'PLYMOUTH_LIBEXECDIR': get_option('prefix') / get_option('libexecdir'),
+ 'PLYMOUTH_DATADIR': get_option('prefix') / get_option('datadir'),
+ 'PLYMOUTH_CONF_DIR': plymouth_conf_dir,
+ 'PLYMOUTH_POLICY_DIR': plymouth_policy_dir,
+ },
+ install_dir: get_option('sbindir'),
+ install_mode: 'rwxr-xr-x',
+)
+
+install_data(
+ 'bootlog',
+ install_dir: get_option('sysconfdir') / 'logrotate.d',
+)
--- /dev/null
+plymouth_client_src = files(
+ 'ply-boot-client.c',
+ 'plymouth.c',
+)
+
+plymouth_client = executable('plymouth',
+ plymouth_client_src,
+ dependencies: libply_dep,
+ include_directories: [
+ config_h_inc,
+ include_directories('..'),
+ ],
+ install: true,
+)
+
+
+libply_boot_client_src = files(
+ 'ply-boot-client.c',
+)
+
+libply_boot_client = library('ply-boot-client',
+ libply_boot_client_src,
+ dependencies: [ libply_dep ],
+ include_directories: [
+ config_h_inc,
+ include_directories('..'),
+ ],
+ version: plymouth_soversion,
+ install: true,
+)
+
+libply_boot_client_dep = declare_dependency(
+ link_with: libply_boot_client,
+ include_directories: [
+ include_directories('.'),
+ include_directories('..'),
+ ],
+)
+
+libply_boot_client_headers = files(
+ 'ply-boot-client.h',
+ '../ply-boot-protocol.h',
+)
+
+install_headers(libply_boot_client_headers,
+ install_dir: get_option('includedir') / 'plymouth-1' / 'ply-boot-client',
+)
+
+pkgconfig.generate(libply_boot_client,
+ filebase: 'ply-boot-client',
+ name: 'Plymouth',
+ description: 'Client Library for Boot Splash',
+ libraries: [
+ libply,
+ ldl_dep,
+ ],
+ subdirs: [
+ 'plymouth-1/ply',
+ 'plymouth-1/ply-boot-client',
+ ],
+)
--- /dev/null
+libply_splash_core_sources = files(
+ 'ply-boot-splash.c',
+ 'ply-device-manager.c',
+ 'ply-keyboard.c',
+ 'ply-pixel-buffer.c',
+ 'ply-pixel-display.c',
+ 'ply-renderer.c',
+ 'ply-terminal.c',
+ 'ply-text-display.c',
+ 'ply-text-progress-bar.c',
+ 'ply-text-step-bar.c',
+)
+
+libply_splash_core_public_deps = [
+ libply_dep,
+]
+
+libply_splash_core_private_deps = [
+ lm_dep,
+]
+
+if libudev_dep.found()
+ libply_splash_core_private_deps += libudev_dep
+endif
+
+libply_splash_core_cflags = [
+ '-DPLYMOUTH_BACKGROUND_COLOR=@0@'.format(get_option('background-color')),
+ '-DPLYMOUTH_BACKGROUND_START_COLOR=@0@'.format(get_option('background-start-color-stop')),
+ '-DPLYMOUTH_BACKGROUND_END_COLOR=@0@'.format(get_option('background-end-color-stop')),
+ '-DPLYMOUTH_PLUGIN_PATH="@0@"'.format(plymouth_plugin_path),
+]
+
+libply_splash_core = library('ply-splash-core',
+ libply_splash_core_sources,
+ dependencies: libply_splash_core_public_deps + libply_splash_core_private_deps,
+ c_args: libply_splash_core_cflags,
+ include_directories: config_h_inc,
+ version: plymouth_soversion,
+ install: true,
+)
+
+libply_splash_core_dep = declare_dependency(
+ link_with: libply_splash_core,
+ dependencies: libply_dep,
+ include_directories: include_directories('.'),
+)
+
+libply_splash_core_headers = files(
+ 'ply-boot-splash-plugin.h',
+ 'ply-boot-splash.h',
+ 'ply-device-manager.h',
+ 'ply-keyboard.h',
+ 'ply-pixel-buffer.h',
+ 'ply-pixel-display.h',
+ 'ply-renderer-plugin.h',
+ 'ply-renderer.h',
+ 'ply-terminal.h',
+ 'ply-text-display.h',
+ 'ply-text-progress-bar.h',
+ 'ply-text-step-bar.h',
+)
+
+install_headers(libply_splash_core_headers,
+ install_dir: get_option('includedir') / 'plymouth-1' / 'ply-splash-core',
+)
+
+pkgconfig.generate(libply_splash_core,
+ filebase: 'ply-splash-core',
+ name: 'Plymouth',
+ description: 'Utility Library for Boot Splash Plugins',
+ libraries: [
+ libply,
+ ldl_dep,
+ ],
+ subdirs: [
+ 'plymouth-1/ply',
+ 'plymouth-1/ply-splash-core',
+ ],
+ variables: {
+ 'pluginsdir': plymouth_plugin_path,
+ 'themesdir': plymouth_theme_path,
+ 'confdir': plymouth_conf_dir,
+ 'policydir': plymouth_policy_dir,
+ },
+)
--- /dev/null
+libply_splash_graphics_sources = files(
+ 'ply-animation.c',
+ 'ply-capslock-icon.c',
+ 'ply-entry.c',
+ 'ply-image.c',
+ 'ply-keymap-icon.c',
+ 'ply-label.c',
+ 'ply-progress-animation.c',
+ 'ply-progress-bar.c',
+ 'ply-throbber.c',
+)
+
+libply_splash_graphics_deps = [
+ libply_splash_core_dep,
+ lm_dep,
+ libpng_dep,
+]
+
+libply_splash_graphics_cflags = [
+ '-DPLYMOUTH_BACKGROUND_COLOR=@0@'.format(get_option('background-color')),
+ '-DPLYMOUTH_BACKGROUND_START_COLOR=@0@'.format(get_option('background-start-color-stop')),
+ '-DPLYMOUTH_BACKGROUND_END_COLOR=@0@'.format(get_option('background-end-color-stop')),
+ '-DPLYMOUTH_PLUGIN_PATH="@0@"'.format(plymouth_plugin_path),
+]
+
+libply_splash_graphics = library('ply-splash-graphics',
+ libply_splash_graphics_sources,
+ dependencies: libply_splash_graphics_deps,
+ c_args: libply_splash_graphics_cflags,
+ include_directories: config_h_inc,
+ version: plymouth_soversion,
+ install: true,
+)
+
+libply_splash_graphics_dep = declare_dependency(
+ link_with: libply_splash_graphics,
+ include_directories: include_directories('.'),
+)
+
+libply_splash_graphics_headers = files(
+ 'ply-animation.h',
+ 'ply-capslock-icon.h',
+ 'ply-entry.h',
+ 'ply-image.h',
+ 'ply-keymap-icon.h',
+ 'ply-keymap-metadata.h',
+ 'ply-label-plugin.h',
+ 'ply-label.h',
+ 'ply-progress-animation.h',
+ 'ply-progress-bar.h',
+ 'ply-throbber.h',
+)
+
+install_headers(libply_splash_graphics_headers,
+ install_dir: get_option('includedir') / 'plymouth-1' / 'ply-splash-graphics',
+)
+
+pkgconfig.generate(libply_splash_graphics,
+ filebase: 'ply-splash-graphics',
+ name: 'Plymouth',
+ description: 'Graphics Utility Library for Boot Splash Plugins',
+ requires: [
+ 'ply-splash-core',
+ ],
+ subdirs: [
+ 'plymouth-1/ply-splash-graphics',
+ ],
+ variables: {
+ 'pluginsdir': plymouth_plugin_path,
+ 'themesdir': plymouth_theme_path,
+ },
+)
--- /dev/null
+libply_sources = files(
+ 'ply-array.c',
+ 'ply-bitarray.c',
+ 'ply-buffer.c',
+ 'ply-command-parser.c',
+ 'ply-event-loop.c',
+ 'ply-hashtable.c',
+ 'ply-key-file.c',
+ 'ply-list.c',
+ 'ply-logger.c',
+ 'ply-progress.c',
+ 'ply-rectangle.c',
+ 'ply-region.c',
+ 'ply-terminal-session.c',
+ 'ply-trigger.c',
+ 'ply-utils.c',
+)
+
+libply = library('ply',
+ libply_sources,
+ include_directories: config_h_inc,
+ version: plymouth_soversion,
+ install: true,
+)
+
+libply_dep = declare_dependency(
+ link_with: libply,
+ include_directories: include_directories('.'),
+)
+
+libply_headers = files(
+ 'ply-array.h',
+ 'ply-bitarray.h',
+ 'ply-buffer.h',
+ 'ply-command-parser.h',
+ 'ply-event-loop.h',
+ 'ply-hashtable.h',
+ 'ply-i18n.h',
+ 'ply-key-file.h',
+ 'ply-list.h',
+ 'ply-logger.h',
+ 'ply-progress.h',
+ 'ply-rectangle.h',
+ 'ply-region.h',
+ 'ply-terminal-session.h',
+ 'ply-trigger.h',
+ 'ply-utils.h',
+)
+
+install_headers(libply_headers,
+ install_dir: get_option('includedir') / 'plymouth-1' / 'ply',
+)
--- /dev/null
+# The library subdirectories first
+subdir('libply')
+subdir('libply-splash-core')
+subdir('libply-splash-graphics')
+
+# plymouthd
+plymouthd_run_dir = plymouth_runtime_dir
+plymouthd_spool_dir = '/var/spool/plymouth'
+plymouthd_time_dir = plymouth_time_dir
+
+plymouthd_sources = files(
+ 'main.c',
+ 'plugins/splash/details/plugin.c',
+ 'ply-boot-protocol.h',
+ 'ply-boot-server.c',
+ 'ply-boot-server.h',
+)
+
+plymouthd_deps = [
+ libply_dep,
+ libply_splash_core_dep,
+]
+
+plymouthd_cflags = [
+ '-DPLYMOUTH_LOCALE_DIRECTORY="@0@"'.format(get_option('localedir')),
+ '-DPLYMOUTH_DRM_ESCROW_DIRECTORY="@0@"'.format(get_option('libexecdir') / 'plymouth'),
+ '-DPLYMOUTH_LOG_DIRECTORY="@0@"'.format('/var/log'),
+ '-DPLYMOUTH_SPOOL_DIRECTORY="@0@"'.format(plymouthd_spool_dir),
+]
+
+plymouthd = executable('plymouthd',
+ plymouthd_sources,
+ dependencies: plymouthd_deps,
+ c_args: plymouthd_cflags,
+ include_directories: config_h_inc,
+ install: true,
+ install_dir: get_option('sbindir'),
+)
+
+plymouthd_fd_escrow = executable('plymouthd-fd-escrow',
+ 'plymouthd-fd-escrow.c',
+ install: true,
+ install_dir: get_option('libexecdir') / 'plymouth',
+)
+
+install_data('plymouthd.defaults',
+ install_dir: plymouth_policy_dir,
+)
+
+install_data('plymouthd.conf',
+ install_dir: plymouth_conf_dir,
+)
+
+install_emptydir(plymouthd_run_dir)
+install_emptydir(plymouthd_spool_dir)
+install_emptydir(plymouthd_time_dir)
+
+
+# These subdirectories last
+subdir('plugins')
+subdir('client')
+if get_option('upstart-monitoring')
+ subdir('upstart-bridge')
+endif
--- /dev/null
+label_plugin = shared_module('label-freetype',
+ 'plugin.c',
+ dependencies: [
+ libfreetype_dep,
+ libply_dep,
+ libply_splash_core_dep,
+ libply_splash_graphics_dep,
+ ],
+ include_directories: config_h_inc,
+ name_prefix: '',
+ install: true,
+ install_dir: plymouth_plugin_path,
+)
--- /dev/null
+label_plugin = shared_module('label-pango',
+ 'plugin.c',
+ dependencies: [
+ libpango_dep,
+ libply_dep,
+ libply_splash_core_dep,
+ libply_splash_graphics_dep,
+ ],
+ include_directories: config_h_inc,
+ name_prefix: '',
+ install: true,
+ install_dir: plymouth_plugin_path,
+)
--- /dev/null
+if libpango_dep.found()
+ subdir('label-pango')
+endif
+
+if libfreetype_dep.found()
+ subdir('label-freetype')
+endif
--- /dev/null
+subdir('controls')
+subdir('splash')
+subdir('renderers')
--- /dev/null
+drm_plugin = shared_module('drm',
+ 'plugin.c',
+ dependencies: [
+ libply_dep,
+ libply_splash_core_dep,
+ libdrm_dep,
+ ],
+ include_directories: config_h_inc,
+ name_prefix: '',
+ install: true,
+ install_dir: plymouth_plugin_path / 'renderers',
+)
--- /dev/null
+frame_buffer_plugin = shared_module('frame-buffer',
+ 'plugin.c',
+ dependencies: [
+ libply_dep,
+ libply_splash_core_dep,
+ ],
+ include_directories: config_h_inc,
+ name_prefix: '',
+ install: true,
+ install_dir: plymouth_plugin_path / 'renderers',
+)
--- /dev/null
+subdir('frame-buffer')
+
+if libdrm_dep.found()
+ subdir('drm')
+endif
+
+if gtk3_dep.found()
+ subdir('x11')
+endif
--- /dev/null
+x11_plugin = shared_module('x11',
+ 'plugin.c',
+ dependencies: [
+ libply_dep,
+ libply_splash_core_dep,
+ gtk3_dep,
+ ],
+ include_directories: config_h_inc,
+ name_prefix: '',
+ install: true,
+ install_dir: plymouth_plugin_path / 'renderers',
+)
--- /dev/null
+details_plugin = shared_module('details',
+ 'plugin.c',
+ dependencies: [
+ libply_splash_core_dep,
+ libply_splash_graphics_dep,
+ ],
+ include_directories: config_h_inc,
+ name_prefix: '',
+ install: true,
+ install_dir: plymouth_plugin_path,
+)
--- /dev/null
+fade_throbber_plugin = shared_module('fade-throbber',
+ 'plugin.c',
+ dependencies: [
+ libply_splash_core_dep,
+ libply_splash_graphics_dep,
+ ],
+ c_args: [
+ '-DPLYMOUTH_LOGO_FILE="@0@"'.format(plymouth_logo_file),
+ '-DPLYMOUTH_BACKGROUND_COLOR=@0@'.format(get_option('background-color')),
+ '-DPLYMOUTH_BACKGROUND_START_COLOR=@0@'.format(get_option('background-start-color-stop')),
+ '-DPLYMOUTH_BACKGROUND_END_COLOR=@0@'.format(get_option('background-end-color-stop')),
+ ],
+ include_directories: config_h_inc,
+ name_prefix: '',
+ install: true,
+ install_dir: plymouth_plugin_path,
+)
--- /dev/null
+subdir('fade-throbber')
+subdir('text')
+subdir('details')
+subdir('space-flares')
+subdir('two-step')
+subdir('script')
+subdir('tribar')
--- /dev/null
+#!/usr/bin/env python3
+
+import os
+import pathlib
+import sys
+
+if len(sys.argv) != 2:
+ print('Expected 1 argument, but got {}'.format(len(sys.argv) - 1))
+ sys.exit(1)
+
+input_path = pathlib.Path(sys.argv[1])
+
+variable_name = input_path.stem.replace('-', '_')
+print('static const char *{} ='.format(variable_name))
+
+for line in input_path.read_text().splitlines():
+ # escape backlashes
+ line = line.replace('\\', '\\\\')
+ # escape internal quotes
+ line = line.replace('"', '\\"')
+ # print with quotes (so it becomes a C literal string)
+ print(' "' + line + '\\n"')
+
+print(';')
--- /dev/null
+script_inputs = [
+ 'image',
+ 'math',
+ 'plymouth',
+ 'sprite',
+ 'string',
+]
+
+generate_script_string_header_py = find_program('generate_script_string_header.py')
+
+script_headers = []
+foreach s : script_inputs
+ s_input_file = 'script-lib-@0@.script'.format(s)
+
+ s_header = custom_target(
+ input: s_input_file,
+ output: s_input_file + '.h',
+ command: [
+ generate_script_string_header_py,
+ '@INPUT@',
+ ],
+ capture: true,
+ )
+
+ script_headers += s_header
+endforeach
+
+script_plugin_src = files(
+ 'plugin.c',
+ 'script-debug.c',
+ 'script-execute.c',
+ 'script-lib-image.c',
+ 'script-lib-math.c',
+ 'script-lib-plymouth.c',
+ 'script-lib-sprite.c',
+ 'script-lib-string.c',
+ 'script-object.c',
+ 'script-parse.c',
+ 'script-scan.c',
+ 'script.c',
+)
+
+script_plugin = shared_module('script',
+ [ 'plugin.c', script_headers ],
+ dependencies: [
+ libply_splash_core_dep,
+ libply_splash_graphics_dep,
+ ],
+ c_args: [
+ '-DPLYMOUTH_LOGO_FILE="@0@"'.format(plymouth_logo_file),
+ ],
+ include_directories: config_h_inc,
+ name_prefix: '',
+ install: true,
+ install_dir: plymouth_plugin_path,
+)
--- /dev/null
+space_flares_plugin = shared_module('space-flares',
+ 'plugin.c',
+ dependencies: [
+ libply_splash_core_dep,
+ libply_splash_graphics_dep,
+ ],
+ c_args: [
+ '-DPLYMOUTH_LOGO_FILE="@0@"'.format(plymouth_logo_file),
+ ],
+ include_directories: config_h_inc,
+ name_prefix: '',
+ install: true,
+ install_dir: plymouth_plugin_path,
+)
--- /dev/null
+text_plugin = shared_module('text',
+ 'plugin.c',
+ dependencies: [
+ libply_splash_core_dep,
+ libply_splash_graphics_dep,
+ ],
+ include_directories: config_h_inc,
+ name_prefix: '',
+ install: true,
+ install_dir: plymouth_plugin_path,
+)
--- /dev/null
+tribar_plugin = shared_module('tribar',
+ 'plugin.c',
+ dependencies: [
+ libply_splash_core_dep,
+ ],
+ include_directories: config_h_inc,
+ name_prefix: '',
+ install: true,
+ install_dir: plymouth_plugin_path,
+)
--- /dev/null
+two_step_plugin = shared_module('two-step',
+ 'plugin.c',
+ dependencies: [
+ libply_splash_core_dep,
+ libply_splash_graphics_dep,
+ ],
+ c_args: [
+ '-DPLYMOUTH_BACKGROUND_START_COLOR=@0@'.format(get_option('background-start-color-stop')),
+ '-DPLYMOUTH_BACKGROUND_END_COLOR=@0@'.format(get_option('background-end-color-stop')),
+ ],
+ include_directories: config_h_inc,
+ name_prefix: '',
+ install: true,
+ install_dir: plymouth_plugin_path,
+)
--- /dev/null
+plymouth_upstart_bridge_src = files(
+ 'ply-upstart-monitor.c',
+ 'plymouth-upstart-bridge.c',
+)
+
+plymouth_upstart_bridge_deps = [
+ libply_dep,
+ libply_boot_client_dep,
+ dbus_dep,
+ curses_dep,
+]
+
+plymouth_upstart_bridge = executable('plymouth-upstart-bridge',
+ plymouth_upstart_bridge_src,
+ dependencies: plymouth_upstart_bridge_deps,
+ include_directories: config_h_inc,
+ install: true,
+)
--- /dev/null
+systemd_unit_templates = [
+ 'plymouth-switch-root.service.in',
+ 'plymouth-switch-root-initramfs.service.in',
+ 'plymouth-start.service.in',
+ 'plymouth-read-write.service.in',
+ 'plymouth-quit.service.in',
+ 'plymouth-quit-wait.service.in',
+ 'plymouth-reboot.service.in',
+ 'plymouth-kexec.service.in',
+ 'plymouth-poweroff.service.in',
+ 'plymouth-halt.service.in',
+ 'systemd-ask-password-plymouth.path.in',
+ 'systemd-ask-password-plymouth.service.in',
+]
+
+foreach unit_templ : systemd_unit_templates
+ configure_file(
+ input: unit_templ,
+ output: '@BASENAME@',
+ configuration: {
+ 'PLYMOUTH_CLIENT_DIR': get_option('prefix') / get_option('bindir'),
+ 'PLYMOUTH_DAEMON_DIR': get_option('prefix') / get_option('sbindir'),
+ 'plymouthruntimedir': plymouth_runtime_dir,
+ 'SYSTEMD_ASK_PASSWORD_AGENT': systemd_ask_password_agent.full_path(),
+ },
+ install: true,
+ install_dir: systemd_unit_dir,
+ )
+endforeach
+
+systemd_target_links = [
+ {
+ 'target': 'initrd-switch-root.target.wants',
+ 'services': [ 'plymouth-start', 'plymouth-switch-root' ],
+ },
+ {
+ 'target': 'sysinit.target.wants',
+ 'services': [ 'plymouth-start', 'plymouth-read-write' ],
+ },
+ {
+ 'target': 'multi-user.target.wants',
+ 'services': [ 'plymouth-quit', 'plymouth-quit-wait' ],
+ },
+ {
+ 'target': 'reboot.target.wants',
+ 'services': [ 'plymouth-reboot', 'plymouth-switch-root-initramfs' ],
+ },
+ {
+ 'target': 'kexec.target.wants',
+ 'services': [ 'plymouth-kexec', 'plymouth-switch-root-initramfs' ],
+ },
+ {
+ 'target': 'poweroff.target.wants',
+ 'services': [ 'plymouth-poweroff', 'plymouth-switch-root-initramfs' ],
+ },
+ {
+ 'target': 'halt.target.wants',
+ 'services': [ 'plymouth-halt', 'plymouth-switch-root-initramfs' ],
+ },
+]
+
+foreach entry : systemd_target_links
+ foreach service : entry['services']
+ install_symlink(
+ service + '.service',
+ install_dir: systemd_unit_dir / entry['target'],
+ pointing_to: '..' / service + '.service',
+ )
+ endforeach
+endforeach
--- /dev/null
+bgrt_plymouth = i18n.merge_file(
+ input: configure_file(
+ input: 'bgrt.plymouth.desktop',
+ output: 'bgrt.plymouth.desktop',
+ configuration: {
+ 'PLYMOUTH_THEME_PATH': plymouth_theme_path,
+ },
+ ),
+ output: 'bgrt.plymouth',
+ type: 'desktop',
+ po_dir: po_dir,
+ install: true,
+ install_dir: plymouth_theme_path / 'bgrt',
+)
--- /dev/null
+install_data(
+ 'details.plymouth',
+ install_dir: plymouth_theme_path / 'details',
+)
--- /dev/null
+fade_in_plymouth = configure_file(
+ input: 'fade-in.plymouth.in',
+ output: '@BASENAME@',
+ configuration: {
+ 'PLYMOUTH_THEME_PATH': plymouth_theme_path,
+ },
+ install: true,
+ install_dir: plymouth_theme_path / 'fade-in',
+)
+
+install_data(
+ 'star.png',
+ 'bullet.png',
+ 'entry.png',
+ 'lock.png',
+ install_dir: plymouth_theme_path / 'fade-in',
+)
--- /dev/null
+glow_plymouth = configure_file(
+ input: 'glow.plymouth.in',
+ output: '@BASENAME@',
+ configuration: {
+ 'PLYMOUTH_THEME_PATH': plymouth_theme_path,
+ },
+ install: true,
+ install_dir: plymouth_theme_path / 'glow',
+)
+
+install_data(
+ 'box.png',
+ 'bullet.png',
+ 'entry.png',
+ 'lock.png',
+ 'progress-00.png',
+ 'progress-01.png',
+ 'progress-02.png',
+ 'progress-03.png',
+ 'progress-04.png',
+ 'progress-05.png',
+ 'progress-06.png',
+ 'progress-07.png',
+ 'progress-08.png',
+ 'progress-09.png',
+ 'progress-10.png',
+ 'progress-11.png',
+ 'progress-12.png',
+ 'progress-13.png',
+ 'progress-14.png',
+ 'progress-15.png',
+ 'progress-16.png',
+ 'progress-17.png',
+ 'progress-18.png',
+ 'progress-19.png',
+ 'progress-20.png',
+ 'progress-21.png',
+ 'progress-22.png',
+ 'progress-23.png',
+ 'progress-24.png',
+ 'progress-25.png',
+ 'progress-26.png',
+ 'progress-27.png',
+ 'progress-28.png',
+ 'progress-29.png',
+ 'progress-30.png',
+ 'progress-31.png',
+ 'progress-32.png',
+ 'throbber-00.png',
+ 'throbber-01.png',
+ 'throbber-02.png',
+ 'throbber-03.png',
+ 'throbber-04.png',
+ 'throbber-05.png',
+ 'throbber-06.png',
+ 'throbber-07.png',
+ 'throbber-08.png',
+ 'throbber-09.png',
+ 'throbber-10.png',
+ 'throbber-11.png',
+ 'throbber-12.png',
+ 'throbber-13.png',
+ 'throbber-14.png',
+ 'throbber-15.png',
+ 'throbber-16.png',
+ 'throbber-17.png',
+ 'throbber-18.png',
+ 'throbber-19.png',
+ install_dir: plymouth_theme_path / 'glow',
+)
--- /dev/null
+subdir('spinfinity')
+subdir('fade-in')
+subdir('text')
+subdir('details')
+subdir('solar')
+subdir('glow')
+subdir('script')
+subdir('spinner')
+subdir('tribar')
+subdir('bgrt')
--- /dev/null
+script_plymouth = configure_file(
+ input: 'script.plymouth.in',
+ output: '@BASENAME@',
+ configuration: {
+ 'PLYMOUTH_THEME_PATH': plymouth_theme_path,
+ },
+ install: true,
+ install_dir: plymouth_theme_path / 'script',
+)
+
+install_data(
+ 'script.script',
+ 'box.png',
+ 'bullet.png',
+ 'entry.png',
+ 'lock.png',
+ 'progress_box.png',
+ 'progress_bar.png',
+ install_dir: plymouth_theme_path / 'script',
+)
--- /dev/null
+solar_plymouth = configure_file(
+ input: 'solar.plymouth.in',
+ output: '@BASENAME@',
+ configuration: {
+ 'PLYMOUTH_THEME_PATH': plymouth_theme_path,
+ },
+ install: true,
+ install_dir: plymouth_theme_path / 'solar',
+)
+
+install_data(
+ 'box.png',
+ 'bullet.png',
+ 'entry.png',
+ 'lock.png',
+ 'progress_bar.png',
+ 'star.png',
+ install_dir: plymouth_theme_path / 'solar',
+)
--- /dev/null
+spinfinity_plymouth = configure_file(
+ input: 'spinfinity.plymouth.in',
+ output: '@BASENAME@',
+ configuration: {
+ 'PLYMOUTH_THEME_PATH': plymouth_theme_path,
+ },
+ install: true,
+ install_dir: plymouth_theme_path / 'spinfinity',
+)
+
+install_data(
+ 'box.png',
+ 'bullet.png',
+ 'entry.png',
+ 'lock.png',
+ 'capslock.png',
+ 'keyboard.png',
+ 'keymap-render.png',
+ 'animation-0001.png',
+ 'throbber-00.png',
+ 'throbber-01.png',
+ 'throbber-02.png',
+ 'throbber-03.png',
+ 'throbber-04.png',
+ 'throbber-05.png',
+ 'throbber-06.png',
+ 'throbber-07.png',
+ 'throbber-08.png',
+ 'throbber-09.png',
+ 'throbber-10.png',
+ 'throbber-11.png',
+ 'throbber-12.png',
+ 'throbber-13.png',
+ 'throbber-14.png',
+ 'throbber-15.png',
+ 'throbber-16.png',
+ 'throbber-17.png',
+ 'throbber-18.png',
+ 'throbber-19.png',
+ 'throbber-20.png',
+ 'throbber-21.png',
+ 'throbber-22.png',
+ 'throbber-23.png',
+ 'throbber-24.png',
+ 'throbber-25.png',
+ 'throbber-26.png',
+ 'throbber-27.png',
+ 'throbber-28.png',
+ 'throbber-29.png',
+ 'throbber-30.png',
+ 'throbber-31.png',
+ 'throbber-32.png',
+ 'throbber-33.png',
+ install_dir: plymouth_theme_path / 'spinfinity',
+)
+
+install_symlink('header-image.png',
+ install_dir: plymouth_theme_path / 'spinfinity',
+ pointing_to: plymouth_logo_file,
+)
--- /dev/null
+spinner_plymouth = i18n.merge_file(
+ input: configure_file(
+ input: 'spinner.plymouth.desktop',
+ output: 'spinner.plymouth.desktop',
+ configuration: {
+ 'PLYMOUTH_THEME_PATH': plymouth_theme_path,
+ },
+ ),
+ output: 'spinner.plymouth',
+ type: 'desktop',
+ po_dir: po_dir,
+ install: true,
+ install_dir: plymouth_theme_path / 'spinner',
+)
+
+install_data(
+ 'bullet.png',
+ 'entry.png',
+ 'lock.png',
+ 'capslock.png',
+ 'keyboard.png',
+ 'keymap-render.png',
+ 'animation-0001.png',
+ 'animation-0002.png',
+ 'animation-0003.png',
+ 'animation-0004.png',
+ 'animation-0005.png',
+ 'animation-0006.png',
+ 'animation-0007.png',
+ 'animation-0008.png',
+ 'animation-0009.png',
+ 'animation-0010.png',
+ 'animation-0011.png',
+ 'animation-0012.png',
+ 'animation-0013.png',
+ 'animation-0014.png',
+ 'animation-0015.png',
+ 'animation-0016.png',
+ 'animation-0017.png',
+ 'animation-0018.png',
+ 'animation-0019.png',
+ 'animation-0020.png',
+ 'animation-0021.png',
+ 'animation-0022.png',
+ 'animation-0023.png',
+ 'animation-0024.png',
+ 'animation-0025.png',
+ 'animation-0026.png',
+ 'animation-0027.png',
+ 'animation-0028.png',
+ 'animation-0029.png',
+ 'animation-0030.png',
+ 'animation-0031.png',
+ 'animation-0032.png',
+ 'animation-0033.png',
+ 'animation-0034.png',
+ 'animation-0035.png',
+ 'animation-0036.png',
+ 'throbber-0001.png',
+ 'throbber-0002.png',
+ 'throbber-0003.png',
+ 'throbber-0004.png',
+ 'throbber-0005.png',
+ 'throbber-0006.png',
+ 'throbber-0007.png',
+ 'throbber-0008.png',
+ 'throbber-0009.png',
+ 'throbber-0010.png',
+ 'throbber-0011.png',
+ 'throbber-0012.png',
+ 'throbber-0013.png',
+ 'throbber-0014.png',
+ 'throbber-0015.png',
+ 'throbber-0016.png',
+ 'throbber-0017.png',
+ 'throbber-0018.png',
+ 'throbber-0019.png',
+ 'throbber-0020.png',
+ 'throbber-0021.png',
+ 'throbber-0022.png',
+ 'throbber-0023.png',
+ 'throbber-0024.png',
+ 'throbber-0025.png',
+ 'throbber-0026.png',
+ 'throbber-0027.png',
+ 'throbber-0028.png',
+ 'throbber-0029.png',
+ 'throbber-0030.png',
+ install_dir: plymouth_theme_path / 'spinner',
+)
--- /dev/null
+install_data(
+ 'text.plymouth',
+ install_dir: plymouth_theme_path / 'text',
+)
--- /dev/null
+install_data(
+ 'tribar.plymouth',
+ install_dir: plymouth_theme_path / 'tribar',
+)