summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWu Xiaotian <[email protected]>2019-06-19 22:04:32 +0800
committerlukefromdc <[email protected]>2019-07-13 22:26:39 +0000
commitd86c29b0e518f765e7570573c76bc033fbd17f6d (patch)
treea4ac9135d5328c8955f4a60b70ee86a5ee22150c /src
parent9c6676b1efa27aa103b5eddb28f97488a63a5190 (diff)
downloadmarco-d86c29b0e518f765e7570573c76bc033fbd17f6d.tar.bz2
marco-d86c29b0e518f765e7570573c76bc033fbd17f6d.tar.xz
switch to use meson build system
Diffstat (limited to 'src')
-rw-r--r--src/meson.build243
-rw-r--r--src/themes/meson.build20
-rw-r--r--src/tools/meson.build33
-rw-r--r--src/wm-tester/meson.build65
4 files changed, 361 insertions, 0 deletions
diff --git a/src/meson.build b/src/meson.build
new file mode 100644
index 00000000..eb5a5820
--- /dev/null
+++ b/src/meson.build
@@ -0,0 +1,243 @@
+cargs = ['-DG_LOG_DOMAIN="marco"']
+
+install_headers([
+ 'include/boxes.h',
+ 'ui/gradient.h',
+ 'include/util.h',
+ 'include/common.h',
+ 'ui/preview-widget.h',
+ 'ui/theme-parser.h',
+ 'ui/theme.h'
+ ],
+ subdir : 'marco-1/marco-private'
+)
+
+libmarco = shared_library(
+ 'marco-private',
+ sources : [
+ 'core/async-getprop.c',
+ 'core/async-getprop.h',
+ 'core/atomnames.h',
+ 'core/bell.c',
+ 'core/bell.h',
+ 'core/boxes.c',
+ 'include/boxes.h',
+ 'compositor/compositor.c',
+ 'compositor/compositor-private.h',
+ 'compositor/compositor-xrender.c',
+ 'compositor/compositor-xrender.h',
+ 'include/compositor.h',
+ 'core/constraints.c',
+ 'core/constraints.h',
+ 'core/core.c',
+ 'core/delete.c',
+ 'core/display.c',
+ 'core/display-private.h',
+ 'include/display.h',
+ 'ui/draw-workspace.c',
+ 'ui/draw-workspace.h',
+ 'core/edge-resistance.c',
+ 'core/edge-resistance.h',
+ 'core/effects.c',
+ 'core/effects.h',
+ 'core/errors.c',
+ 'include/errors.h',
+ 'core/eventqueue.c',
+ 'core/eventqueue.h',
+ 'core/frame.c',
+ 'core/frame-private.h',
+ 'include/frame.h',
+ 'ui/gradient.c',
+ 'ui/gradient.h',
+ 'core/group-private.h',
+ 'core/group-props.c',
+ 'core/group-props.h',
+ 'core/group.c',
+ 'core/group.h',
+ 'core/iconcache.c',
+ 'core/iconcache.h',
+ 'core/keybindings.c',
+ 'core/keybindings.h',
+ 'core/main.c',
+ 'include/main.h',
+ 'core/marco-Xatomtype.h',
+ 'core/place.c',
+ 'core/place.h',
+ 'core/prefs.c',
+ 'include/prefs.h',
+ 'core/screen.c',
+ 'core/screen-private.h',
+ 'include/screen.h',
+ 'include/types.h',
+ 'core/session.c',
+ 'core/session.h',
+ 'core/stack.c',
+ 'core/stack.h',
+ 'core/util.c',
+ 'include/util.h',
+ 'core/window-props.c',
+ 'core/window-props.h',
+ 'core/window.c',
+ 'core/window-private.h',
+ 'include/window.h',
+ 'core/workspace.c',
+ 'core/workspace.h',
+ 'core/xprops.c',
+ 'include/xprops.h',
+ 'include/common.h',
+ 'include/core.h',
+ 'include/ui.h',
+ 'ui/fixedtip.c',
+ 'ui/fixedtip.h',
+ 'ui/frames.c',
+ 'ui/frames.h',
+ 'ui/menu.c',
+ 'ui/menu.h',
+ 'ui/metaaccellabel.c',
+ 'ui/metaaccellabel.h',
+ 'ui/preview-widget.c',
+ 'ui/preview-widget.h',
+ 'ui/resizepopup.c',
+ 'include/resizepopup.h',
+ 'ui/tabpopup.c',
+ 'include/tabpopup.h',
+ 'ui/tile-preview.c',
+ 'include/tile-preview.h',
+ 'ui/theme-parser.c',
+ 'ui/theme-parser.h',
+ 'ui/theme.c',
+ 'ui/theme.h',
+ 'ui/ui.c',
+ 'include/all-keybindings.h',
+ ],
+ include_directories : [
+ include_directories('.'),
+ include_directories('..'),
+ include_directories('include'),
+ ],
+ dependencies : marco_deps,
+ soversion: soversion,
+ version: libversion,
+ c_args : cargs,
+ install: true,
+)
+
+executable('marco',
+ 'core/main.c',
+ 'include/main.h',
+ include_directories : [
+ include_directories('.'),
+ include_directories('..'),
+ include_directories('./include'),
+ ],
+ dependencies : marco_deps,
+ link_with : [
+ libmarco
+ ],
+ c_args : cargs,
+ install: true,
+)
+executable('marco-theme-viewer',
+ 'ui/theme-viewer.c',
+ include_directories : [
+ include_directories('.'),
+ include_directories('..'),
+ include_directories('./include'),
+ ],
+ dependencies : marco_deps,
+ link_with : [
+ libmarco,
+ ],
+ install: true,
+)
+
+executable('testboxes',
+ 'include/util.h',
+ 'core/util.c',
+ 'include/boxes.h',
+ 'core/boxes.c',
+ 'core/testboxes.c',
+ include_directories : [
+ include_directories('.'),
+ include_directories('..'),
+ include_directories('./include'),
+ ],
+ dependencies : marco_deps,
+)
+
+executable('testgradient',
+ 'ui/gradient.h',
+ 'ui/gradient.c',
+ 'ui/testgradient.c',
+ dependencies : marco_deps,
+)
+
+executable('testasyncgetprop',
+ 'core/async-getprop.h',
+ 'core/async-getprop.c',
+ 'core/testasyncgetprop.c',
+ dependencies : marco_deps,
+)
+
+gnome = import('gnome')
+i18n = import('i18n')
+
+i18n.merge_file(
+ input: 'marco.desktop.in',
+ output: 'marco.desktop',
+ type: 'desktop',
+ po_dir: join_paths(meson.source_root(), 'po'),
+ install: true,
+ install_dir: join_paths(get_option('datadir'), 'applications')
+ )
+
+i18n.merge_file(
+ input: 'marco-wm.desktop.in',
+ output: 'marco-wm.desktop',
+ type: 'desktop',
+ po_dir: join_paths(meson.source_root(), 'po'),
+ install: true,
+ install_dir: join_paths(datadir, 'mate', 'wm-properties')
+ )
+
+compiled_schemas = gnome.compile_schemas()
+install_data('org.mate.marco.gschema.xml',
+ install_dir : 'share/glib-2.0/schemas')
+
+xml_files = [
+ '50-marco-desktop-key.xml',
+ '50-marco-window-key.xml',
+ '50-marco-global-key.xml',
+ ]
+
+foreach xml : xml_files
+ i18n.merge_file(xml,
+ input: xml+ '.in',
+ output: xml,
+ po_dir: '../po',
+ data_dirs: '..',
+ install: true,
+ install_dir: join_paths(get_option('datadir'), 'mate-control-center', 'keybindings')
+ )
+endforeach
+
+pkconf = configuration_data()
+pkconf.set('prefix', prefix)
+pkconf.set('exec_prefix', prefix)
+pkconf.set('libdir', libdir)
+pkconf.set('includedir', includedir)
+pkconf.set('libexecdir', libexecdir)
+pkconf.set('VERSION', meson.project_version())
+
+pc = configure_file(
+ input : 'libmarco-private.pc.in',
+ output : 'libmarco-private.pc',
+ configuration : pkconf
+)
+
+install_data(pc,
+ install_dir: join_paths(get_option('libdir'), 'pkgconfig'),
+)
+subdir('wm-tester')
+subdir('tools')
+subdir('themes')
diff --git a/src/themes/meson.build b/src/themes/meson.build
new file mode 100644
index 00000000..e11da1f5
--- /dev/null
+++ b/src/themes/meson.build
@@ -0,0 +1,20 @@
+themes = [
+ 'ClearlooksRe',
+ 'eOS',
+ 'DustBlue',
+ 'WinMe',
+ 'Splint-Left',
+ 'Dopple',
+ 'Spidey-Left',
+ 'Splint',
+ 'Dopple-Left',
+ 'Spidey',
+]
+
+themedir = join_paths(datadir, 'themes')
+foreach theme: themes
+ install_subdir(theme,
+ install_dir : join_paths(themedir, theme, 'metacity-1'),
+ strip_directory : true
+ )
+endforeach
diff --git a/src/tools/meson.build b/src/tools/meson.build
new file mode 100644
index 00000000..c6f1b4a9
--- /dev/null
+++ b/src/tools/meson.build
@@ -0,0 +1,33 @@
+cargs = ['-DMARCO_ICON_DIR="marco"']
+
+install_data('marco-window-demo.png',
+ install_dir: join_paths(pkgdatadir, 'icons')
+)
+
+executable('marco-message',
+ 'marco-message.c',
+ include_directories : [
+ include_directories('.'),
+ include_directories('..'),
+ ],
+ dependencies: marco_message_deps,
+ link_with : [
+ libmarco
+ ],
+ c_args : cargs,
+ install: true,
+)
+
+executable('marco-window-demo',
+ 'marco-window-demo.c',
+ include_directories : [
+ include_directories('.'),
+ include_directories('..'),
+ ],
+ dependencies: marco_window_demo_deps,
+ link_with : [
+ libmarco
+ ],
+ c_args : cargs,
+ install: true,
+)
diff --git a/src/wm-tester/meson.build b/src/wm-tester/meson.build
new file mode 100644
index 00000000..14d8c8bf
--- /dev/null
+++ b/src/wm-tester/meson.build
@@ -0,0 +1,65 @@
+test1 = executable('wm-tester',
+ 'main.c',
+ include_directories : [
+ include_directories('.'),
+ include_directories('..'),
+ ],
+ dependencies: marco_deps,
+ link_with : [
+ libmarco
+ ],
+)
+
+test2 = executable('test-gravity',
+ 'test-gravity.c',
+ include_directories : [
+ include_directories('.'),
+ include_directories('..'),
+ ],
+ dependencies: marco_deps,
+ link_with : [
+ libmarco
+ ],
+)
+
+test3 = executable('test-resizing',
+ 'test-resizing.c',
+ include_directories : [
+ include_directories('.'),
+ include_directories('..'),
+ ],
+ dependencies: marco_deps,
+ link_with : [
+ libmarco
+ ],
+)
+
+test4 = executable('focus-window',
+ 'focus-window.c',
+ include_directories : [
+ include_directories('.'),
+ include_directories('..'),
+ ],
+ dependencies: marco_deps,
+ link_with : [
+ libmarco
+ ],
+)
+
+test5 = executable('test-size-hints',
+ 'test-size-hints.c',
+ include_directories : [
+ include_directories('.'),
+ include_directories('..'),
+ ],
+ dependencies: marco_deps,
+ link_with : [
+ libmarco
+ ],
+)
+
+test('wm-tester', test1)
+test('test-gravity', test2)
+test('test-resizing', test3)
+test('focus-window', test4)
+test('test-size-hints', test5)