meson.build 2.2 KB
Newer Older
1
project('gnome-shell-extensions',
2
  version: '3.32.0',
3
  meson_version: '>= 0.44.0',
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
  license: 'GPL2+'
)

gettext_domain = meson.project_name()

gnome = import('gnome')
i18n = import('i18n')

datadir = get_option('datadir')

shelldir = join_paths(datadir, 'gnome-shell')
extensiondir = join_paths(shelldir, 'extensions')
modedir = join_paths(shelldir, 'modes')
themedir = join_paths(shelldir, 'theme')

schemadir = join_paths(datadir, 'glib-2.0', 'schemas')
sessiondir = join_paths(datadir, 'gnome-session', 'sessions')
21
xsessiondir = join_paths(datadir, 'xsessions')
22

23
js60 = find_program('js60', required: false)
24 25 26 27 28 29 30 31

ver_arr = meson.project_version().split('.')
if ver_arr[1].to_int().is_even()
  shell_version = '@0@.@1@'.format(ver_arr[0], ver_arr[1])
else
  shell_version = '.'.join(ver_arr)
endif

32 33
uuid_suffix = '@gnome-shell-extensions.gcampax.github.com'

34 35
classic_extensions = [
  'apps-menu',
36
  'places-menu',
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
  'launch-new-instance',
  'window-list'
]

default_extensions = classic_extensions
default_extensions += [
  'drive-menu',
  'screenshot-window-sizer',
  'windowsNavigator',
  'workspace-indicator'
]

all_extensions = default_extensions
all_extensions += [
  'auto-move-windows',
  'native-window-placement',
  'user-theme'
]

56
enabled_extensions = get_option('enable_extensions')
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89

if enabled_extensions.length() == 0
  set = get_option('extension_set')

  if set == 'classic'
    enabled_extensions += classic_extensions
  elif set == 'default'
    enabled_extensions += default_extensions
  elif set == 'all'
    enabled_extensions += all_extensions
  endif
endif

classic_mode_enabled = get_option('classic_mode')

if classic_mode_enabled
  # Sanity check: Make sure all classic extensions are enabled
  foreach e : classic_extensions
    if not enabled_extensions.contains(e)
      error('Classic mode is enabled, ' +
            'but the required extension @0@ is not.'.format(e))
    endif
  endforeach
endif

# Sanity check: Make sure enabled extensions are valid
foreach e : enabled_extensions
  if not all_extensions.contains(e)
    error('Invalid extension @0@.'.format(e))
  endif
endforeach

if classic_mode_enabled
90
  sassc = find_program('sassc', required: true)
91 92 93 94 95
  subdir('data')
endif

subdir('extensions')
subdir('po')