[gnome-builder/wip/tingping/meson-build] build: Add support for Meson
- From: Patrick Griffis <pgriffis src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/tingping/meson-build] build: Add support for Meson
- Date: Tue, 18 Oct 2016 00:02:33 +0000 (UTC)
commit 22df1c2cb240b52fcf33308aacac505c0df96fea
Author: Patrick Griffis <tingping tingping se>
Date: Sat Oct 1 09:10:00 2016 -0400
build: Add support for Meson
.buildconfig | 2 +-
.editorconfig | 4 +
build/meson/meson_post_install.sh | 12 +
build/meson/meson_run_locally.sh | 35 +
config.h.meson | 49 ++
contrib/egg/meson.build | 121 ++++
contrib/gd/meson.build | 24 +
contrib/gstyle/meson.build | 145 +++++
contrib/gstyle/tests/Makefile.am | 2 +-
contrib/gstyle/tests/meson.build | 100 +++
contrib/libeditorconfig/meson.build | 48 ++
contrib/nautilus/meson.build | 18 +
contrib/pnl/meson.build | 123 ++++
contrib/rg/meson.build | 38 ++
contrib/search/meson.build | 21 +
contrib/tmpl/Makefile.am | 27 +-
contrib/tmpl/meson.build | 172 +++++
contrib/tmpl/tmpl-enums.h.in | 3 +-
contrib/tmpl/tmpl-expr-scanner.l | 3 -
contrib/xml/meson.build | 21 +
data/fonts/meson.build | 3 +
data/gsettings/meson.build | 40 ++
data/icons/meson.build | 33 +
data/meson.build | 62 ++
data/style-schemes/meson.build | 4 +
doc/reference/libide/meson.build | 46 ++
doc/reference/libide/xml/gtkdocentities.ent.in | 7 +
doc/reference/libide/xml/meson.build | 13 +
doc/reference/libide/xml/tree_index.sgml | 11 +
help/meson.build | 9 +
libide/Makefile.am | 10 +-
libide/application/ide-application-plugins.c | 2 +
libide/editor/ide-editor-map-bin.c | 2 +
.../editorconfig/ide-editorconfig-file-settings.c | 2 +-
libide/ide.map | 6 +
libide/meson.build | 656 ++++++++++++++++++++
libide/resources/meson.build | 5 +
libide/workers/ide-worker-manager.c | 2 +
meson.build | 181 ++++++
meson_options.txt | 50 ++
plugins/autotools-templates/meson.build | 10 +
plugins/autotools/meson.build | 37 ++
plugins/build-tools/meson.build | 41 ++
plugins/c-pack/meson.build | 21 +
plugins/clang/meson.build | 44 ++
plugins/color-picker/meson.build | 45 ++
plugins/command-bar/meson.build | 47 ++
plugins/comment-code/meson.build | 24 +
plugins/contributing/meson.build | 6 +
plugins/create-project/meson.build | 30 +
plugins/ctags/meson.build | 32 +
plugins/devhelp/meson.build | 34 +
plugins/file-search/meson.build | 24 +
plugins/flatpak/meson.build | 23 +
plugins/fpaste/meson.build | 10 +
plugins/gcc/meson.build | 17 +
plugins/gettext/meson.build | 17 +
plugins/git/meson.build | 76 +++
plugins/gnome-code-assistance/meson.build | 30 +
plugins/hello-cpp/meson.build | 19 +
plugins/html-completion/meson.build | 20 +
plugins/html-preview/meson.build | 15 +
plugins/jedi/meson.build | 5 +
plugins/jhbuild/meson.build | 5 +
plugins/meson.build | 44 ++
plugins/mingw/meson.build | 19 +
plugins/project-tree/meson.build | 51 ++
plugins/python-gi-imports-completion/meson.build | 8 +
plugins/python-pack/meson.build | 19 +
plugins/quick-highlight/meson.build | 19 +
plugins/support/meson.build | 26 +
plugins/symbol-tree/meson.build | 28 +
plugins/sysmon/meson.build | 30 +
plugins/sysprof/meson.build | 31 +
plugins/terminal/meson.build | 39 ++
plugins/todo/meson.build | 6 +
plugins/xml-pack/meson.build | 21 +
po/meson.build | 48 ++
tests/meson.build | 227 +++++++
tests/test-fuzzy.c | 2 +-
tests/test-ide-buffer-manager.c | 4 +-
tests/test-ide-context.c | 6 +-
tools/meson.build | 6 +
83 files changed, 3353 insertions(+), 25 deletions(-)
---
diff --git a/.buildconfig b/.buildconfig
index ff4d423..e0e9fe3 100644
--- a/.buildconfig
+++ b/.buildconfig
@@ -28,7 +28,7 @@ name=Builder (Host)
device=local
runtime=host
config-opts=--enable-tracing --enable-debug --enable-tests
-prefix=/opt/gnome
+prefix=/home/tingping/.cache/gnome-builder/install/Builder/host
default=true
diff --git a/.editorconfig b/.editorconfig
index 2053f10..615f597 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -39,3 +39,7 @@ tab_size = 4
indent_size = 2
tab_size = 2
indent_style = space
+
+[meson.build]
+indent_size = 2
+indent_style = space
diff --git a/build/meson/meson_post_install.sh b/build/meson/meson_post_install.sh
new file mode 100755
index 0000000..e5e21c2
--- /dev/null
+++ b/build/meson/meson_post_install.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+if [ -z $DESTDIR ]; then
+
+echo 'Compiling GSchema'
+glib-compile-schemas "$MESON_INSTALL_PREFIX/share/glib-2.0/schemas"
+echo 'Updating icon cache'
+gtk-update-icon-cache -qtf "$MESON_INSTALL_PREFIX/share/icons/hicolor"
+echo 'Updating desktop database'
+update-desktop-database -q "$MESON_INSTALL_PREFIX/share/applications"
+
+fi
diff --git a/build/meson/meson_run_locally.sh b/build/meson/meson_run_locally.sh
new file mode 100755
index 0000000..f444393
--- /dev/null
+++ b/build/meson/meson_run_locally.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+if [ -z "$MESON_BUILD_ROOT" ]; then
+ exit 1
+fi
+
+cd "$MESON_BUILD_ROOT" || exit 1
+
+# We have to deal with gschema ourselves...
+tmpdir=$(mktemp -d -p "$MESON_BUILD_ROOT" -t 'schema-tmp.XXXXXXXXXX')
+function cleanup_temp() { rm -rf "$tmpdir"; }
+trap cleanup_temp EXIT
+cp $MESON_SOURCE_ROOT/data/gsettings/*.gschema.xml "$tmpdir"
+cp $MESON_BUILD_ROOT/data/gsettings/*.gschema.xml "$tmpdir"
+cp $MESON_SOURCE_ROOT/plugins/gnome-code-assistance/*.gschema.xml "$tmpdir"
+glib-compile-schemas "$tmpdir" || exit 1
+
+# We have to deal with plugins ourselves...
+pushd plugins
+for plugin in *; do
+ # FIXME: Copy Python plugins
+ cp $MESON_SOURCE_ROOT/plugins/$plugin/*.plugin $MESON_BUILD_ROOT/plugins/$plugin
+done
+popd
+
+env PEAS_DEBUG=1 \
+ GB_IN_TREE_PLUGINS=1 \
+ GB_IN_TREE_FONTS=1 \
+ GB_IN_TREE_STYLE_SCHEMES=1 \
+ GI_TYPELIB_PATH="libide:contrib/egg:contrib/pnl:contrib/tmpl:$GI_TYPELIB_PATH" \
+ GOBJECT_DEBUG=instance-count \
+ GSETTINGS_SCHEMA_DIR="$tmpdir" \
+ PYTHONDONTWRITEBYTECODE=yes \
+ ./gnome-builder -vvvvs
+
diff --git a/config.h.meson b/config.h.meson
new file mode 100644
index 0000000..e28d97d
--- /dev/null
+++ b/config.h.meson
@@ -0,0 +1,49 @@
+/* Define to 1 if translation of program messages to the user's native
+ language is requested. */
+#mesondefine ENABLE_NLS
+
+/* GETTEXT package name */
+#mesondefine GETTEXT_PACKAGE
+
+/* Define if the GNU gettext() function is already present or preinstalled. */
+#mesondefine HAVE_GETTEXT
+
+/* Define to 1 if you have the `sched_getcpu' function. */
+#mesondefine HAVE_SCHED_GETCPU
+
+/* Name of package */
+#mesondefine PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#mesondefine PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#mesondefine PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#mesondefine PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#mesondefine PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#mesondefine PACKAGE_URL
+
+/* Define to the version of this package. */
+#mesondefine PACKAGE_VERSION
+
+#mesondefine PACKAGE_DATADIR
+
+#mesondefine PACKAGE_LIBDIR
+
+#mesondefine PACKAGE_LIBEXECDIR
+
+#mesondefine PACKAGE_LOCALE_DIR
+
+/* Version number of package */
+#mesondefine VERSION
+
+#mesondefine SRCDIR
+
+#mesondefine BUILDDIR
+
diff --git a/contrib/egg/meson.build b/contrib/egg/meson.build
new file mode 100644
index 0000000..102fcf4
--- /dev/null
+++ b/contrib/egg/meson.build
@@ -0,0 +1,121 @@
+libegg_headers = [
+ 'egg-animation.h',
+ 'egg-binding-group.h',
+ 'egg-box.h',
+ 'egg-centering-bin.h',
+ 'egg-column-layout.h',
+ 'egg-counter.h',
+ 'egg-date-time.h',
+ 'egg-empty-state.h',
+ 'egg-entry-box.h',
+ 'egg-file-chooser-entry.h',
+ 'egg-frame-source.h',
+ 'egg-heap.h',
+ 'egg-list-box.h',
+ 'egg-menu-manager.h',
+ 'egg-pill-box.h',
+ 'egg-priority-box.h',
+ 'egg-private.h',
+ 'egg-radio-box.h',
+ 'egg-scrolled-window.h',
+ 'egg-search-bar.h',
+ 'egg-settings-flag-action.h',
+ 'egg-settings-sandwich.h',
+ 'egg-signal-group.h',
+ 'egg-simple-label.h',
+ 'egg-simple-popover.h',
+ 'egg-slider.h',
+ 'egg-state-machine-buildable.h',
+ 'egg-state-machine.h',
+ 'egg-task-cache.h',
+ 'egg-three-grid.h',
+ 'egg-widget-action-group.h',
+]
+
+install_headers(libegg_headers,
+ subdir: 'gnome-builder-' + meson.project_version() + '/egg'
+)
+
+libegg_resources = gnome.compile_resources('egg-resources', 'egg.gresource.xml',
+ c_name: 'egg',
+)
+
+libegg_sources = [
+ 'egg-animation.c',
+ 'egg-binding-group.c',
+ 'egg-box.c',
+ 'egg-centering-bin.c',
+ 'egg-column-layout.c',
+ 'egg-counter.c',
+ 'egg-date-time.c',
+ 'egg-empty-state.c',
+ 'egg-entry-box.c',
+ 'egg-file-chooser-entry.c',
+ 'egg-frame-source.c',
+ 'egg-heap.c',
+ 'egg-list-box.c',
+ 'egg-menu-manager.c',
+ 'egg-pill-box.c',
+ 'egg-priority-box.c',
+ 'egg-radio-box.c',
+ 'egg-scrolled-window.c',
+ 'egg-search-bar.c',
+ 'egg-settings-flag-action.c',
+ 'egg-settings-sandwich.c',
+ 'egg-signal-group.c',
+ 'egg-simple-label.c',
+ 'egg-simple-popover.c',
+ 'egg-slider.c',
+ 'egg-state-machine-buildable.c',
+ 'egg-state-machine.c',
+ 'egg-task-cache.c',
+ 'egg-three-grid.c',
+ 'egg-widget-action-group.c',
+]
+
+libegg_deps = [
+ libgio_dep,
+ libgtk_dep,
+]
+
+libegg = shared_library('egg-private', libegg_sources + [libegg_resources[0], libegg_resources[1]],
+ dependencies: libegg_deps,
+ version: '0.0.0',
+ install: true,
+ install_dir: pkglibdir,
+)
+
+libegg_dep = declare_dependency(
+ link_with: libegg,
+ dependencies: libegg_deps,
+ include_directories: include_directories('.'),
+)
+
+if get_option('with_introspection')
+
+ libegg_gir = gnome.generate_gir(libegg,
+ sources: libegg_sources + libegg_headers,
+ nsversion: '1.0',
+ namespace: 'Egg',
+ symbol_prefix: 'egg',
+ identifier_prefix: 'Egg',
+ includes: ['Gdk-3.0', 'Gio-2.0', 'Gtk-3.0'],
+ install: true,
+ install_dir_gir: pkggirdir,
+ install_dir_typelib: pkgtypelibdir,
+ extra_args: [
+ '--c-include=egg-private.h',
+ ]
+ )
+
+ if get_option('with_vapi')
+
+ libegg_vapi = gnome.generate_vapi('egg-private',
+ sources: libegg_gir[0],
+ packages: ['gio-2.0', 'gtk+-3.0'],
+ install: true,
+ install_dir: pkgvapidir,
+ )
+
+ endif
+endif
diff --git a/contrib/gd/meson.build b/contrib/gd/meson.build
new file mode 100644
index 0000000..abb3248
--- /dev/null
+++ b/contrib/gd/meson.build
@@ -0,0 +1,24 @@
+libgd_resources = gnome.compile_resources('gd-resources',
+ 'gd-tagged-entry.gresource.xml',
+ c_name: 'gd',
+)
+
+libgd_sources = [
+ 'gd-tagged-entry.c',
+ libgd_resources,
+]
+
+libgd_deps = [
+ libgio_dep,
+ libgtk_dep,
+]
+
+libgd = static_library('gd', libgd_sources,
+ dependencies: libgd_deps,
+ pic: true,
+)
+
+libgd_dep = declare_dependency(
+ link_with: libgd,
+ include_directories: include_directories('.'),
+)
diff --git a/contrib/gstyle/meson.build b/contrib/gstyle/meson.build
new file mode 100644
index 0000000..1b1d9fa
--- /dev/null
+++ b/contrib/gstyle/meson.build
@@ -0,0 +1,145 @@
+libgstyle_headers = [
+ 'gstyle-animation.h',
+ 'gstyle-cielab.h',
+ 'gstyle-color.h',
+ 'gstyle-color-component.h',
+ 'gstyle-color-convert.h',
+ 'gstyle-color-filter.h',
+ 'gstyle-color-item.h',
+ 'gstyle-color-panel.h',
+ 'gstyle-color-panel-private.h',
+ 'gstyle-color-panel-actions.h',
+ 'gstyle-color-plane.h',
+ 'gstyle-color-predefined.h',
+ 'gstyle-color-scale.h',
+ 'gstyle-color-widget.h',
+ 'gstyle-color-widget-actions.h',
+ 'gstyle-colorlexer.h',
+ 'gstyle-css-provider.h',
+ 'gstyle-eyedropper.h',
+ 'gstyle-hsv.h',
+ 'gstyle-palette.h',
+ 'gstyle-palette-widget.h',
+ 'gstyle-private.h',
+ 'gstyle-rename-popover.h',
+ 'gstyle-revealer.h',
+ 'gstyle-slidein.h',
+ 'gstyle-types.h',
+ 'gstyle-utils.h',
+ 'gstyle-xyz.h',
+]
+
+libgstyle_header_dir = join_paths(get_option('includedir'),
+ 'gnome-builder-' + meson.project_version(), 'gstyle')
+
+install_headers(libgstyle_headers,
+ install_dir: libgstyle_header_dir,
+)
+
+libgstyle_resources = gnome.compile_resources('gstyle-resources',
+ 'gstyle.gresource.xml',
+ c_name: 'gstyle',
+)
+
+libgstyle_sources = [
+ 'gstyle-animation.c',
+ 'gstyle-cielab.c',
+ 'gstyle-color.c',
+ 'gstyle-color-component.c',
+ 'gstyle-color-convert.c',
+ 'gstyle-color-filter.c',
+ 'gstyle-color-item.c',
+ 'gstyle-color-panel.c',
+ 'gstyle-color-panel-actions.c',
+ 'gstyle-color-plane.c',
+ 'gstyle-color-scale.c',
+ 'gstyle-color-widget.c',
+ 'gstyle-color-widget-actions.c',
+ 'gstyle-colorlexer.c',
+ 'gstyle-css-provider.c',
+ 'gstyle-eyedropper.c',
+ 'gstyle-hsv.c',
+ 'gstyle-palette.c',
+ 'gstyle-palette-widget.c',
+ 'gstyle-rename-popover.c',
+ 'gstyle-revealer.c',
+ 'gstyle-slidein.c',
+ 'gstyle-utils.c',
+ 'gstyle-xyz.c',
+ libgstyle_resources[0],
+]
+
+libgstyle_deps = [
+ dependency('gtk+-3.0'),
+ libsearch_dep,
+ libxml_dep,
+]
+
+libgstyle = shared_library('gstyle-private', libgstyle_sources,
+ dependencies: libgstyle_deps,
+ version: '0.0.0',
+ install: true,
+ install_dir: pkglibdir,
+)
+
+libgstyle_dep = declare_dependency(
+ link_with: libgstyle,
+ dependencies: libgstyle_deps,
+ include_directories: include_directories('.'),
+)
+
+if get_option('with_introspection')
+
+ libgstyle_introspection_sources = [
+ 'gstyle-cielab.h',
+ 'gstyle-cielab.c',
+ 'gstyle-color.h',
+ 'gstyle-color.c',
+ 'gstyle-color-component.h',
+ 'gstyle-color-component.c',
+ 'gstyle-color-convert.h',
+ 'gstyle-color-convert.c',
+ 'gstyle-color-filter.h',
+ 'gstyle-color-filter.c',
+ 'gstyle-color-item.h',
+ 'gstyle-color-item.c',
+ 'gstyle-color-panel.h',
+ 'gstyle-color-panel.c',
+ 'gstyle-color-plane.h',
+ 'gstyle-color-plane.c',
+ 'gstyle-color-scale.h',
+ 'gstyle-color-scale.c',
+ 'gstyle-color-widget.h',
+ 'gstyle-color-widget.c',
+ 'gstyle-eyedropper.h',
+ 'gstyle-eyedropper.c',
+ 'gstyle-hsv.h',
+ 'gstyle-hsv.c',
+ 'gstyle-palette.h',
+ 'gstyle-palette.c',
+ 'gstyle-palette-widget.h',
+ 'gstyle-palette-widget.c',
+ 'gstyle-slidein.h',
+ 'gstyle-slidein.c',
+ 'gstyle-xyz.h',
+ 'gstyle-xyz.c',
+ ]
+
+ gnome.generate_gir(libgstyle,
+ sources: libgstyle_introspection_sources,
+ nsversion: '1.0',
+ namespace: 'Gstyle',
+ symbol_prefix: 'gstyle',
+ identifier_prefix: 'Gstyle',
+ includes: ['Gdk-3.0', 'Gio-2.0', 'Gtk-3.0', 'GtkSource-3.0'],
+ install: true,
+ install_dir_gir: pkggirdir,
+ install_dir_typelib: pkgtypelibdir,
+ extra_args: [
+ '--c-include=gstyle-private.h',
+ ],
+ )
+
+endif
+
+subdir('tests')
diff --git a/contrib/gstyle/tests/Makefile.am b/contrib/gstyle/tests/Makefile.am
index c553ae5..f507cb0 100644
--- a/contrib/gstyle/tests/Makefile.am
+++ b/contrib/gstyle/tests/Makefile.am
@@ -4,7 +4,7 @@ gstyle_cflags = \
$(DEBUG_CFLAGS) \
$(GSTYLE_CFLAGS) \
-I$(top_srcdir)/contrib/gstyle \
- -DTEST_DATA_DIR="\"$(abs_builddir)/data\"" \
+ -DTEST_DATA_DIR="\"$(abs_srcdir)/data\"" \
$(NULL)
gstyle_libs = \
diff --git a/contrib/gstyle/tests/meson.build b/contrib/gstyle/tests/meson.build
new file mode 100644
index 0000000..125c5cc
--- /dev/null
+++ b/contrib/gstyle/tests/meson.build
@@ -0,0 +1,100 @@
+gstyle_test_env = [
+ 'GB_IN_TREE_PLUGINS=1',
+ 'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
+ 'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir()),
+ 'G_DEBUG=gc-friendly',
+ 'GSETTINGS_BACKEND=memory',
+ 'MALLOC_CHECK_=2',
+# 'MALLOC_PERTURB_=$((${RANDOM:-256} % 256))',
+]
+gstyle_test_cflags = [
+ '-DTEST_DATA_DIR="@0@/data"'.format(meson.current_source_dir()),
+]
+
+gstyle_color = executable('test-gstyle-color',
+ 'test-gstyle-color.c',
+ dependencies: libgstyle_dep,
+)
+test('test-gstyle-color', gstyle_color,
+ env: gstyle_test_env
+)
+
+
+gstyle_color_panel = executable('test-gstyle-color-panel',
+ 'test-gstyle-color-panel.c',
+ c_args: gstyle_test_cflags,
+ dependencies: libgstyle_dep,
+)
+test('test-gstyle-color-panel', gstyle_color_panel,
+ env: gstyle_test_env
+)
+
+
+gstyle_color_plane = executable('test-gstyle-color-plane',
+ 'test-gstyle-color-plane.c',
+ c_args: gstyle_test_cflags,
+ dependencies: libgstyle_dep,
+)
+#test('test-gstyle-color-plane', gstyle_color_plane,
+# env: gstyle_test_env
+#)
+
+
+gstyle_color_scale = executable('test-gstyle-color-scale',
+ 'test-gstyle-color-scale.c',
+ c_args: gstyle_test_cflags,
+ dependencies: libgstyle_dep,
+)
+#test('test-gstyle-color-scale', gstyle_color_scale,
+# env: gstyle_test_env
+#)
+
+
+gstyle_color_widget = executable('test-gstyle-color-widget',
+ 'test-gstyle-color-widget.c',
+ c_args: gstyle_test_cflags,
+ dependencies: libgstyle_dep,
+)
+#test('test-gstyle-color-widget', gstyle_color_widget,
+# env: gstyle_test_env
+#)
+
+
+gstyle_filter = executable('test-gstyle-filter',
+ 'test-gstyle-filter.c',
+ c_args: gstyle_test_cflags,
+ dependencies: libgstyle_dep,
+)
+#test('test-gstyle-filter', gstyle_filter,
+# env: gstyle_test_env
+#)
+
+
+gstyle_palette = executable('test-gstyle-palette',
+ 'test-gstyle-palette.c',
+ c_args: gstyle_test_cflags,
+ dependencies: libgstyle_dep,
+)
+test('test-gstyle-palette', gstyle_palette,
+ env: gstyle_test_env
+)
+
+
+gstyle_palette_widget = executable('test-gstyle-palette-widget',
+ 'test-gstyle-palette-widget.c',
+ c_args: gstyle_test_cflags,
+ dependencies: libgstyle_dep,
+)
+test('test-gstyle-color-palette-widget', gstyle_palette_widget,
+ env: gstyle_test_env
+)
+
+
+gstyle_parse = executable('test-gstyle-color-parse',
+ 'test-gstyle-parse.c',
+ c_args: gstyle_test_cflags,
+ dependencies: libgstyle_dep,
+)
+test('test-gstyle-parse', gstyle_parse,
+ env: gstyle_test_env
+)
diff --git a/contrib/libeditorconfig/meson.build b/contrib/libeditorconfig/meson.build
new file mode 100644
index 0000000..0fc0b8c
--- /dev/null
+++ b/contrib/libeditorconfig/meson.build
@@ -0,0 +1,48 @@
+if get_option('with_editorconfig')
+
+libeditorconfig_sources = [
+ 'ec_glob.c',
+ 'ec_glob.h',
+ 'editorconfig.c',
+ 'editorconfig.h',
+ 'editorconfig/editorconfig.h',
+ 'editorconfig/editorconfig_handle.h',
+ 'editorconfig_handle.c',
+ 'editorconfig_handle.h',
+ 'global.h',
+ 'ini.c',
+ 'ini.h',
+ 'misc.c',
+ 'misc.h',
+ 'utarray.h',
+]
+
+libeditorconfig_deps = [
+ dependency('libpcre')
+]
+
+# FIXME: Actually test these
+libeditorconfig_args = [
+ '-DHAVE_STRCASECMP',
+ '-DHAVE_STRICMP',
+ '-DHAVE_STRDUP',
+ '-DHAVE_STRNDUP',
+ '-DUNIX',
+ '-Deditorconfig_VERSION_MAJOR=0',
+ '-Deditorconfig_VERSION_MINOR=0',
+ '-Deditorconfig_VERSION_PATCH=0',
+ '-Deditorconfig_VERSION_SUFFIX=0',
+]
+
+libeditorconfig = static_library('editorconfig',
+ libeditorconfig_sources,
+ dependencies: libeditorconfig_deps,
+ c_args: libeditorconfig_args,
+ pic: true,
+)
+
+libeditorconfig_dep = declare_dependency(
+ link_with: libeditorconfig,
+ include_directories: include_directories('.'),
+)
+endif
diff --git a/contrib/nautilus/meson.build b/contrib/nautilus/meson.build
new file mode 100644
index 0000000..57a9526
--- /dev/null
+++ b/contrib/nautilus/meson.build
@@ -0,0 +1,18 @@
+libnautilus_sources = [
+ 'nautilus-floating-bar.c',
+]
+
+libnautilus_deps = [
+ libgio_dep,
+ libgtk_dep,
+]
+
+libnautilus = static_library('nautilus', libnautilus_sources,
+ dependencies: libnautilus_deps,
+ pic: true,
+)
+
+libnautilus_dep = declare_dependency(
+ link_with: libnautilus,
+ include_directories: include_directories('.'),
+)
diff --git a/contrib/pnl/meson.build b/contrib/pnl/meson.build
new file mode 100644
index 0000000..5b545a5
--- /dev/null
+++ b/contrib/pnl/meson.build
@@ -0,0 +1,123 @@
+libpnl_headers = [
+ 'pnl-animation.h',
+ 'pnl-dock-bin.h',
+ 'pnl-dock-bin-edge.h',
+ 'pnl-dock-item.h',
+ 'pnl-dock-manager.h',
+ 'pnl-dock-overlay.h',
+ 'pnl-dock-paned.h',
+ 'pnl-dock-revealer.h',
+ 'pnl-dock-stack.h',
+ 'pnl-dock-types.h',
+ 'pnl-dock-widget.h',
+ 'pnl-dock-window.h',
+ 'pnl-dock.h',
+ 'pnl-frame-source.h',
+ 'pnl-multi-paned.h',
+ 'pnl-tab-strip.h',
+ 'pnl-tab.h',
+ 'pnl.h',
+]
+
+libpnl_header_dir = get_option('includedir') + '/gnome-builder-' + meson.project_version() + '/pnl'
+
+libpnl_conf = configuration_data()
+libpnl_conf.set('MAJOR_VERSION', MAJOR_VERSION)
+libpnl_conf.set('MINOR_VERSION', MINOR_VERSION)
+libpnl_conf.set('MICRO_VERSION', MICRO_VERSION)
+libpnl_conf.set('VERSION', meson.project_version())
+
+libpnl_version_h = configure_file(
+ input: 'pnl-version.h.in',
+ output: 'pnl-version.h',
+ configuration: libpnl_conf,
+ install: true,
+ install_dir: libpnl_header_dir,
+)
+
+install_headers(libpnl_headers,
+ install_dir: libpnl_header_dir,
+)
+
+libpnl_resources = gnome.compile_resources('pnl-resources',
+ 'pnl.gresource.xml',
+ c_name: 'pnl',
+)
+
+libpnl_sources = [
+ 'pnl-animation.c',
+ 'pnl-dock-bin-edge.c',
+ 'pnl-dock-bin-edge-private.h',
+ 'pnl-dock-bin.c',
+ 'pnl-dock-item.c',
+ 'pnl-dock-manager.c',
+ 'pnl-dock-overlay-edge-private.h',
+ 'pnl-dock-overlay-edge.c',
+ 'pnl-dock-overlay.c',
+ 'pnl-dock-paned-private.h',
+ 'pnl-dock-paned.c',
+ 'pnl-dock-revealer.c',
+ 'pnl-dock-stack.c',
+ 'pnl-dock-tab-strip.c',
+ 'pnl-dock-tab-strip.h',
+ 'pnl-dock-transient-grab.c',
+ 'pnl-dock-transient-grab.h',
+ 'pnl-dock-widget.c',
+ 'pnl-dock-window.c',
+ 'pnl-dock.c',
+ 'pnl-frame-source.c',
+ 'pnl-multi-paned.c',
+ 'pnl-tab-strip.c',
+ 'pnl-tab.c',
+ 'pnl-util-private.h',
+ 'pnl-util.c',
+ libpnl_version_h,
+]
+
+libpnl_deps = [
+ dependency('gtk+-3.0'),
+]
+
+libpnl = shared_library('panel-gtk', libpnl_sources + [libpnl_resources[0],libpnl_resources[1]],
+ dependencies: libpnl_deps,
+ c_args: ['-DPNL_COMPILATION'],
+ version: '0.0.0',
+ install: true,
+ install_dir: pkglibdir,
+)
+
+libpnl_dep = declare_dependency(
+ sources: libpnl_version_h,
+ link_with: libpnl,
+ include_directories: include_directories('.'),
+)
+
+if get_option('with_introspection')
+
+ libpnl_gir = gnome.generate_gir(libpnl,
+ sources: libpnl_sources + libpnl_headers,
+ nsversion: '1.0',
+ namespace: 'Pnl',
+ symbol_prefix: 'pnl',
+ identifier_prefix: 'Pnl',
+ includes: ['Gdk-3.0', 'Gio-2.0', 'Gtk-3.0'],
+ install: true,
+ install_dir_gir: pkggirdir,
+ install_dir_typelib: pkgtypelibdir,
+ extra_args: [
+ '--c-include=pnl.h',
+ '-DPNL_COMPILATION',
+ ],
+ )
+
+ if get_option('with_vapi')
+
+ libpnl_vapi = gnome.generate_vapi('panel-gtk',
+ sources: libpnl_gir[0],
+ packages: ['gio-2.0', 'gtk+-3.0'],
+ install: true,
+ install_dir: pkgvapidir,
+ )
+
+ endif
+endif
diff --git a/contrib/rg/meson.build b/contrib/rg/meson.build
new file mode 100644
index 0000000..ffe722a
--- /dev/null
+++ b/contrib/rg/meson.build
@@ -0,0 +1,38 @@
+librg_sources = [
+ 'realtime-graphs.h',
+ 'rg-column.c',
+ 'rg-column.h',
+ 'rg-column-private.h',
+ 'rg-cpu-graph.c',
+ 'rg-cpu-graph.h',
+ 'rg-cpu-table.c',
+ 'rg-cpu-table.h',
+ 'rg-graph.c',
+ 'rg-graph.h',
+ 'rg-line-renderer.c',
+ 'rg-line-renderer.h',
+ 'rg-renderer.c',
+ 'rg-renderer.h',
+ 'rg-ring.c',
+ 'rg-ring.h',
+ 'rg-table.c',
+ 'rg-table.h',
+]
+
+librg_deps = [
+ libgio_dep,
+ libgtk_dep,
+ libegg_dep,
+]
+
+librg = shared_library('rg', librg_sources,
+ dependencies: librg_deps,
+ version: '0.0.0',
+ install: true,
+ install_dir: pkglibdir,
+)
+
+librg_dep = declare_dependency(
+ link_with: librg,
+ include_directories: include_directories('.'),
+)
diff --git a/contrib/search/meson.build b/contrib/search/meson.build
new file mode 100644
index 0000000..9991814
--- /dev/null
+++ b/contrib/search/meson.build
@@ -0,0 +1,21 @@
+libsearch_sources = [
+ 'fuzzy.c',
+ 'trie.c',
+]
+
+libsearch_deps = [
+ dependency('gobject-2.0'),
+]
+
+libsearch = shared_library('search', libsearch_sources,
+ dependencies: libsearch_deps,
+ version: '0.0.0',
+ install: true,
+ install_dir: pkglibdir,
+)
+
+libsearch_dep = declare_dependency(
+ link_with: libsearch,
+ dependencies: libsearch_deps,
+ include_directories: include_directories('.'),
+)
diff --git a/contrib/tmpl/Makefile.am b/contrib/tmpl/Makefile.am
index fcc3c83..5699a21 100644
--- a/contrib/tmpl/Makefile.am
+++ b/contrib/tmpl/Makefile.am
@@ -1,6 +1,22 @@
DISTCLEANFILES =
CLEANFILES =
-BUILT_SOURCES =
+
+BUILT_SOURCES = \
+ tmpl-expr-parser.c \
+ tmpl-expr-parser.h \
+ tmpl-expr-scanner.c \
+ tmpl-expr-scanner.h
+
+tmpl-expr-scanner.c tmpl-expr-scanner.h: tmpl-expr-scanner.l
+ $(AM_V_GEN)$(LEX) -o $@ $<
+
+tmpl-expr-scanner.h: tmpl-expr-scanner.c
+
+tmpl-expr-parser.c tmpl-expr-parser.h: tmpl-expr-parser.y tmpl-expr-scanner.h
+ $(AM_V_GEN)$(YACC) $< --defines=tmpl-expr-parser.h --output=$@
+
+tmpl-expr-parser.h: tmpl-expr-parser.c
+
pkglib_LTLIBRARIES = libtemplate-glib-1.0.la
@@ -9,10 +25,7 @@ AM_CPPFLAGS = \
-DTMPL_GLIB_COMPILATION
EXTRA_DIST = \
- tmpl-expr-parser.c \
- tmpl-expr-parser.h \
- tmpl-expr-scanner.c \
- tmpl-expr-scanner.h \
+ $(BUILT_SOURCES) \
$(NULL)
pkgincludedir = $(includedir)/gnome-builder-@VERSION@/template-glib
@@ -41,9 +54,9 @@ libtemplate_glib_1_0_la_SOURCES = \
tmpl-expr-node.c \
tmpl-expr-node.h \
tmpl-expr-parser-private.h \
- tmpl-expr-parser.y \
+ tmpl-expr-parser.c \
tmpl-expr-private.h \
- tmpl-expr-scanner.l \
+ tmpl-expr-scanner.c \
tmpl-expr.c \
tmpl-gi-private.h \
tmpl-gi.c \
diff --git a/contrib/tmpl/meson.build b/contrib/tmpl/meson.build
new file mode 100644
index 0000000..2503018
--- /dev/null
+++ b/contrib/tmpl/meson.build
@@ -0,0 +1,172 @@
+libtmpl_enum_headers = [
+ 'tmpl-error.h',
+ 'tmpl-expr-types.h',
+]
+
+libtmpl_headers_subdir = 'gnome-builder-' + meson.project_version() + '/template-glib'
+libtmpl_headers_dir = join_paths(get_option('includedir'), libtmpl_headers_subdir)
+
+libtmpl_enums = gnome.mkenums('tmpl-enums',
+ h_template: 'tmpl-enums.h.in',
+ c_template: 'tmpl-enums.c.in',
+ sources: libtmpl_enum_headers,
+ install_header: false, # TODO: Shouldn't this be installed?
+ install_dir: libtmpl_headers_dir,
+)
+
+libtmpl_conf = configuration_data()
+libtmpl_conf.set10('ENABLE_TRACING', get_option('enable_tracing'))
+libtmpl_debug = configure_file(
+ input: 'tmpl-debug.h.in',
+ output: 'tmpl-debug.h',
+ configuration: libtmpl_conf,
+)
+
+libtmpl_headers = [
+ 'tmpl-error.h',
+ 'tmpl-expr-types.h',
+ 'tmpl-expr.h',
+ 'tmpl-glib.h',
+ 'tmpl-scope.h',
+ 'tmpl-symbol.h',
+ 'tmpl-template-locator.h',
+ 'tmpl-template.h',
+]
+
+install_headers(libtmpl_headers,
+ subdir: libtmpl_headers_subdir
+)
+
+libtmpl_generated_headers = [
+ libtmpl_debug,
+ libtmpl_enums[1],
+]
+
+libtmpl_sources = libtmpl_generated_headers + libtmpl_headers + [
+ libtmpl_enums[0],
+ 'tmpl-branch-node.c',
+ 'tmpl-branch-node.h',
+ 'tmpl-condition-node.c',
+ 'tmpl-condition-node.h',
+ 'tmpl-error.c',
+ 'tmpl-expr-eval.c',
+ 'tmpl-expr-node.c',
+ 'tmpl-expr-node.h',
+ 'tmpl-expr-parser-private.h',
+ 'tmpl-expr-private.h',
+ 'tmpl-expr.c',
+ 'tmpl-gi-private.h',
+ 'tmpl-gi.c',
+ 'tmpl-iter-node.c',
+ 'tmpl-iter-node.h',
+ 'tmpl-iterator.c',
+ 'tmpl-iterator.h',
+ 'tmpl-lexer.c',
+ 'tmpl-lexer.h',
+ 'tmpl-node.c',
+ 'tmpl-node.h',
+ 'tmpl-parser.c',
+ 'tmpl-parser.h',
+ 'tmpl-scope.c',
+ 'tmpl-symbol.c',
+ 'tmpl-template-locator.c',
+ 'tmpl-template.c',
+ 'tmpl-text-node.c',
+ 'tmpl-text-node.h',
+ 'tmpl-token-input-stream.c',
+ 'tmpl-token-input-stream.h',
+ 'tmpl-token.c',
+ 'tmpl-token.h',
+ 'tmpl-util-private.h',
+ 'tmpl-util.c',
+]
+
+cc = meson.get_compiler('c')
+libm_dep = cc.find_library('m', required: false)
+
+libtmpl_deps = [
+ libgio_dep,
+ dependency('gobject-introspection-1.0'),
+ libm_dep,
+]
+
+flex = find_program('flex')
+bison = find_program('bison')
+
+lgen = generator(flex,
+ output : '@BASENAME@.c',
+ arguments : ['-o', '@OUTPUT@', '@INPUT@']
+)
+
+pgen = generator(bison,
+ output : ['@BASENAME@.c', '@BASENAME@.h'],
+ arguments : ['@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@']
+)
+
+libtmpl_sources = libtmpl_sources + [
+ lgen.process('tmpl-expr-scanner.l'),
+ pgen.process('tmpl-expr-parser.y'),
+]
+
+libtmpl_api_version = '1.0'
+
+libtmpl = shared_library('template-glib-' + libtmpl_api_version, libtmpl_sources,
+ dependencies: libtmpl_deps,
+ version: '0.0.0',
+ c_args: ['-DTMPL_GLIB_COMPILATION'],
+ install: true,
+ install_dir: pkglibdir,
+)
+
+libtmpl_dep = declare_dependency(
+ sources: libtmpl_generated_headers,
+ link_with: libtmpl,
+ include_directories: include_directories('.'),
+)
+
+if get_option('with_introspection')
+
+ libtmpl_introspection_sources = [
+ libtmpl_enums[0],
+ libtmpl_enums[1],
+ 'tmpl-error.c',
+ 'tmpl-error.h',
+ 'tmpl-expr.c',
+ 'tmpl-expr.h',
+ 'tmpl-expr-types.h',
+ 'tmpl-scope.c',
+ 'tmpl-scope.h',
+ 'tmpl-symbol.c',
+ 'tmpl-symbol.h',
+ 'tmpl-template-locator.c',
+ 'tmpl-template-locator.h',
+ 'tmpl-template.c',
+ 'tmpl-template.h',
+ ]
+
+ libtmpl_gir = gnome.generate_gir(libtmpl,
+ sources: libtmpl_introspection_sources,
+ nsversion: libtmpl_api_version,
+ namespace: 'Template',
+ symbol_prefix: 'tmpl',
+ identifier_prefix: 'Tmpl',
+ includes: ['Gio-2.0'],
+ install: true,
+ install_dir_gir: pkggirdir,
+ install_dir_typelib: pkgtypelibdir,
+ extra_args: [
+ '-DTMPL_GLIB_COMPILATION',
+ ]
+ )
+
+ if get_option('with_vapi')
+
+ libtmpl_vapi = gnome.generate_vapi('template-glib-' + libtmpl_api_version,
+ sources: [libtmpl_gir[0], 'Template-1.0.metadata'],
+ packages: 'gio-2.0',
+ install: true,
+ install_dir: pkgvapidir,
+ )
+
+ endif
+endif
diff --git a/contrib/tmpl/tmpl-enums.h.in b/contrib/tmpl/tmpl-enums.h.in
index 3722cdc..1bb67f5 100644
--- a/contrib/tmpl/tmpl-enums.h.in
+++ b/contrib/tmpl/tmpl-enums.h.in
@@ -3,6 +3,7 @@
#define __IDE_ENUMS_H__
#include <glib-object.h>
+#include <gmodule.h>
G_BEGIN_DECLS
/*** END file-header ***/
@@ -13,7 +14,7 @@ G_BEGIN_DECLS
/*** END file-production ***/
/*** BEGIN value-header ***/
-GType @enum_name@_get_type (void);
+GType @enum_name@_get_type (void) G_GNUC_CONST;
#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ())
/*** END value-header ***/
diff --git a/contrib/tmpl/tmpl-expr-scanner.l b/contrib/tmpl/tmpl-expr-scanner.l
index afe2435..9197390 100644
--- a/contrib/tmpl/tmpl-expr-scanner.l
+++ b/contrib/tmpl/tmpl-expr-scanner.l
@@ -5,9 +5,6 @@
%option yylineno
%option nodefault
-%option header-file="tmpl-expr-scanner.h"
-%option outfile="tmpl-expr-scanner.c"
-
%{
# include "tmpl-error.h"
# include "tmpl-expr-private.h"
diff --git a/contrib/xml/meson.build b/contrib/xml/meson.build
new file mode 100644
index 0000000..7332c8a
--- /dev/null
+++ b/contrib/xml/meson.build
@@ -0,0 +1,21 @@
+libxml_sources = [
+ 'xml-reader.c',
+]
+
+libxml2_dep = dependency('libxml-2.0', version: '>=2.9.0')
+
+libxml_deps = [
+ libgio_dep,
+ libxml2_dep,
+]
+
+libxml = static_library('xml', libxml_sources,
+ dependencies: libxml_deps,
+ pic: true,
+)
+
+libxml_dep = declare_dependency(
+ link_with: libxml,
+ dependencies: libxml2_dep,
+ include_directories: include_directories('.'),
+)
diff --git a/data/fonts/meson.build b/data/fonts/meson.build
new file mode 100644
index 0000000..5f30e09
--- /dev/null
+++ b/data/fonts/meson.build
@@ -0,0 +1,3 @@
+install_data([
+ 'BuilderBlocks.ttf',
+], install_dir: join_paths(get_option('datadir'), 'gnome-builder/fonts'))
diff --git a/data/gsettings/meson.build b/data/gsettings/meson.build
new file mode 100644
index 0000000..8ede17f
--- /dev/null
+++ b/data/gsettings/meson.build
@@ -0,0 +1,40 @@
+schema_dir = join_paths(get_option('datadir'), 'glib-2.0', 'schemas')
+
+# Perhaps this should be moved to the plugin
+ctags_path = 'ctags'
+ctags = find_program('ctags-exuberant', required: false)
+if not ctags.found()
+ ctags = find_program('exctags', required: false)
+ if not ctags.found()
+ ctags = find_program('ectags', required: false)
+ if not ctags.found()
+ ctags = find_program('ctags', required: false)
+ endif
+ endif
+endif
+if ctags.found()
+ ctags_path = ctags.path()
+endif
+
+schema_conf = configuration_data()
+schema_conf.set('ECTAGS', ctags_path)
+
+configure_file(
+ input: 'org.gnome.builder.code-insight.gschema.xml.in',
+ output: 'org.gnome.builder.code-insight.gschema.xml',
+ configuration: schema_conf,
+ install: true,
+ install_dir: schema_dir,
+)
+
+install_data([
+ 'org.gnome.builder.build.gschema.xml',
+ 'org.gnome.builder.editor.gschema.xml',
+ 'org.gnome.builder.editor.language.gschema.xml',
+ 'org.gnome.builder.extension-type.gschema.xml',
+ 'org.gnome.builder.gschema.xml',
+ 'org.gnome.builder.plugin.gschema.xml',
+ 'org.gnome.builder.project-tree.gschema.xml',
+ 'org.gnome.builder.terminal.gschema.xml',
+ 'org.gnome.builder.workbench.gschema.xml',
+], install_dir: schema_dir)
diff --git a/data/icons/meson.build b/data/icons/meson.build
new file mode 100644
index 0000000..98bc8e3
--- /dev/null
+++ b/data/icons/meson.build
@@ -0,0 +1,33 @@
+icondir = join_paths(get_option('datadir'), 'icons/hicolor')
+
+install_subdir('hicolor/16x16',
+ install_dir: icondir,
+)
+
+install_subdir('hicolor/24x24',
+ install_dir: icondir,
+)
+
+install_subdir('hicolor/512x512',
+ install_dir: icondir,
+)
+
+install_subdir('hicolor/symbolic',
+ install_dir: icondir,
+)
+
+# Sadly some of these directories have unrelated files
+# TODO: Make this cleaner upstream
+
+install_data('hicolor/32x32/apps/org.gnome.Builder.png',
+ install_dir: join_paths(icondir, '32x32/apps'),
+)
+
+install_data('hicolor/48x48/apps/org.gnome.Builder.png',
+ install_dir: join_paths(icondir, '48x48/apps'),
+)
+
+install_data('hicolor/256x256/apps/org.gnome.Builder.png',
+ install_dir: join_paths(icondir, '256x256/apps'),
+)
+
diff --git a/data/meson.build b/data/meson.build
new file mode 100644
index 0000000..ec8721e
--- /dev/null
+++ b/data/meson.build
@@ -0,0 +1,62 @@
+msgfmt = find_program('msgfmt')
+podir = join_paths(meson.source_root(), 'po')
+
+# Desktop launcher and description file.
+custom_target(
+ 'desktop-file',
+ input: 'org.gnome.Builder.desktop.in.in',
+ output: 'org.gnome.Builder.desktop',
+ install: true,
+ install_dir: join_paths(get_option('datadir'), 'applications'),
+ command: [msgfmt, '--desktop', '--template', '@INPUT@',
+ '-d', podir, '-o', '@OUTPUT@'],
+)
+
+# Appdata file.
+custom_target(
+ 'appdata-file',
+ input: 'org.gnome.Builder.appdata.xml.in',
+ output: 'org.gnome.Builder.appdata.xml',
+ install: true,
+ install_dir: join_paths(get_option('datadir'), 'appdata'),
+ command: [msgfmt, '--xml', '--template', '@INPUT@',
+ '-d', podir, '-o', '@OUTPUT@'],
+)
+
+# D-Bus service file.
+dbusconf = configuration_data()
+dbusconf.set('bindir', join_paths(get_option('prefix'), get_option('bindir')))
+configure_file(
+ input: 'org.gnome.Builder.service.in',
+ output: 'org.gnome.Builder.service',
+ configuration: dbusconf,
+ install: true,
+ install_dir: join_paths(get_option('datadir'), 'dbus-1', 'services'),
+)
+
+# pkg-config files.
+pkgpkgconfdir = join_paths(get_option('libdir'), 'gnome-builder', 'pkgconfig')
+
+pkgconf = configuration_data()
+pkgconf.set('prefix', get_option('prefix'))
+pkgconf.set('libdir', join_paths('${exec_prefix}', get_option('libdir')))
+pkgconf.set('VERSION', meson.project_version())
+
+# TODO: Use the pkgconfig module to generate these
+
+configure_file(
+ input: 'libide-1.0.pc.in',
+ output: 'libide-1.0.pc',
+ configuration: pkgconf,
+ install: true,
+ install_dir: pkgpkgconfdir,
+)
+
+configure_file(
+ input: 'template-glib-1.0.pc.in',
+ output: 'template-glib-1.0.pc',
+ configuration: pkgconf,
+ install: true,
+ install_dir: pkgpkgconfdir,
+)
+
diff --git a/data/style-schemes/meson.build b/data/style-schemes/meson.build
new file mode 100644
index 0000000..64ea414
--- /dev/null
+++ b/data/style-schemes/meson.build
@@ -0,0 +1,4 @@
+install_data([
+ 'builder.xml',
+ 'builder-dark.xml',
+], install_dir: join_paths(get_option('datadir'), 'gtksourceview-3.0/styles'))
diff --git a/doc/reference/libide/meson.build b/doc/reference/libide/meson.build
new file mode 100644
index 0000000..d000d3c
--- /dev/null
+++ b/doc/reference/libide/meson.build
@@ -0,0 +1,46 @@
+if get_option('with_docs')
+
+doc_conf = configuration_data()
+doc_conf.set('LIBIDE_VERSION', libide_api_version)
+
+subdir('xml')
+
+doc_version_xml = configure_file(
+ input: 'version.xml.in',
+ output: 'version.xml',
+ configuration: doc_conf,
+)
+
+# TODO: https://github.com/mesonbuild/meson/pull/910
+pkgconfig = find_program('pkg-config')
+ret = run_command(pkgconfig, 'glib-2.0', '--variable', 'prefix')
+if ret.returncode() != 0
+ error('Failed to get prefix of glib for docs')
+else
+ glib_prefix = ret.stdout().strip()
+ glib_doc_dir = join_paths(glib_prefix, 'share/gtk-doc/html')
+endif
+
+doc_dir_arg = '--extra-dir=' + glib_doc_dir
+
+gnome.gtkdoc('libide',
+ main_sgml: 'libide-docs.sgml',
+ src_dir: join_paths(meson.source_root(), 'libide'),
+ dependencies: libide_dep,
+ install: true,
+ scan_args: [
+ '--ignore-headers=config.h',
+ ],
+ fixxref_args: [
+ '--html-dir=' + join_paths(get_option('prefix'), get_option('datadir'), 'gtk-doc/html'),
+ join_paths(doc_dir_arg, 'glib'),
+ join_paths(doc_dir_arg, 'gmodule'),
+ join_paths(doc_dir_arg, 'gobject'),
+ join_paths(doc_dir_arg, 'gio'),
+ join_paths(doc_dir_arg, 'gtk'),
+ join_paths(doc_dir_arg, 'gtksourceview-3.0'),
+ ],
+ content_files: 'xml/tree_index.sgml',
+)
+
+endif
diff --git a/doc/reference/libide/xml/gtkdocentities.ent.in b/doc/reference/libide/xml/gtkdocentities.ent.in
new file mode 100644
index 0000000..fd86c16
--- /dev/null
+++ b/doc/reference/libide/xml/gtkdocentities.ent.in
@@ -0,0 +1,7 @@
+<!ENTITY package "@PACKAGE@">
+<!ENTITY package_bugreport "@PACKAGE_BUGREPORT@">
+<!ENTITY package_name "@PACKAGE_NAME@">
+<!ENTITY package_string "@PACKAGE_STRING@">
+<!ENTITY package_tarname "@PACKAGE_TARNAME@">
+<!ENTITY package_url "@PACKAGE_URL@">
+<!ENTITY package_version "@PACKAGE_VERSION@">
diff --git a/doc/reference/libide/xml/meson.build b/doc/reference/libide/xml/meson.build
new file mode 100644
index 0000000..732ee70
--- /dev/null
+++ b/doc/reference/libide/xml/meson.build
@@ -0,0 +1,13 @@
+doc_conf.set('PACKAGE', 'gnome-builder')
+doc_conf.set('PACKAGE_NAME', 'gnome-builder')
+doc_conf.set('PACKAGE_BUGREPORT', 'FIXME')
+doc_conf.set('PACKAGE_STRING', 'gnome-builder')
+doc_conf.set('PACKAGE_TARNAME', 'gnome-builder-' + meson.project_version())
+doc_conf.set('PACKAGE_URL', 'FIXME')
+doc_conf.set('PACKAGE_VERSION', meson.project_version())
+
+configure_file(
+ input: 'gtkdocentities.ent.in',
+ output: 'gtkdocentities.ent',
+ configuration: doc_conf,
+)
diff --git a/doc/reference/libide/xml/tree_index.sgml b/doc/reference/libide/xml/tree_index.sgml
new file mode 100644
index 0000000..eb13996
--- /dev/null
+++ b/doc/reference/libide/xml/tree_index.sgml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<!DOCTYPE screen PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
+[
+ <!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
+ <!ENTITY % gtkdocentities SYSTEM "../xml/gtkdocentities.ent">
+ %gtkdocentities;
+]>
+<screen>
+
+</screen>
diff --git a/help/meson.build b/help/meson.build
new file mode 100644
index 0000000..9eaac1f
--- /dev/null
+++ b/help/meson.build
@@ -0,0 +1,9 @@
+if get_option('with_help')
+
+gnome.yelp('gnome-builder',
+ sources: ['index.page', 'introduction.page', 'legal.xml'],
+ media: ['figures/icon.png'],
+ languages: ['cs', 'de', 'el', 'es', 'hu', 'pt_BR', 'sv', 'tr'],
+)
+
+endif
diff --git a/libide/Makefile.am b/libide/Makefile.am
index 9aa324e..a9559a9 100644
--- a/libide/Makefile.am
+++ b/libide/Makefile.am
@@ -135,15 +135,10 @@ libide_1_0_la_public_headers = \
template/ide-template-base.h \
template/ide-template-provider.h \
threading/ide-thread-pool.h \
- transfers/ide-transfer.c \
transfers/ide-transfer.h \
- transfers/ide-transfer-manager.c \
transfers/ide-transfer-manager.h \
- transfers/ide-transfer-row.c \
transfers/ide-transfer-row.h \
- transfers/ide-transfers-button.c \
transfers/ide-transfers-button.h \
- transfers/ide-transfers-progress-icon.c \
transfers/ide-transfers-progress-icon.h \
tree/ide-tree-builder.h \
tree/ide-tree-node.h \
@@ -301,6 +296,11 @@ libide_1_0_la_public_sources = \
template/ide-template-base.c \
template/ide-template-provider.c \
threading/ide-thread-pool.c \
+ transfers/ide-transfer.c \
+ transfers/ide-transfer-manager.c \
+ transfers/ide-transfer-row.c \
+ transfers/ide-transfers-button.c \
+ transfers/ide-transfers-progress-icon.c \
tree/ide-tree-builder.c \
tree/ide-tree-node.c \
tree/ide-tree.c \
diff --git a/libide/application/ide-application-plugins.c b/libide/application/ide-application-plugins.c
index 510d297..bff4baf 100644
--- a/libide/application/ide-application-plugins.c
+++ b/libide/application/ide-application-plugins.c
@@ -18,6 +18,8 @@
#define G_LOG_DOMAIN "ide-application"
+#include "config.h"
+
#include <libpeas/peas.h>
#include <girepository.h>
diff --git a/libide/editor/ide-editor-map-bin.c b/libide/editor/ide-editor-map-bin.c
index 8a3592c..6f0adbb 100644
--- a/libide/editor/ide-editor-map-bin.c
+++ b/libide/editor/ide-editor-map-bin.c
@@ -18,6 +18,8 @@
#define G_LOG_DOMAIN "ide-editor-map-bin"
+#include "config.h"
+
#include <glib/gi18n.h>
#include <pango/pangofc-fontmap.h>
diff --git a/libide/editorconfig/ide-editorconfig-file-settings.c
b/libide/editorconfig/ide-editorconfig-file-settings.c
index 0e1cae2..c6879b1 100644
--- a/libide/editorconfig/ide-editorconfig-file-settings.c
+++ b/libide/editorconfig/ide-editorconfig-file-settings.c
@@ -18,7 +18,7 @@
#define G_LOG_DOMAIN "editorconfig"
-#include <editorconfig-glib.h>
+#include "editorconfig-glib.h"
#include <glib/gi18n.h>
#include "ide-debug.h"
diff --git a/libide/ide.map b/libide/ide.map
new file mode 100644
index 0000000..8173abb
--- /dev/null
+++ b/libide/ide.map
@@ -0,0 +1,6 @@
+{
+global:
+ ide_*;
+local:
+ *;
+};
diff --git a/libide/meson.build b/libide/meson.build
new file mode 100644
index 0000000..bb5db17
--- /dev/null
+++ b/libide/meson.build
@@ -0,0 +1,656 @@
+libide_enum_headers = [
+ 'buffers/ide-buffer.h',
+ 'buildsystem/ide-build-result.h',
+ 'devices/ide-device.h',
+ 'diagnostics/ide-diagnostic.h',
+ 'doap/ide-doap.h',
+ 'files/ide-indent-style.h',
+ 'highlighting/ide-highlighter.h',
+ 'runtimes/ide-runtime.h',
+ 'sourceview/ide-source-view.h',
+ 'symbols/ide-symbol.h',
+ 'threading/ide-thread-pool.h',
+ 'vcs/ide-vcs-config.h',
+ 'workbench/ide-layout-stack-split.h',
+]
+
+libide_header_subdir = 'gnome-builder-' + meson.project_version() + '/libide'
+libide_header_dir = join_paths(get_option('includedir'), libide_header_subdir)
+
+# https://github.com/mesonbuild/meson/pull/718
+libide_enums = gnome.mkenums('ide-enums',
+ h_template: 'ide-enums.h.in',
+ c_template: 'ide-enums.c.in',
+ sources: libide_enum_headers,
+ install_header: true,
+ install_dir: libide_header_dir,
+)
+
+libide_public_headers = [
+ 'ide-context.h',
+ 'ide-global.h',
+ 'ide-macros.h',
+ 'ide-object.h',
+ 'ide-service.h',
+ 'ide-types.h',
+ 'ide.h',
+ 'application/ide-application-addin.h',
+ 'application/ide-application-credits.h',
+ 'application/ide-application-tool.h',
+ 'application/ide-application.h',
+ 'buffers/ide-buffer-change-monitor.h',
+ 'buffers/ide-buffer-manager.h',
+ 'buffers/ide-buffer.h',
+ 'buffers/ide-unsaved-file.h',
+ 'buffers/ide-unsaved-files.h',
+ 'buildsystem/ide-build-command.h',
+ 'buildsystem/ide-build-command-queue.h',
+ 'buildsystem/ide-build-manager.h',
+ 'buildsystem/ide-build-result-addin.h',
+ 'buildsystem/ide-build-result.h',
+ 'buildsystem/ide-build-system.h',
+ 'buildsystem/ide-build-target.h',
+ 'buildsystem/ide-builder.h',
+ 'buildsystem/ide-configuration-manager.h',
+ 'buildsystem/ide-configuration.h',
+ 'buildsystem/ide-environment-variable.h',
+ 'buildsystem/ide-environment.h',
+ 'devices/ide-device-manager.h',
+ 'devices/ide-device-provider.h',
+ 'devices/ide-device.h',
+ 'diagnostics/ide-diagnostic-provider.h',
+ 'diagnostics/ide-diagnostic.h',
+ 'diagnostics/ide-diagnostician.h',
+ 'diagnostics/ide-diagnostics.h',
+ 'diagnostics/ide-fixit.h',
+ 'diagnostics/ide-source-location.h',
+ 'diagnostics/ide-source-range.h',
+ 'directory/ide-directory-build-system.h',
+ 'directory/ide-directory-vcs.h',
+ 'doap/ide-doap-person.h',
+ 'doap/ide-doap.h',
+ 'editor/ide-editor-perspective.h',
+ 'editor/ide-editor-view-addin.h',
+ 'editor/ide-editor-view.h',
+ 'files/ide-file-settings.defs',
+ 'files/ide-file-settings.h',
+ 'files/ide-file.h',
+ 'files/ide-indent-style.h',
+ 'genesis/ide-genesis-addin.h',
+ 'highlighting/ide-highlight-engine.h',
+ 'highlighting/ide-highlight-index.h',
+ 'highlighting/ide-highlighter.h',
+ 'history/ide-back-forward-item.h',
+ 'history/ide-back-forward-list.h',
+ 'local/ide-local-device.h',
+ 'logging/ide-log.h',
+ 'plugins/ide-extension-adapter.h',
+ 'plugins/ide-extension-set-adapter.h',
+ 'preferences/ide-preferences-addin.h',
+ 'preferences/ide-preferences-bin.h',
+ 'preferences/ide-preferences-entry.h',
+ 'preferences/ide-preferences-file-chooser-button.h',
+ 'preferences/ide-preferences-flow-box.h',
+ 'preferences/ide-preferences-font-button.h',
+ 'preferences/ide-preferences-group.h',
+ 'preferences/ide-preferences-page.h',
+ 'preferences/ide-preferences-spin-button.h',
+ 'preferences/ide-preferences-switch.h',
+ 'preferences/ide-preferences.h',
+ 'projects/ide-project-file.h',
+ 'projects/ide-project-files.h',
+ 'projects/ide-project-info.h',
+ 'projects/ide-project-item.h',
+ 'projects/ide-project-miner.h',
+ 'projects/ide-project.h',
+ 'projects/ide-recent-projects.h',
+ 'runner/ide-run-button.h',
+ 'runner/ide-run-manager.h',
+ 'runner/ide-runner.h',
+ 'runner/ide-runner-addin.h',
+ 'runtimes/ide-runtime-manager.h',
+ 'runtimes/ide-runtime-provider.h',
+ 'runtimes/ide-runtime.h',
+ 'scripting/ide-script-manager.h',
+ 'scripting/ide-script.h',
+ 'search/ide-omni-search-display.h',
+ 'search/ide-omni-search-entry.h',
+ 'search/ide-omni-search-group.h',
+ 'search/ide-omni-search-row.h',
+ 'search/ide-pattern-spec.h',
+ 'search/ide-search-context.h',
+ 'search/ide-search-engine.h',
+ 'search/ide-search-provider.h',
+ 'search/ide-search-reducer.h',
+ 'search/ide-search-result.h',
+ 'snippets/ide-source-snippet-chunk.h',
+ 'snippets/ide-source-snippet-context.h',
+ 'snippets/ide-source-snippet.h',
+ 'snippets/ide-source-snippets-manager.h',
+ 'snippets/ide-source-snippets.h',
+ 'sourceview/ide-completion-item.h',
+ 'sourceview/ide-completion-provider.h',
+ 'sourceview/ide-completion-results.h',
+ 'sourceview/ide-indenter.h',
+ 'sourceview/ide-language.h',
+ 'sourceview/ide-source-map.h',
+ 'sourceview/ide-source-style-scheme.h',
+ 'sourceview/ide-source-view-mode.h',
+ 'sourceview/ide-source-view.h',
+ 'subprocess/ide-subprocess.h',
+ 'subprocess/ide-subprocess-launcher.h',
+ 'symbols/ide-symbol-node.h',
+ 'symbols/ide-symbol-resolver.h',
+ 'symbols/ide-symbol-tree.h',
+ 'symbols/ide-symbol.h',
+ 'symbols/ide-tags-builder.h',
+ 'template/ide-project-template.h',
+ 'template/ide-template-base.h',
+ 'template/ide-template-provider.h',
+ 'threading/ide-thread-pool.h',
+ 'transfers/ide-transfer.h',
+ 'transfers/ide-transfer-manager.h',
+ 'transfers/ide-transfer-row.h',
+ 'transfers/ide-transfers-button.h',
+ 'transfers/ide-transfers-progress-icon.h',
+ 'tree/ide-tree-builder.h',
+ 'tree/ide-tree-node.h',
+ 'tree/ide-tree-types.h',
+ 'tree/ide-tree.h',
+ 'util/ide-cairo.h',
+ 'util/ide-dnd.h',
+ 'util/ide-file-manager.h',
+ 'util/ide-flatpak.h',
+ 'util/ide-glib.h',
+ 'util/ide-gtk.h',
+ 'util/ide-line-reader.h',
+ 'util/ide-list-inline.h',
+ 'util/ide-pango.h',
+ 'util/ide-posix.h',
+ 'util/ide-progress.h',
+ 'util/ide-rgba.h',
+ 'util/ide-settings.h',
+ 'util/ide-uri.h',
+ 'vcs/ide-vcs-config.h',
+ 'vcs/ide-vcs-initializer.h',
+ 'vcs/ide-vcs-uri.h',
+ 'vcs/ide-vcs.h',
+ 'workbench/ide-layout-grid.h',
+ 'workbench/ide-layout-pane.h',
+ 'workbench/ide-layout-stack-split.h',
+ 'workbench/ide-layout-stack.h',
+ 'workbench/ide-layout-stack-addin.h',
+ 'workbench/ide-layout-view.h',
+ 'workbench/ide-layout.h',
+ 'workbench/ide-omni-bar.h',
+ 'workbench/ide-perspective.h',
+ 'workbench/ide-workbench-addin.h',
+ 'workbench/ide-workbench-header-bar.h',
+ 'workbench/ide-workbench.h',
+ 'workers/ide-worker.h',
+]
+
+libide_conf = configuration_data()
+libide_conf.set10('ENABLE_TRACING', get_option('enable_tracing'))
+libide_conf.set('BUGREPORT_URL', 'https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-builder')
+libide_debug_h = configure_file(
+ input: 'ide-debug.h.in',
+ output: 'ide-debug.h',
+ configuration: libide_conf,
+ install: true,
+ install_dir: libide_header_dir,
+)
+
+# FIXME: This is ugly and should be handled upstream
+foreach header: libide_public_headers
+ header_split = header.split('/')
+ if header_split.length() == 2
+ header_path = join_paths(libide_header_subdir, header_split[0])
+ install_headers(header, subdir: header_path)
+ else
+ install_headers(header, subdir: libide_header_subdir)
+ endif
+endforeach
+
+#install_headers(libide_public_headers,
+# subdir: libide_header_subdir,
+#)
+
+subdir('resources')
+
+libide_icons_resources = gnome.compile_resources('ide-icons-resources',
+ join_paths(meson.source_root(), 'data/icons/hicolor/icons.gresource.xml'),
+ source_dir: join_paths(meson.source_root(), 'data/icons/hicolor'),
+ c_name: 'ide_icons',
+)
+
+libide_public_sources = [
+ 'application/ide-application-addin.c',
+ 'application/ide-application-tool.c',
+ 'application/ide-application.c',
+ 'application/ide-application-open.c',
+ 'buffers/ide-buffer-change-monitor.c',
+ 'buffers/ide-buffer-manager.c',
+ 'buffers/ide-buffer.c',
+ 'buffers/ide-unsaved-file.c',
+ 'buffers/ide-unsaved-files.c',
+ 'buildsystem/ide-build-command.c',
+ 'buildsystem/ide-build-command-queue.c',
+ 'buildsystem/ide-build-manager.c',
+ 'buildsystem/ide-build-result-addin.c',
+ 'buildsystem/ide-build-result.c',
+ 'buildsystem/ide-build-system.c',
+ 'buildsystem/ide-build-target.c',
+ 'buildsystem/ide-builder.c',
+ 'buildsystem/ide-configuration-manager.c',
+ 'buildsystem/ide-configuration.c',
+ 'buildsystem/ide-environment-variable.c',
+ 'buildsystem/ide-environment.c',
+ 'devices/ide-device-manager.c',
+ 'devices/ide-device-provider.c',
+ 'devices/ide-device.c',
+ 'diagnostics/ide-diagnostic-provider.c',
+ 'diagnostics/ide-diagnostic.c',
+ 'diagnostics/ide-diagnostician.c',
+ 'diagnostics/ide-diagnostics.c',
+ 'diagnostics/ide-fixit.c',
+ 'diagnostics/ide-source-location.c',
+ 'diagnostics/ide-source-range.c',
+ 'directory/ide-directory-build-system.c',
+ 'directory/ide-directory-plugin.c',
+ 'directory/ide-directory-vcs.c',
+ 'doap/ide-doap-person.c',
+ 'doap/ide-doap.c',
+ 'editor/ide-editor-perspective.c',
+ 'editor/ide-editor-view-addin.c',
+ 'editor/ide-editor-view.c',
+ 'files/ide-file-settings.c',
+ 'files/ide-file.c',
+ 'genesis/ide-genesis-addin.c',
+ 'highlighting/ide-highlight-engine.c',
+ 'highlighting/ide-highlight-index.c',
+ 'highlighting/ide-highlighter.c',
+ 'history/ide-back-forward-item.c',
+ 'history/ide-back-forward-list-load.c',
+ 'history/ide-back-forward-list-save.c',
+ 'history/ide-back-forward-list.c',
+ 'ide-context.c',
+ libide_enums[0],
+ 'ide-object.c',
+ 'ide-service.c',
+ 'ide.c',
+ 'local/ide-local-device.c',
+ 'logging/ide-log.c',
+ 'plugins/ide-extension-adapter.c',
+ 'plugins/ide-extension-set-adapter.c',
+ 'preferences/ide-preferences-addin.c',
+ 'preferences/ide-preferences-entry.c',
+ 'preferences/ide-preferences-file-chooser-button.c',
+ 'preferences/ide-preferences-flow-box.c',
+ 'preferences/ide-preferences-font-button.c',
+ 'preferences/ide-preferences-group.c',
+ 'preferences/ide-preferences-page.c',
+ 'preferences/ide-preferences-spin-button.c',
+ 'preferences/ide-preferences-switch.c',
+ 'preferences/ide-preferences.c',
+ 'projects/ide-project-file.c',
+ 'projects/ide-project-files.c',
+ 'projects/ide-project-info.c',
+ 'projects/ide-project-item.c',
+ 'projects/ide-project-miner.c',
+ 'projects/ide-project.c',
+ 'projects/ide-recent-projects.c',
+ 'runner/ide-run-button.c',
+ 'runner/ide-run-manager.c',
+ 'runner/ide-runner.c',
+ 'runner/ide-runner-addin.c',
+ 'runtimes/ide-runtime-manager.c',
+ 'runtimes/ide-runtime-provider.c',
+ 'runtimes/ide-runtime.c',
+ 'scripting/ide-script-manager.c',
+ 'scripting/ide-script.c',
+ 'search/ide-omni-search-display.c',
+ 'search/ide-omni-search-entry.c',
+ 'search/ide-omni-search-group.c',
+ 'search/ide-omni-search-row.c',
+ 'search/ide-pattern-spec.c',
+ 'search/ide-search-context.c',
+ 'search/ide-search-engine.c',
+ 'search/ide-search-provider.c',
+ 'search/ide-search-result.c',
+ 'snippets/ide-source-snippet-chunk.c',
+ 'snippets/ide-source-snippet-context.c',
+ 'snippets/ide-source-snippet.c',
+ 'snippets/ide-source-snippets-manager.c',
+ 'snippets/ide-source-snippets.c',
+ 'sourceview/ide-completion-item.c',
+ 'sourceview/ide-completion-provider.c',
+ 'sourceview/ide-completion-results.c',
+ 'sourceview/ide-indenter.c',
+ 'sourceview/ide-language.c',
+ 'sourceview/ide-source-map.c',
+ 'sourceview/ide-source-style-scheme.c',
+ 'sourceview/ide-source-view-mode.c',
+ 'sourceview/ide-source-view.c',
+ 'subprocess/ide-subprocess.c',
+ 'subprocess/ide-subprocess-launcher.c',
+ 'symbols/ide-symbol-node.c',
+ 'symbols/ide-symbol-resolver.c',
+ 'symbols/ide-symbol-tree.c',
+ 'symbols/ide-symbol.c',
+ 'symbols/ide-tags-builder.c',
+ 'template/ide-project-template.c',
+ 'template/ide-template-base.c',
+ 'template/ide-template-provider.c',
+ 'threading/ide-thread-pool.c',
+ 'transfers/ide-transfer.c',
+ 'transfers/ide-transfer-manager.c',
+ 'transfers/ide-transfer-row.c',
+ 'transfers/ide-transfers-button.c',
+ 'transfers/ide-transfers-progress-icon.c',
+ 'tree/ide-tree-builder.c',
+ 'tree/ide-tree-node.c',
+ 'tree/ide-tree.c',
+ 'util/ide-cairo.c',
+ 'util/ide-dnd.c',
+ 'util/ide-file-manager.c',
+ 'util/ide-flatpak.c',
+ 'util/ide-glib.c',
+ 'util/ide-gtk.c',
+ 'util/ide-line-reader.c',
+ 'util/ide-pango.c',
+ 'util/ide-posix.c',
+ 'util/ide-progress.c',
+ 'util/ide-rgba.c',
+ 'util/ide-settings.c',
+ 'util/ide-uri.c',
+ 'vcs/ide-vcs-config.c',
+ 'vcs/ide-vcs-initializer.c',
+ 'vcs/ide-vcs-uri.c',
+ 'vcs/ide-vcs.c',
+ 'workbench/ide-layout-grid.c',
+ 'workbench/ide-layout-pane.c',
+ 'workbench/ide-layout-stack.c',
+ 'workbench/ide-layout-stack-addin.c',
+ 'workbench/ide-layout-view.c',
+ 'workbench/ide-layout.c',
+ 'workbench/ide-omni-bar.c',
+ 'workbench/ide-perspective.c',
+ 'workbench/ide-workbench-addin.c',
+ 'workbench/ide-workbench-header-bar.c',
+ 'workbench/ide-workbench-open.c',
+ 'workbench/ide-workbench.c',
+ 'workers/ide-worker.c',
+]
+
+libide_generated_headers = [
+ libide_resources[1],
+ libide_icons_resources[1],
+ libide_enums[1],
+ libide_debug_h,
+]
+
+libide_sources = libide_generated_headers + libide_public_sources + [
+ 'application/ide-application-actions.c',
+ 'application/ide-application-actions.h',
+ 'application/ide-application-command-line.c',
+ 'application/ide-application-plugins.c',
+ 'application/ide-application-private.h',
+ 'application/ide-application-tests.c',
+ 'application/ide-application-tests.h',
+ 'editor/ide-editor-frame-actions.c',
+ 'editor/ide-editor-frame-actions.h',
+ 'editor/ide-editor-frame-private.h',
+ 'editor/ide-editor-frame.c',
+ 'editor/ide-editor-frame.h',
+ 'editor/ide-editor-map-bin.c',
+ 'editor/ide-editor-map-bin.h',
+ 'editor/ide-editor-plugin.c',
+ 'editor/ide-editor-layout-stack-addin.c',
+ 'editor/ide-editor-layout-stack-addin.h',
+ 'editor/ide-editor-layout-stack-controls.c',
+ 'editor/ide-editor-layout-stack-controls.h',
+ 'editor/ide-editor-print-operation.c',
+ 'editor/ide-editor-print-operation.h',
+ 'editor/ide-editor-tweak-widget.c',
+ 'editor/ide-editor-tweak-widget.h',
+ 'editor/ide-editor-view-actions.c',
+ 'editor/ide-editor-view-actions.h',
+ 'editor/ide-editor-view-addin-private.h',
+ 'editor/ide-editor-view-private.h',
+ 'editor/ide-editor-workbench-addin.c',
+ 'editor/ide-editor-workbench-addin.h',
+ 'gconstructor.h',
+ 'greeter/ide-greeter-perspective.c',
+ 'greeter/ide-greeter-perspective.h',
+ 'greeter/ide-greeter-project-row.c',
+ 'greeter/ide-greeter-project-row.h',
+ 'gsettings/ide-gsettings-file-settings.c',
+ 'gsettings/ide-gsettings-file-settings.h',
+ 'gsettings/ide-language-defaults.c',
+ 'gsettings/ide-language-defaults.h',
+ 'history/ide-back-forward-list-private.h',
+ 'ide-internal.h',
+ 'keybindings/ide-keybindings.c',
+ 'keybindings/ide-keybindings.h',
+ 'keybindings/ide-shortcuts-window.c',
+ 'keybindings/ide-shortcuts-window.h',
+ 'modelines/ide-modelines-file-settings.c',
+ 'modelines/ide-modelines-file-settings.h',
+ 'modelines/modeline-parser.c',
+ 'modelines/modeline-parser.h',
+ 'plugins/ide-extension-util.c',
+ 'plugins/ide-extension-util.h',
+ 'preferences/ide-preferences-bin-private.h',
+ 'preferences/ide-preferences-bin.c',
+ 'preferences/ide-preferences-builtin.c',
+ 'preferences/ide-preferences-builtin.h',
+ 'preferences/ide-preferences-group-private.h',
+ 'preferences/ide-preferences-language-row.c',
+ 'preferences/ide-preferences-language-row.h',
+ 'preferences/ide-preferences-page-private.h',
+ 'preferences/ide-preferences-perspective.c',
+ 'preferences/ide-preferences-perspective.h',
+ 'runner/ide-run-manager-private.h',
+ 'search/ide-search-reducer.c',
+ 'snippets/ide-source-snippet-completion-item.c',
+ 'snippets/ide-source-snippet-completion-item.h',
+ 'snippets/ide-source-snippet-completion-provider.c',
+ 'snippets/ide-source-snippet-completion-provider.h',
+ 'snippets/ide-source-snippet-parser.c',
+ 'snippets/ide-source-snippet-parser.h',
+ 'snippets/ide-source-snippet-private.h',
+ 'sourceview/ide-line-change-gutter-renderer.c',
+ 'sourceview/ide-line-change-gutter-renderer.h',
+ 'sourceview/ide-line-diagnostics-gutter-renderer.c',
+ 'sourceview/ide-line-diagnostics-gutter-renderer.h',
+ 'sourceview/ide-source-iter.c',
+ 'sourceview/ide-source-iter.h',
+ 'sourceview/ide-source-view-capture.c',
+ 'sourceview/ide-source-view-capture.h',
+ 'sourceview/ide-source-view-movements.c',
+ 'sourceview/ide-source-view-movements.h',
+ 'sourceview/ide-text-iter.c',
+ 'sourceview/ide-text-iter.h',
+ 'sourceview/ide-text-util.c',
+ 'sourceview/ide-text-util.h',
+ 'subprocess/ide-breakout-subprocess.c',
+ 'subprocess/ide-breakout-subprocess.h',
+ 'subprocess/ide-breakout-subprocess-private.h',
+ 'subprocess/ide-simple-subprocess.c',
+ 'subprocess/ide-simple-subprocess.h',
+ 'theatrics/ide-box-theatric.c',
+ 'theatrics/ide-box-theatric.h',
+ 'theming/ide-css-provider.c',
+ 'theming/ide-css-provider.h',
+ 'theming/ide-theme-manager.c',
+ 'theming/ide-theme-manager.h',
+ 'tree/ide-tree-private.h',
+ 'util/ide-async-helper.c',
+ 'util/ide-async-helper.h',
+ 'util/ide-battery-monitor.c',
+ 'util/ide-battery-monitor.h',
+ 'util/ide-doc-seq.c',
+ 'util/ide-doc-seq.h',
+ 'util/ide-gdk.c',
+ 'util/ide-gdk.h',
+ 'util/ide-ref-ptr.c',
+ 'util/ide-ref-ptr.h',
+ 'util/ide-window-settings.c',
+ 'util/ide-window-settings.h',
+ 'workbench/ide-layout-stack-actions.c',
+ 'workbench/ide-layout-stack-actions.h',
+ 'workbench/ide-layout-stack-private.h',
+ 'workbench/ide-layout-tab-bar.c',
+ 'workbench/ide-layout-tab-bar.h',
+ 'workbench/ide-layout-tab-bar-private.h',
+ 'workbench/ide-layout-tab.c',
+ 'workbench/ide-layout-tab.h',
+ 'workbench/ide-layout-tab-private.h',
+ 'workbench/ide-omni-bar-row.c',
+ 'workbench/ide-omni-bar-row.h',
+ 'workbench/ide-perspective-menu-button.c',
+ 'workbench/ide-perspective-menu-button.h',
+ 'workbench/ide-workbench-actions.c',
+ 'workbench/ide-workbench-private.h',
+ 'workers/ide-worker-manager.c',
+ 'workers/ide-worker-manager.h',
+ 'workers/ide-worker-process.c',
+ 'workers/ide-worker-process.h',
+]
+
+libgtksource_dep = dependency('gtksourceview-3.0', version: '>=3.21.2')
+
+libide_deps = [
+ dependency('gio-unix-2.0'),
+ dependency('pangoft2', version: '>=1.38.0'),
+ libgtksource_dep,
+ libgio_dep,
+ libgtk_dep,
+ libpeas_dep,
+ libegg_dep,
+ libpnl_dep,
+ libtmpl_dep,
+ libxml_dep,
+ libsearch_dep,
+ libgd_dep,
+ libnautilus_dep,
+]
+
+contrib_dir = join_paths(meson.source_root(), 'contrib/')
+
+if get_option('with_webkit')
+ libide_sources += ['webkit/ide-webkit.c']
+ libide_deps += [dependency('webkit2gtk-4.0', version: '>=2.12.0')]
+endif
+
+libide_args = []
+if get_option('with_editorconfig')
+ libide_args += '-DENABLE_EDITORCONFIG'
+ libide_deps += libeditorconfig_dep
+ libide_sources += [
+ 'editorconfig/editorconfig-glib.c',
+ 'editorconfig/ide-editorconfig-file-settings.c',
+ ]
+endif
+
+libide_api_version = '1.0'
+
+# We want to find the subdirectory to install our override into:
+python3 = find_program('python3')
+
+get_overridedir = '''
+import os
+import sysconfig
+
+libdir = sysconfig.get_config_var('LIBDIR')
+if not libdir:
+ libdir = '/usr/lib'
+
+try:
+ import gi
+ overridedir = gi._overridesdir
+except ImportError:
+ purelibdir = sysconfig.get_path('purelib')
+ overridedir = os.path.join(purelibdir, 'gi', 'overrides')
+
+if overridedir.startswith(libdir): # Should always be True..
+ overridedir = overridedir[len(libdir) + 1:]
+
+print(overridedir)
+'''
+
+ret = run_command([python3, '-c', get_overridedir])
+if ret.returncode() != 0
+ error('Failed to determine pygobject overridedir')
+else
+ pygobject_override_dir = join_paths(get_option('libdir'), ret.stdout().strip())
+endif
+
+install_data('Ide.py', install_dir: pygobject_override_dir)
+
+libide = shared_library('ide-' + libide_api_version, [libide_resources[0], libide_icons_resources[0]] +
libide_sources,
+ dependencies: libide_deps,
+ link_depends: 'ide.map',
+ c_args: libide_args,
+ link_args: [
+ '-Wl,--version-script,' + join_paths(meson.current_source_dir(), 'ide.map'),
+ ],
+ install: true,
+ install_dir: pkglibdir,
+)
+
+libide_dep = declare_dependency(
+ sources: libide_generated_headers,
+ dependencies: [
+ libgio_dep,
+ libgtk_dep,
+ libgtksource_dep,
+ libpnl_dep,
+ libegg_dep,
+ ],
+ link_with: libide,
+ include_directories: include_directories('.'),
+)
+
+if get_option('with_introspection')
+
+ libide_gir = gnome.generate_gir(libide,
+ sources: libide_generated_headers + libide_public_headers + libide_public_sources,
+ nsversion: libide_api_version,
+ namespace: 'Ide',
+ symbol_prefix: 'ide',
+ identifier_prefix: 'Ide',
+ link_with: [
+ libegg, libtmpl,
+ ],
+ includes: [
+ libegg_gir[0], 'Gio-2.0', 'GtkSource-3.0',
+ 'Peas-1.0', libpnl_gir[0], libtmpl_gir[0]],
+ install: true,
+ install_dir_gir: pkggirdir,
+ install_dir_typelib: pkgtypelibdir,
+ extra_args: [
+ '--c-include=ide.h',
+ ]
+ )
+
+ if get_option('with_vapi')
+
+ libide_vapi = gnome.generate_vapi('libide-' + libide_api_version,
+ sources: libide_gir[0],
+ packages: [
+ 'gio-2.0',
+ 'gtk+-3.0',
+ 'gtksourceview-3.0',
+ 'libpeas-1.0',
+ libpnl_vapi,
+ libegg_vapi,
+ libtmpl_vapi,
+ ],
+ install: true,
+ install_dir: pkgvapidir,
+ )
+
+ endif
+endif
diff --git a/libide/resources/meson.build b/libide/resources/meson.build
new file mode 100644
index 0000000..2b8b1de
--- /dev/null
+++ b/libide/resources/meson.build
@@ -0,0 +1,5 @@
+libide_resources = gnome.compile_resources('ide-resources',
+ 'libide.gresource.xml',
+ c_name: 'ide',
+)
+
diff --git a/libide/workers/ide-worker-manager.c b/libide/workers/ide-worker-manager.c
index e202d74..68deebd 100644
--- a/libide/workers/ide-worker-manager.c
+++ b/libide/workers/ide-worker-manager.c
@@ -18,6 +18,8 @@
#define G_LOG_DOMAIN "ide-worker-manager"
+#include "config.h"
+
#include <egg-counter.h>
#include <gio/gio.h>
#include <gio/gunixsocketaddress.h>
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..9545aa1
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,181 @@
+project('gnome-builder', 'c',
+ license: 'GPL3+',
+ version: '3.22.1',
+ meson_version: '>=0.36.0',
+ default_options: [
+ 'b_lundef=false', # https://github.com/mesonbuild/meson/pull/834
+ 'c_std=gnu11',
+ 'warning_level=2',
+ ],
+)
+
+version_split = meson.project_version().split('.')
+MAJOR_VERSION = version_split[0]
+MINOR_VERSION = version_split[1]
+MICRO_VERSION = version_split[2]
+
+conf = configuration_data()
+conf.set_quoted('PACKAGE_NAME', 'gnome-builder')
+conf.set_quoted('PACKAGE_VERSION', meson.project_version())
+conf.set_quoted('PACKAGE_STRING', 'gnome-builder-' + meson.project_version())
+conf.set_quoted('PACKAGE_DATADIR', get_option('datadir'))
+conf.set_quoted('PACKAGE_LIBDIR', get_option('datadir'))
+conf.set_quoted('PACKAGE_LOCALE_DIR', join_paths(get_option('datadir'), 'locale'))
+conf.set_quoted('PACKAGE_LIBEXECDIR', get_option('libexecdir'))
+
+conf.set('GETTEXT_PACKAGE', 'PACKAGE_NAME')
+conf.set('LOCALEDIR', 'PACKAGE_LOCALE_DIR')
+
+conf.set10('ENABLE_NLS', true) # Always enabled
+
+# We should probably avoid using these
+conf.set_quoted('SRCDIR', meson.source_root())
+conf.set_quoted('BUILDDIR', meson.build_root())
+
+add_global_arguments([
+ '-DHAVE_CONFIG_H',
+ '-I' + meson.build_root(), # config.h
+ '-D_GNU_SOURCE',
+], language: 'c')
+
+cc = meson.get_compiler('c')
+global_c_args = []
+test_c_args = [
+ '-Wcast-align',
+ '-Wdeclaration-after-statement',
+ '-Werror=format-security',
+ '-Werror=format=2',
+ '-Wextra',
+ '-Wformat-nonliteral',
+ '-Wformat-security',
+ '-Wmissing-include-dirs',
+ '-Wnested-externs',
+ '-Wno-missing-field-initializers',
+ '-Wno-sign-compare',
+ '-Wno-strict-aliasing',
+ '-Wno-uninitialized',
+ '-Wno-unused-parameter',
+ '-Wpointer-arith',
+ '-Wredundant-decls',
+ '-Wshadow',
+ '-Wswitch-default',
+ '-Wswitch-enum',
+ '-fstack-protector-strong',
+]
+foreach arg: test_c_args
+ if cc.has_argument(arg)
+ global_c_args += arg
+ endif
+endforeach
+add_global_arguments(
+ global_c_args,
+ language: 'c'
+)
+
+global_link_args = []
+test_link_args = [
+ '-Wl,-z,relro',
+ '-Wl,-z,now',
+]
+foreach arg: test_link_args
+ if cc.has_argument(arg)
+ global_link_args += arg
+ endif
+endforeach
+add_global_link_arguments(
+ global_link_args,
+ language: 'c'
+)
+
+# TODO: Maybe reuse 'b_ndebug' option
+if not get_option('buildtype').startswith('debug')
+
+ add_global_arguments([
+ '-DG_DISABLE_CAST_CHECKS',
+ '-DG_DISABLE_ASSERT',
+ '-DG_DISABLE_CHECKS',
+ ], language: 'c')
+
+endif
+
+if cc.has_function('sched_getcpu')
+ conf.set('HAVE_SCHED_GETCPU', true)
+endif
+
+configure_file(
+ input: 'config.h.meson',
+ output: 'config.h',
+ configuration: conf
+)
+
+# Commonly used deps
+libgio_dep = dependency('gio-2.0', version: '>= 2.49.0')
+libgtk_dep = dependency('gtk+-3.0', version: '>=3.21.5')
+libpeas_dep = dependency('libpeas-1.0', version: '>=1.18.0')
+
+# We don't use these directly but the build
+# process does so just check ourselves
+find_program('itstool')
+find_program('msgmerge')
+
+
+pkglibdir = join_paths(get_option('libdir'), 'gnome-builder')
+pkggirdir = join_paths(get_option('datadir'),'gnome-builder', 'gir-1.0')
+pkgtypelibdir = join_paths(get_option('libdir'), 'gnome-builder', 'girepository-1.0')
+pkgvapidir = join_paths(get_option('datadir'), 'gnome-builder/vapi')
+gnome = import('gnome')
+
+subdir('data')
+subdir('data/fonts')
+subdir('data/gsettings')
+subdir('data/icons')
+subdir('data/style-schemes')
+subdir('contrib/egg')
+subdir('contrib/gd')
+subdir('contrib/libeditorconfig')
+subdir('contrib/nautilus')
+subdir('contrib/pnl')
+subdir('contrib/rg')
+subdir('contrib/search')
+subdir('contrib/tmpl')
+subdir('contrib/xml')
+subdir('contrib/gstyle') # Depends on libsearch/libxml
+subdir('libide')
+subdir('doc/reference/libide')
+subdir('help')
+subdir('plugins')
+subdir('po')
+subdir('tests')
+subdir('tools')
+
+builder_exe = executable('gnome-builder', 'src/main.c',
+ gui_app: true,
+ install: true,
+ c_args: '-fPIE',
+ link_args: '-pie',
+ dependencies: libide_deps + [libide_dep],
+)
+
+executable('gnome-builder-cli', 'src/main.c',
+ gui_app: false,
+ install: true,
+ c_args: '-fPIE',
+ link_args: '-pie',
+ dependencies: libide_deps + [libide_dep],
+)
+
+executable('gnome-builder-worker', 'src/main.c',
+ gui_app: false,
+ install: true,
+ install_dir: get_option('libexecdir'),
+ c_args: '-fPIE',
+ link_args: '-pie',
+ dependencies: libide_deps + [libide_dep],
+)
+
+meson.add_install_script('build/meson/meson_post_install.sh')
+
+run_target('run',
+ command: 'build/meson/meson_run_locally.sh',
+ depends: builder_exe,
+)
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 0000000..aa51ec2
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1,50 @@
+option('enable_tracing', type: 'boolean', value: false)
+option('enable_profiling', type: 'boolean', value: false)
+
+option('with_editorconfig', type: 'boolean')
+option('with_webkit', type: 'boolean')
+option('with_introspection', type: 'boolean')
+option('with_vapi', type: 'boolean')
+option('with_help', type: 'boolean')
+option('with_docs', type: 'boolean', value: false)
+
+# Plugins
+# Ideally we want many of these to be defined in the plugin dir:
+# https://github.com/mesonbuild/meson/issues/707
+option('with_autotools', type: 'boolean')
+option('with_autotools_templates', type: 'boolean')
+option('with_build_tools', type: 'boolean')
+option('with_c_pack', type: 'boolean')
+option('with_clang', type: 'boolean')
+option('with_color_picker', type: 'boolean')
+option('with_command_bar', type: 'boolean')
+option('with_comment_code', type: 'boolean')
+option('with_contributing', type: 'boolean')
+option('with_create_project', type: 'boolean')
+option('with_ctags', type: 'boolean')
+option('with_devhelp', type: 'boolean')
+option('with_file_search', type: 'boolean')
+option('with_flatpak', type: 'boolean')
+option('with_fpaste', type: 'boolean')
+option('with_gcc', type: 'boolean')
+option('with_gettext', type: 'boolean')
+option('with_git', type: 'boolean')
+option('with_gnome_code_assistance', type: 'boolean')
+option('with_hello_cpp', type: 'boolean')
+option('with_html_completion', type: 'boolean')
+option('with_html_preview', type: 'boolean')
+option('with_jedi', type: 'boolean')
+option('with_jhbuild', type: 'boolean')
+option('with_mingw', type: 'boolean')
+option('with_project_tree', type: 'boolean')
+option('with_python_gi_imports_completion', type: 'boolean')
+option('with_python_pack', type: 'boolean')
+option('with_quick_highlight', type: 'boolean')
+option('with_support', type: 'boolean')
+option('with_symbol_tree', type: 'boolean')
+option('with_sysmon', type: 'boolean')
+option('with_sysprof', type: 'boolean')
+option('with_terminal', type: 'boolean')
+option('with_todo', type: 'boolean')
+option('with_vala_pack', type: 'boolean')
+option('with_xml_pack', type: 'boolean')
diff --git a/plugins/autotools-templates/meson.build b/plugins/autotools-templates/meson.build
new file mode 100644
index 0000000..7b93608
--- /dev/null
+++ b/plugins/autotools-templates/meson.build
@@ -0,0 +1,10 @@
+if get_option('with_autotools_templates')
+
+autotools_template_datadir = join_paths(plugindatadir, 'autotools_templates')
+autotools_template_dir = join_paths(plugindir, 'autotools_templates')
+
+install_data('autotools-templates.plugin', install_dir: plugindir)
+install_data('autotools_templates/__init__.py', install_dir: autotools_template_dir)
+install_subdir('autotools_templates/resources', install_dir: autotools_template_datadir)
+
+endif
diff --git a/plugins/autotools/meson.build b/plugins/autotools/meson.build
new file mode 100644
index 0000000..4b479c8
--- /dev/null
+++ b/plugins/autotools/meson.build
@@ -0,0 +1,37 @@
+if get_option('with_autotools')
+
+autotools_sources = [
+ 'autotools-plugin.c',
+ 'ide-autotools-application-addin.c',
+ 'ide-autotools-application-addin.h',
+ 'ide-autotools-builder.c',
+ 'ide-autotools-builder.h',
+ 'ide-autotools-build-system.c',
+ 'ide-autotools-build-system.h',
+ 'ide-autotools-build-target.c',
+ 'ide-autotools-build-target.h',
+ 'ide-autotools-build-task.c',
+ 'ide-autotools-build-task.h',
+ 'ide-autotools-project-miner.c',
+ 'ide-autotools-project-miner.h',
+ 'ide-makecache.c',
+ 'ide-makecache.h',
+ 'ide-makecache-target.c',
+ 'ide-makecache-target.h',
+]
+
+make_exe_name = 'make'
+if find_program('gmake', required: false).found()
+ make_exe_name = 'gmake'
+endif
+
+shared_library('autotools-plugin', autotools_sources,
+ dependencies: plugin_deps,
+ c_args: ['-DGNU_MAKE_NAME="@0@"'.format(make_exe_name)],
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('autotools.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/build-tools/meson.build b/plugins/build-tools/meson.build
new file mode 100644
index 0000000..70a72c2
--- /dev/null
+++ b/plugins/build-tools/meson.build
@@ -0,0 +1,41 @@
+if get_option('with_build_tools')
+
+build_tools_resources = gnome.compile_resources(
+ 'gbp-build-resources',
+ 'gbp-build-tools.gresource.xml',
+ c_name: 'gbp_build_tools',
+)
+
+build_tools_sources = [
+ 'gbp-build-configuration-row.c',
+ 'gbp-build-configuration-row.h',
+ 'gbp-build-configuration-view.c',
+ 'gbp-build-configuration-view.h',
+ 'gbp-build-log-panel.c',
+ 'gbp-build-log-panel.h',
+ 'gbp-build-panel.c',
+ 'gbp-build-panel.h',
+ 'gbp-build-perspective.c',
+ 'gbp-build-perspective.h',
+ 'gbp-build-plugin.c',
+ 'gbp-build-tool.c',
+ 'gbp-build-tool.h',
+ 'gbp-build-workbench-addin.c',
+ 'gbp-build-workbench-addin.h',
+ 'ide-environment-editor-row.c',
+ 'ide-environment-editor-row.h',
+ 'ide-environment-editor.c',
+ 'ide-environment-editor.h',
+ build_tools_resources[0],
+]
+
+shared_library('build-tools-plugin', build_tools_sources,
+ dependencies: plugin_deps,
+ c_args: ['-DG_LOG_DOMAIN="build-tools"'],
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('build-tools.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/c-pack/meson.build b/plugins/c-pack/meson.build
new file mode 100644
index 0000000..057ce98
--- /dev/null
+++ b/plugins/c-pack/meson.build
@@ -0,0 +1,21 @@
+if get_option('with_c_pack')
+
+c_pack_sources = [
+ 'c-pack-plugin.c',
+ 'c-parse-helper.c',
+ 'c-parse-helper.h',
+ 'ide-c-indenter.c',
+ 'ide-c-indenter.h',
+ 'ide-c-format-provider.c',
+ 'ide-c-format-provider.h',
+]
+
+shared_library('c-pack-plugin', c_pack_sources,
+ dependencies: plugin_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('c-pack.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/clang/meson.build b/plugins/clang/meson.build
new file mode 100644
index 0000000..4af8124
--- /dev/null
+++ b/plugins/clang/meson.build
@@ -0,0 +1,44 @@
+if get_option('with_clang')
+
+clang_sources = [
+ 'ide-clang-completion-item.c',
+ 'ide-clang-completion-item.h',
+ 'ide-clang-completion-item-private.h',
+ 'ide-clang-completion-provider.c',
+ 'ide-clang-completion-provider.h',
+ 'ide-clang-diagnostic-provider.c',
+ 'ide-clang-diagnostic-provider.h',
+ 'ide-clang-highlighter.c',
+ 'ide-clang-highlighter.h',
+ 'ide-clang-preferences-addin.c',
+ 'ide-clang-preferences-addin.h',
+ 'ide-clang-private.h',
+ 'ide-clang-service.c',
+ 'ide-clang-service.h',
+ 'ide-clang-symbol-node.c',
+ 'ide-clang-symbol-node.h',
+ 'ide-clang-symbol-resolver.c',
+ 'ide-clang-symbol-resolver.h',
+ 'ide-clang-symbol-tree.c',
+ 'ide-clang-symbol-tree.h',
+ 'ide-clang-translation-unit.c',
+ 'ide-clang-translation-unit.h',
+ 'clang-plugin.c',
+]
+
+cc = meson.get_compiler('c')
+libclang = cc.find_library('libclang')
+
+clang_deps = plugin_deps + [
+ libclang,
+]
+
+shared_library('clang-plugin', clang_sources,
+ dependencies: clang_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('clang.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/color-picker/meson.build b/plugins/color-picker/meson.build
new file mode 100644
index 0000000..e69a6cc
--- /dev/null
+++ b/plugins/color-picker/meson.build
@@ -0,0 +1,45 @@
+if get_option('with_color_picker')
+
+color_picker_resources = gnome.compile_resources(
+ 'gb-color-picker-resources',
+ 'gb-color-picker.gresource.xml',
+ c_name: 'gb_color_picker',
+)
+
+color_picker_sources = [
+ 'gb-color-picker-helper.c',
+ 'gb-color-picker-helper.h',
+ 'gb-color-picker-plugin.c',
+ 'gb-color-picker-document-monitor.c',
+ 'gb-color-picker-document-monitor.h',
+ 'gb-color-picker-prefs.c',
+ 'gb-color-picker-prefs.h',
+ 'gb-color-picker-prefs-list.c',
+ 'gb-color-picker-prefs-palette-list.h',
+ 'gb-color-picker-prefs-palette-list.c',
+ 'gb-color-picker-prefs-list.h',
+ 'gb-color-picker-prefs-palette-row.c',
+ 'gb-color-picker-prefs-palette-row.h',
+ 'gb-color-picker-private.h',
+ 'gb-color-picker-workbench-addin.c',
+ 'gb-color-picker-workbench-addin.h',
+ 'gb-color-picker-workbench-addin-private.h',
+ color_picker_resources[0],
+]
+
+color_picker_deps = plugin_deps + [
+ libgstyle_dep,
+]
+
+shared_library('color-picker-plugin', color_picker_sources,
+ dependencies: color_picker_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('color-picker.plugin', install_dir: plugindir)
+install_data('gsettings/org.gnome.builder.plugins.color_picker_plugin.gschema.xml',
+ install_dir: schema_dir,
+)
+
+endif
diff --git a/plugins/command-bar/meson.build b/plugins/command-bar/meson.build
new file mode 100644
index 0000000..ec72bf4
--- /dev/null
+++ b/plugins/command-bar/meson.build
@@ -0,0 +1,47 @@
+if get_option('with_command_bar')
+
+command_bar_resources = gnome.compile_resources(
+ 'gb-command-bar-resources',
+ 'gb-command-bar.gresource.xml',
+ c_name: 'gb_command_bar',
+)
+
+command_bar_sources = [
+ command_bar_resources[0],
+ command_bar_resources[1],
+ 'gb-command-bar.c',
+ 'gb-command-bar.h',
+ 'gb-command-gaction-provider.c',
+ 'gb-command-gaction-provider.h',
+ 'gb-command-gaction.c',
+ 'gb-command-gaction.h',
+ 'gb-command-manager.c',
+ 'gb-command-manager.h',
+ 'gb-command-provider.c',
+ 'gb-command-provider.h',
+ 'gb-command-result.c',
+ 'gb-command-result.h',
+ 'gb-command-vim-provider.c',
+ 'gb-command-vim-provider.h',
+ 'gb-command-vim.c',
+ 'gb-command-vim.h',
+ 'gb-command.c',
+ 'gb-command.h',
+ 'gb-vim.c',
+ 'gb-vim.h',
+]
+
+command_bar_deps = plugin_deps + [
+ libgd_dep,
+ libnautilus_dep,
+]
+
+shared_library('command-bar-plugin', command_bar_sources,
+ dependencies: command_bar_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('command-bar.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/comment-code/meson.build b/plugins/comment-code/meson.build
new file mode 100644
index 0000000..fcd683b
--- /dev/null
+++ b/plugins/comment-code/meson.build
@@ -0,0 +1,24 @@
+if get_option('with_comment_code')
+
+comment_code_resources = gnome.compile_resources(
+ 'gbp-comment-code-resources',
+ 'gbp-comment-code.gresource.xml',
+ c_name: 'gbp_comment_code',
+)
+
+comment_code_sources = [
+ 'gbp-comment-code-plugin.c',
+ 'gbp-comment-code-view-addin.c',
+ 'gbp-comment-code-view-addin.h',
+ comment_code_resources[0],
+]
+
+shared_library('comment-code-plugin', comment_code_sources,
+ dependencies: plugin_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('comment-code.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/contributing/meson.build b/plugins/contributing/meson.build
new file mode 100644
index 0000000..d31bd96
--- /dev/null
+++ b/plugins/contributing/meson.build
@@ -0,0 +1,6 @@
+if get_option('with_contributing')
+
+install_data('contributing.plugin', install_dir: plugindir)
+install_subdir('contributing_plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/create-project/meson.build b/plugins/create-project/meson.build
new file mode 100644
index 0000000..07132b7
--- /dev/null
+++ b/plugins/create-project/meson.build
@@ -0,0 +1,30 @@
+if get_option('with_create_project')
+
+create_project_resources = gnome.compile_resources(
+ 'gbp-create-project-resources',
+ 'gbp-create-project.gresource.xml',
+ c_name: 'gbp_create_project',
+)
+
+create_project_sources = [
+ 'gbp-create-project-genesis-addin.c',
+ 'gbp-create-project-genesis-addin.h',
+ 'gbp-create-project-plugin.c',
+ 'gbp-create-project-template-icon.c',
+ 'gbp-create-project-template-icon.h',
+ 'gbp-create-project-tool.c',
+ 'gbp-create-project-tool.h',
+ 'gbp-create-project-widget.c',
+ 'gbp-create-project-widget.h',
+ create_project_resources[0],
+]
+
+shared_library('create-project-plugin', create_project_sources,
+ dependencies: plugin_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('create-project.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/ctags/meson.build b/plugins/ctags/meson.build
new file mode 100644
index 0000000..91f8a2f
--- /dev/null
+++ b/plugins/ctags/meson.build
@@ -0,0 +1,32 @@
+if get_option('with_ctags')
+
+ctags_sources = [
+ 'ide-ctags-builder.c',
+ 'ide-ctags-builder.h',
+ 'ide-ctags-completion-item.c',
+ 'ide-ctags-completion-item.h',
+ 'ide-ctags-completion-provider.c',
+ 'ide-ctags-completion-provider.h',
+ 'ide-ctags-completion-provider-private.h',
+ 'ide-ctags-highlighter.c',
+ 'ide-ctags-highlighter.h',
+ 'ide-ctags-index.c',
+ 'ide-ctags-index.h',
+ 'ide-ctags-service.c',
+ 'ide-ctags-service.h',
+ 'ide-ctags-symbol-resolver.c',
+ 'ide-ctags-symbol-resolver.h',
+ 'ide-ctags-util.c',
+ 'ide-ctags-util.h',
+ 'ctags-plugin.c',
+]
+
+shared_library('ctags-plugin', ctags_sources,
+ dependencies: plugin_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('ctags.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/devhelp/meson.build b/plugins/devhelp/meson.build
new file mode 100644
index 0000000..e760990
--- /dev/null
+++ b/plugins/devhelp/meson.build
@@ -0,0 +1,34 @@
+if get_option('with_devhelp')
+
+devhelp_resources = gnome.compile_resources(
+ 'gbp-devhelp-resources',
+ 'gbp-devhelp-resources.gresource.xml',
+ c_name: 'gbp_devhelp',
+)
+
+devhelp_sources = [
+ 'gbp-devhelp-editor-view-addin.c',
+ 'gbp-devhelp-editor-view-addin.h',
+ 'gbp-devhelp-panel.c',
+ 'gbp-devhelp-panel.h',
+ 'gbp-devhelp-plugin.c',
+ 'gbp-devhelp-view.c',
+ 'gbp-devhelp-view.h',
+ 'gbp-devhelp-workbench-addin.c',
+ 'gbp-devhelp-workbench-addin.h',
+ devhelp_resources[0],
+]
+
+devhelp_deps = plugin_deps + [
+ dependency('libdevhelp-3.0', version: '>=3.20.0'),
+]
+
+shared_library('devhelp-plugin', devhelp_sources,
+ dependencies: devhelp_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('devhelp.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/file-search/meson.build b/plugins/file-search/meson.build
new file mode 100644
index 0000000..294478b
--- /dev/null
+++ b/plugins/file-search/meson.build
@@ -0,0 +1,24 @@
+if get_option('with_file_search')
+
+file_search_sources = [
+ 'gb-file-search-provider.c',
+ 'gb-file-search-provider.h',
+ 'gb-file-search-result.c',
+ 'gb-file-search-result.h',
+ 'gb-file-search-index.c',
+ 'gb-file-search-index.h',
+]
+
+file_search_deps = plugin_deps + [
+ libsearch_dep,
+]
+
+shared_library('file-search', file_search_sources,
+ dependencies: file_search_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('file-search.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/flatpak/meson.build b/plugins/flatpak/meson.build
new file mode 100644
index 0000000..fe9f70c
--- /dev/null
+++ b/plugins/flatpak/meson.build
@@ -0,0 +1,23 @@
+if get_option('with_flatpak')
+
+flatpak_sources = [
+ 'gbp-flatpak-runtime-provider.c',
+ 'gbp-flatpak-runtime-provider.h',
+ 'gbp-flatpak-runtime.c',
+ 'gbp-flatpak-runtime.h',
+ 'gbp-flatpak-plugin.c',
+]
+
+flatpak_deps = plugin_deps + [
+ dependency('flatpak', version: '>=0.6.0'),
+]
+
+shared_library('flatpak-plugin', flatpak_sources,
+ dependencies: flatpak_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('flatpak.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/fpaste/meson.build b/plugins/fpaste/meson.build
new file mode 100644
index 0000000..6d9a3be
--- /dev/null
+++ b/plugins/fpaste/meson.build
@@ -0,0 +1,10 @@
+if get_option('with_fpaste')
+
+fpaste_datadir = join_paths(plugindatadir, 'fpaste_plugin')
+fpaste_dir = join_paths(plugindir, 'fpaste_plugin')
+
+install_data('fpaste.plugin', install_dir: plugindir)
+install_data('fpaste_plugin/__init__.py', install_dir: fpaste_dir)
+install_subdir('fpaste_plugin/gtk', install_dir: fpaste_datadir)
+
+endif
diff --git a/plugins/gcc/meson.build b/plugins/gcc/meson.build
new file mode 100644
index 0000000..da55783
--- /dev/null
+++ b/plugins/gcc/meson.build
@@ -0,0 +1,17 @@
+if get_option('with_gcc')
+
+gcc_sources = [
+ 'gbp-gcc-build-result-addin.c',
+ 'gbp-gcc-build-result-addin.h',
+ 'gbp-gcc-plugin.c',
+]
+
+shared_library('gcc-plugin', gcc_sources,
+ dependencies: plugin_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('gcc.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/gettext/meson.build b/plugins/gettext/meson.build
new file mode 100644
index 0000000..18924c2
--- /dev/null
+++ b/plugins/gettext/meson.build
@@ -0,0 +1,17 @@
+if get_option('with_gettext')
+
+gettext_sources = [
+ 'ide-gettext-diagnostic-provider.c',
+ 'ide-gettext-diagnostic-provider.h',
+ 'gettext-plugin.c',
+]
+
+shared_library('gettext-plugin', gettext_sources,
+ dependencies: plugin_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('gettext.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/git/meson.build b/plugins/git/meson.build
new file mode 100644
index 0000000..f056c06
--- /dev/null
+++ b/plugins/git/meson.build
@@ -0,0 +1,76 @@
+if get_option('with_git')
+
+libgit_dep = dependency('libgit2-glib-1.0', version: '>=0.24.0')
+cc = meson.get_compiler('c')
+
+libgit_thread_safe_check = '
+ #include <libgit2-glib/ggit.h>
+ int
+ main(int argc, const char *argv[])
+ {
+ ggit_init ();
+ return ((ggit_get_features() & GGIT_FEATURE_THREADS) != 0) ? 0 : 1;
+ }
+'
+res = cc.run(libgit_thread_safe_check,
+ dependencies: libgit_dep,
+)
+if res.returncode() != 0
+ error('libgit2 was not compiled with -DTHREADSAFE:BOOL=ON')
+endif
+
+libgit_ssh_check = '
+ #include <libgit2-glib/ggit.h>
+ int
+ main(int argc, const char *argv[])
+ {
+ ggit_init ();
+ return ((ggit_get_features() & GGIT_FEATURE_SSH) != 0) ? 0 : 1;
+ }
+'
+
+res = cc.run(libgit_ssh_check,
+ dependencies: libgit_dep,
+)
+if res.returncode() != 0
+ error('libgit2 was not compiled with SSH support')
+endif
+
+git_resources = gnome.compile_resources(
+ 'ide-git-resources',
+ 'ide-git-resources.gresource.xml',
+ c_name: 'ide_git',
+)
+
+git_sources = [
+ 'ide-git-buffer-change-monitor.c',
+ 'ide-git-buffer-change-monitor.h',
+ 'ide-git-clone-widget.c',
+ 'ide-git-clone-widget.h',
+ 'ide-git-genesis-addin.c',
+ 'ide-git-genesis-addin.h',
+ 'ide-git-plugin.c',
+ 'ide-git-remote-callbacks.c',
+ 'ide-git-remote-callbacks.h',
+ 'ide-git-vcs.c',
+ 'ide-git-vcs.h',
+ 'ide-git-vcs-config.c',
+ 'ide-git-vcs-config.h',
+ 'ide-git-vcs-initializer.c',
+ 'ide-git-vcs-initializer.h',
+ git_resources[0],
+]
+
+git_deps = plugin_deps + [
+ libgit_dep,
+]
+
+shared_library('git-plugin', git_sources,
+ dependencies: git_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('git.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/gnome-code-assistance/meson.build b/plugins/gnome-code-assistance/meson.build
new file mode 100644
index 0000000..bc051a6
--- /dev/null
+++ b/plugins/gnome-code-assistance/meson.build
@@ -0,0 +1,30 @@
+if get_option('with_gnome_code_assistance')
+
+gnome_code_assistance_sources = [
+ 'gca-diagnostics.c',
+ 'gca-diagnostics.h',
+ 'gca-service.c',
+ 'gca-service.h',
+ 'gca-structs.c',
+ 'gca-structs.h',
+ 'gca-plugin.c',
+ 'ide-gca-diagnostic-provider.c',
+ 'ide-gca-diagnostic-provider.h',
+ 'ide-gca-preferences-addin.c',
+ 'ide-gca-preferences-addin.h',
+ 'ide-gca-service.c',
+ 'ide-gca-service.h',
+]
+
+shared_library('gnome-code-assistance-plugin', gnome_code_assistance_sources,
+ dependencies: plugin_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('gnome-code-assistance.plugin', install_dir: plugindir)
+
+install_data('org.gnome.builder.gnome-code-assistance.gschema.xml',
+ install_dir: schema_dir)
+
+endif
diff --git a/plugins/hello-cpp/meson.build b/plugins/hello-cpp/meson.build
new file mode 100644
index 0000000..f74fd21
--- /dev/null
+++ b/plugins/hello-cpp/meson.build
@@ -0,0 +1,19 @@
+if get_option('with_hello_cpp')
+
+add_languages('cpp')
+
+hello_cpp_sources = [
+ 'hellocppapplicationaddin.cc',
+ 'hellocppapplicationaddin.h',
+ 'hellocppplugin.cc',
+]
+
+shared_library('hello-cpp-plugin', hello_cpp_sources,
+ dependencies: plugin_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('hello-cpp.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/html-completion/meson.build b/plugins/html-completion/meson.build
new file mode 100644
index 0000000..8f05e23
--- /dev/null
+++ b/plugins/html-completion/meson.build
@@ -0,0 +1,20 @@
+if get_option('with_html_completion')
+
+html_completion_sources = [
+ 'ide-html-completion-provider.c',
+ 'ide-html-completion-provider.h',
+]
+
+html_completion_deps = plugin_deps + [
+ libsearch_dep,
+]
+
+shared_library('html-completion-plugin', html_completion_sources,
+ dependencies: html_completion_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('html-completion.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/html-preview/meson.build b/plugins/html-preview/meson.build
new file mode 100644
index 0000000..b3444c3
--- /dev/null
+++ b/plugins/html-preview/meson.build
@@ -0,0 +1,15 @@
+if get_option('with_html_preview')
+
+html_preview_datadir = join_paths(plugindatadir, 'html_preview_plugin')
+html_preview_dir = join_paths(plugindir, 'html_preview_plugin')
+
+install_data('html-preview.plugin', install_dir: plugindir)
+install_data('html_preview_plugin/__init__.py', install_dir: html_preview_dir)
+install_data([
+ 'html_preview_plugin/markdown-view.js',
+ 'html_preview_plugin/markdown.css',
+ 'html_preview_plugin/marked.js',
+], install_dir: html_preview_datadir)
+install_subdir('html_preview_plugin/gtk', install_dir: html_preview_datadir)
+
+endif
diff --git a/plugins/jedi/meson.build b/plugins/jedi/meson.build
new file mode 100644
index 0000000..6729699
--- /dev/null
+++ b/plugins/jedi/meson.build
@@ -0,0 +1,5 @@
+if get_option('with_jedi')
+
+install_data(['jedi.plugin', 'jedi_plugin.py'], install_dir: plugindir)
+
+endif
diff --git a/plugins/jhbuild/meson.build b/plugins/jhbuild/meson.build
new file mode 100644
index 0000000..400e3e0
--- /dev/null
+++ b/plugins/jhbuild/meson.build
@@ -0,0 +1,5 @@
+if get_option('with_jhbuild')
+
+install_data(['jhbuild.plugin', 'jhbuild_plugin.py'], install_dir: plugindir)
+
+endif
diff --git a/plugins/meson.build b/plugins/meson.build
new file mode 100644
index 0000000..6e33cdb
--- /dev/null
+++ b/plugins/meson.build
@@ -0,0 +1,44 @@
+plugindir = join_paths(get_option('libdir'), 'gnome-builder/plugins')
+plugindatadir = join_paths(get_option('datadir'), 'gnome-builder/plugins')
+plugin_deps = [
+ libpeas_dep,
+ libide_dep,
+]
+
+subdir('autotools')
+subdir('autotools-templates')
+subdir('build-tools')
+subdir('c-pack')
+subdir('clang')
+subdir('color-picker')
+subdir('command-bar')
+subdir('comment-code')
+subdir('contributing')
+subdir('create-project')
+subdir('ctags')
+subdir('devhelp')
+subdir('file-search')
+subdir('flatpak')
+subdir('fpaste')
+subdir('gcc')
+subdir('gettext')
+subdir('git')
+subdir('gnome-code-assistance')
+#subdir('hello-cpp') # needs libidemm (impossible)
+subdir('html-completion')
+subdir('html-preview')
+subdir('jedi')
+subdir('jhbuild')
+subdir('mingw')
+subdir('project-tree')
+subdir('python-gi-imports-completion')
+subdir('python-pack')
+subdir('quick-highlight')
+subdir('support')
+subdir('symbol-tree')
+subdir('sysmon')
+subdir('sysprof')
+subdir('terminal')
+subdir('todo')
+#subdir('vala-pack') # needs vapi files (trivial)
+subdir('xml-pack')
diff --git a/plugins/mingw/meson.build b/plugins/mingw/meson.build
new file mode 100644
index 0000000..3096650
--- /dev/null
+++ b/plugins/mingw/meson.build
@@ -0,0 +1,19 @@
+if get_option('with_mingw')
+
+mingw_sources = [
+ 'mingw-plugin.c',
+ 'ide-mingw-device.c',
+ 'ide-mingw-device.h',
+ 'ide-mingw-device-provider.c',
+ 'ide-mingw-device-provider.h',
+]
+
+shared_library('mingw-plugin', mingw_sources,
+ dependencies: plugin_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('mingw.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/project-tree/meson.build b/plugins/project-tree/meson.build
new file mode 100644
index 0000000..cbd75fc
--- /dev/null
+++ b/plugins/project-tree/meson.build
@@ -0,0 +1,51 @@
+if get_option('with_project_tree')
+
+project_tree_resources = gnome.compile_resources(
+ 'gb-project-tree-resources',
+ 'gb-project-tree.gresource.xml',
+ c_name: 'gb_project_tree',
+)
+
+project_tree_sources = [
+ project_tree_resources[0],
+ project_tree_resources[1],
+ 'gb-new-file-popover.c',
+ 'gb-new-file-popover.h',
+ 'gb-project-file.c',
+ 'gb-project-file.h',
+ 'gb-project-tree-actions.c',
+ 'gb-project-tree-actions.h',
+ 'gb-project-tree-builder.c',
+ 'gb-project-tree-builder.h',
+ 'gb-project-tree.c',
+ 'gb-project-tree.h',
+ 'gb-project-tree-editor-addin.c',
+ 'gb-project-tree-editor-addin.h',
+ 'gb-project-tree-private.h',
+ 'gb-rename-file-popover.c',
+ 'gb-rename-file-popover.h',
+ 'gb-project-tree-addin.c',
+ 'gb-project-tree-addin.h',
+ 'project-tree-plugin.c',
+]
+
+project_tree_deps = plugin_deps
+project_tree_cflags = []
+
+if get_option('with_terminal')
+
+project_tree_deps += dependency('vte-2.91', version: '>=0.40.2')
+project_tree_cflags += '-DHAVE_VTE'
+
+endif
+
+shared_library('project-tree-plugin', project_tree_sources,
+ dependencies: project_tree_deps,
+ c_args: project_tree_cflags,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('project-tree.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/python-gi-imports-completion/meson.build
b/plugins/python-gi-imports-completion/meson.build
new file mode 100644
index 0000000..25b7e08
--- /dev/null
+++ b/plugins/python-gi-imports-completion/meson.build
@@ -0,0 +1,8 @@
+if get_option('with_python_gi_imports_completion')
+
+install_data([
+ 'python-gi-imports-completion.plugin',
+ 'python_gi_imports_completion.py'
+], install_dir: plugindir)
+
+endif
diff --git a/plugins/python-pack/meson.build b/plugins/python-pack/meson.build
new file mode 100644
index 0000000..35716cc
--- /dev/null
+++ b/plugins/python-pack/meson.build
@@ -0,0 +1,19 @@
+if get_option('with_python_pack')
+
+python_pack_sources = [
+ 'ide-python-indenter.c',
+ 'ide-python-indenter.h',
+ 'ide-python-format-provider.c',
+ 'ide-python-format-provider.h',
+ 'python-pack-plugin.c',
+]
+
+shared_library('python-pack-plugin', python_pack_sources,
+ dependencies: plugin_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('python-pack.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/quick-highlight/meson.build b/plugins/quick-highlight/meson.build
new file mode 100644
index 0000000..736291a
--- /dev/null
+++ b/plugins/quick-highlight/meson.build
@@ -0,0 +1,19 @@
+if get_option('with_quick_highlight')
+
+quick_highlight_sources = [
+ 'gbp-quick-highlight-plugin.c',
+ 'gbp-quick-highlight-view-addin.c',
+ 'gbp-quick-highlight-view-addin.h',
+ 'gbp-quick-highlight-preferences.c',
+ 'gbp-quick-highlight-preferences.h',
+]
+
+shared_library('quick-highlight-plugin', quick_highlight_sources,
+ dependencies: plugin_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('quick-highlight.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/support/meson.build b/plugins/support/meson.build
new file mode 100644
index 0000000..b587759
--- /dev/null
+++ b/plugins/support/meson.build
@@ -0,0 +1,26 @@
+if get_option('with_support')
+
+support_resources = gnome.compile_resources(
+ 'ide-support-resources',
+ 'ide-support-resources.gresource.xml',
+ c_name: 'ide_support',
+)
+
+support_sources = [
+ 'ide-support-application-addin.c',
+ 'ide-support-application-addin.h',
+ 'ide-support.c',
+ 'ide-support.h',
+ 'ide-support-plugin.c',
+ support_resources[0],
+]
+
+shared_library('support-plugin', support_sources,
+ dependencies: plugin_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('support.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/symbol-tree/meson.build b/plugins/symbol-tree/meson.build
new file mode 100644
index 0000000..2a8f6de
--- /dev/null
+++ b/plugins/symbol-tree/meson.build
@@ -0,0 +1,28 @@
+if get_option('with_symbol_tree')
+
+symbol_tree_resources = gnome.compile_resources(
+ 'symbol-tree-resources',
+ 'symbol-tree.gresource.xml',
+ c_name: 'symbol_tree',
+)
+
+symbol_tree_sources = [
+ symbol_tree_resources[0],
+ symbol_tree_resources[1],
+ 'symbol-tree-builder.c',
+ 'symbol-tree-builder.h',
+ 'symbol-tree-panel.c',
+ 'symbol-tree-panel.h',
+ 'symbol-tree.c',
+ 'symbol-tree.h',
+]
+
+shared_library('symbol-tree', symbol_tree_sources,
+ dependencies: plugin_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('symbol-tree.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/sysmon/meson.build b/plugins/sysmon/meson.build
new file mode 100644
index 0000000..4e4ab4c
--- /dev/null
+++ b/plugins/sysmon/meson.build
@@ -0,0 +1,30 @@
+if get_option('with_sysmon')
+
+sysmon_resources = gnome.compile_resources(
+ 'gb-sysmon-resources',
+ 'gb-sysmon.gresource.xml',
+ c_name: 'gb_sysmon',
+)
+
+sysmon_sources = [
+ sysmon_resources[0],
+ sysmon_resources[1],
+ 'gb-sysmon-panel.c',
+ 'gb-sysmon-panel.h',
+ 'gb-sysmon-addin.c',
+ 'gb-sysmon-addin.h',
+]
+
+sysmon_deps = plugin_deps + [
+ librg_dep,
+]
+
+shared_library('sysmon-plugin', sysmon_sources,
+ dependencies: sysmon_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('sysmon.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/sysprof/meson.build b/plugins/sysprof/meson.build
new file mode 100644
index 0000000..9f78dc6
--- /dev/null
+++ b/plugins/sysprof/meson.build
@@ -0,0 +1,31 @@
+if get_option('with_sysprof')
+
+sysprof_resources = gnome.compile_resources(
+ 'gbp-sysprof-resources',
+ 'sysprof.gresource.xml',
+ c_name: 'gbp_sysprof',
+)
+
+sysprof_sources = [
+ sysprof_resources[0],
+ sysprof_resources[1],
+ 'gbp-sysprof-plugin.c',
+ 'gbp-sysprof-perspective.c',
+ 'gbp-sysprof-perspective.h',
+ 'gbp-sysprof-workbench-addin.c',
+ 'gbp-sysprof-workbench-addin.h',
+]
+
+sysprof_deps = plugin_deps + [
+ dependency('sysprof-ui-2', version: '>=3.21.90'),
+]
+
+shared_library('sysprof-plugin', sysprof_sources,
+ dependencies: sysprof_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('sysprof.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/terminal/meson.build b/plugins/terminal/meson.build
new file mode 100644
index 0000000..0172b88
--- /dev/null
+++ b/plugins/terminal/meson.build
@@ -0,0 +1,39 @@
+if get_option('with_terminal')
+
+terminal_resources = gnome.compile_resources(
+ 'gb-terminal-resources',
+ 'gb-terminal.gresource.xml',
+ c_name: 'gb_terminal',
+)
+
+terminal_sources = [
+ terminal_resources[0],
+ terminal_resources[1],
+ 'gb-terminal.c',
+ 'gb-terminal.h',
+ 'gb-terminal-application-addin.c',
+ 'gb-terminal-application-addin.h',
+ 'gb-terminal-plugin.c',
+ 'gb-terminal-private.h',
+ 'gb-terminal-view.c',
+ 'gb-terminal-view.h',
+ 'gb-terminal-view-private.h',
+ 'gb-terminal-view-actions.c',
+ 'gb-terminal-view-actions.h',
+ 'gb-terminal-workbench-addin.c',
+ 'gb-terminal-workbench-addin.h',
+]
+
+terminal_deps = plugin_deps + [
+ dependency('vte-2.91', version: '>=0.40.2'),
+]
+
+shared_library('terminal', terminal_sources,
+ dependencies: terminal_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('terminal.plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/todo/meson.build b/plugins/todo/meson.build
new file mode 100644
index 0000000..5e3ae89
--- /dev/null
+++ b/plugins/todo/meson.build
@@ -0,0 +1,6 @@
+if get_option('with_todo')
+
+install_data('todo.plugin', install_dir: plugindir)
+install_subdir('todo_plugin', install_dir: plugindir)
+
+endif
diff --git a/plugins/xml-pack/meson.build b/plugins/xml-pack/meson.build
new file mode 100644
index 0000000..38c2054
--- /dev/null
+++ b/plugins/xml-pack/meson.build
@@ -0,0 +1,21 @@
+if get_option('with_xml_pack')
+
+xml_pack_sources = [
+ 'ide-xml-highlighter.c',
+ 'ide-xml-highlighter.h',
+ 'ide-xml-indenter.c',
+ 'ide-xml-indenter.h',
+ 'ide-xml.c',
+ 'ide-xml.h',
+ 'xml-pack-plugin.c',
+]
+
+shared_library('xml-pack-plugin', xml_pack_sources,
+ dependencies: plugin_deps,
+ install: true,
+ install_dir: plugindir,
+)
+
+install_data('xml-pack.plugin', install_dir: plugindir)
+
+endif
diff --git a/po/meson.build b/po/meson.build
new file mode 100644
index 0000000..e546924
--- /dev/null
+++ b/po/meson.build
@@ -0,0 +1,48 @@
+i18n = import('i18n')
+
+langs = [
+ 'bs',
+ 'ca',
+ 'cs',
+ 'da',
+ 'de',
+ 'el',
+ 'en_GB',
+ 'eo',
+ 'es',
+ 'fr',
+ 'gl',
+ 'he',
+ 'hu',
+ 'id',
+ 'it',
+ 'kk',
+ 'ko',
+ 'lt',
+ 'lv',
+ 'nb',
+ 'nl',
+ 'oc',
+ 'pl',
+ 'pt',
+ 'pt_BR',
+ 'sk',
+ 'sl',
+ 'sr',
+ 'sr@latin',
+ 'sv',
+ 'tr',
+ 'uk',
+ 'zh_TW',
+]
+
+i18n.gettext('gnome-builder',
+ languages: langs,
+ args: [
+ '--from-code=UTF-8',
+ '--keyword=g_dngettext:2,3',
+ '--add-comments',
+
'--msgid-bugs-address=https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-builder&keywords=I18N+L10N&component=general',
+ ],
+ data_dirs: [join_paths(meson.source_root(), 'contrib/gstyle/data')],
+)
diff --git a/tests/meson.build b/tests/meson.build
new file mode 100644
index 0000000..5e89bf4
--- /dev/null
+++ b/tests/meson.build
@@ -0,0 +1,227 @@
+ide_test_env = [
+
'GI_TYPELIB_PATH="@0@/libide:@0@/contrib/tmpl:@0@/contrib/egg:@0@/contrib/pnl:$(GI_TYPELIB_PATH)"'.format(meson.build_root()),
+ 'GB_IN_TREE_PLUGINS=1',
+ 'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
+ 'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir()),
+ 'G_DEBUG=gc-friendly',
+ 'GSETTINGS_BACKEND=memory',
+ 'PYTHONDONTWRITEBYTECODE=yes',
+ 'MALLOC_CHECK_=2',
+# 'MALLOC_PERTURB_=$((${RANDOM:-256} % 256))',
+]
+ide_test_cflags = [
+ '-DTEST_DATA_DIR="@0@/data"'.format(meson.current_source_dir()),
+]
+
+ide_context = executable('test-ide-context',
+ 'test-ide-context.c',
+ c_args: ide_test_cflags,
+ dependencies: libide_dep,
+)
+test('test-ide-context', ide_context,
+ env: ide_test_env,
+)
+
+
+ide_back_forward_list = executable('test-ide-back-forward-list',
+ 'test-ide-back-forward-list.c',
+ c_args: ide_test_cflags,
+ dependencies: libide_dep,
+)
+test('test-ide-back-forward-list', ide_back_forward_list,
+ env: ide_test_env,
+)
+
+
+ide_buffer_manager = executable('test-ide-buffer-manager',
+ 'test-ide-buffer-manager.c',
+ c_args: ide_test_cflags,
+ dependencies: libide_dep,
+)
+test('test-ide-buffer-manager', ide_buffer_manager,
+ env: ide_test_env,
+)
+
+
+ide_buffer = executable('test-ide-buffer',
+ 'test-ide-buffer.c',
+ c_args: ide_test_cflags,
+ dependencies: libide_dep,
+)
+test('test-ide-buffer', ide_buffer,
+ env: ide_test_env,
+)
+
+
+ide_doap = executable('test-ide-doap',
+ 'test-ide-doap.c',
+ c_args: ide_test_cflags,
+ dependencies: libide_dep,
+)
+test('test-ide-doap', ide_doap,
+ env: ide_test_env,
+)
+
+
+ide_file_settings = executable('test-ide-file-settings',
+ 'test-ide-file-settings.c',
+ c_args: ide_test_cflags,
+ dependencies: libide_dep,
+)
+test('test-ide-file-settings', ide_file_settings,
+ env: ide_test_env,
+)
+
+
+ide_indenter = executable('test-ide-indenter',
+ 'test-ide-indenter.c',
+ c_args: ide_test_cflags,
+ dependencies: [
+ libide_dep,
+ libpeas_dep,
+ ],
+)
+test('test-ide-indenter', ide_indenter,
+ env: ide_test_env,
+)
+
+
+ide_vcs_uri = executable('test-ide-vcs-uri',
+ 'test-ide-vcs-uri.c',
+ c_args: ide_test_cflags,
+ dependencies: libide_dep,
+)
+test('test-ide-vcs-uri', ide_vcs_uri,
+ env: ide_test_env,
+)
+
+
+ide_uri = executable('test-ide-uri',
+ 'test-ide-uri.c',
+ c_args: ide_test_cflags,
+ dependencies: libide_dep,
+)
+test('test-ide-uri', ide_uri,
+ env: ide_test_env,
+)
+
+
+test_vim = executable('test-vim',
+ 'test-vim.c',
+ c_args: ide_test_cflags,
+ dependencies: libide_dep,
+)
+test('test-vim', test_vim,
+ env: ide_test_env,
+)
+
+
+test_cpu_graph = executable('test-cpu-graph',
+ 'test-cpu-graph.c',
+ c_args: ide_test_cflags,
+ dependencies: [libide_dep, librg_dep],
+)
+#test('test-cpu-graph', test_cpu_graph,
+# env: ide_test_env,
+#)
+
+
+test_fuzzy = executable('test-fuzzy',
+ 'test-fuzzy.c',
+ c_args: ide_test_cflags,
+ dependencies: [libide_dep, libsearch_dep],
+)
+#test('test-fuzzy', test_fuzzy,
+# env: ide_test_env,
+#)
+
+
+test_egg_slider = executable('test-egg-slider',
+ 'test-egg-slider.c',
+ c_args: ide_test_cflags,
+ dependencies: libegg_dep,
+)
+#test('test-egg-slider', test_egg_slider,
+# env: ide_test_env,
+#)
+
+
+test_snippet_parser = executable('test-snippet-parser',
+ 'test-snippet-parser.c',
+ c_args: ide_test_cflags,
+ dependencies: libide_dep,
+)
+#test('test-snippet-parser', test_snippet_parser,
+# env: ide_test_env,
+#)
+
+
+test_egg_binding_group = executable('test-egg-binding-group',
+ 'test-egg-binding-group.c',
+ c_args: ide_test_cflags,
+ dependencies: libegg_dep,
+)
+test('test-egg-binding-group', test_egg_binding_group,
+ env: ide_test_env,
+)
+
+
+test_egg_menu_manager = executable('test-egg-menu-manager',
+ 'test-egg-menu-manager.c',
+ c_args: ide_test_cflags,
+ dependencies: libegg_dep,
+)
+#test('test-egg-menu-manager', test_egg_menu_manager,
+# env: ide_test_env,
+#)
+
+
+test_egg_state_machine = executable('test-egg-state-machine',
+ 'test-egg-state-machine.c',
+ c_args: ide_test_cflags,
+ dependencies: libegg_dep,
+)
+test('test-egg-state-machine', test_egg_state_machine,
+ env: ide_test_env,
+)
+
+
+test_egg_radio_box = executable('test-egg-radio-box',
+ 'test-egg-radio-box.c',
+ c_args: ide_test_cflags,
+ dependencies: libegg_dep,
+)
+#test('test-egg-radio-box', test_egg_radio_box,
+# env: ide_test_env,
+#)
+
+
+test_egg_file_chooser_entry = executable('test-egg-file-chooser-entry',
+ 'test-egg-file-chooser-entry.c',
+ c_args: ide_test_cflags,
+ dependencies: libegg_dep,
+)
+#test('test-egg-file-chooser-entry', test_egg_file_chooser_entry,
+# env: ide_test_env,
+#)
+
+
+test_egg_cache = executable('test-egg-cache',
+ 'test-egg-cache.c',
+ c_args: ide_test_cflags,
+ dependencies: libegg_dep,
+)
+test('test-egg-cache', test_egg_cache,
+ env: ide_test_env,
+)
+
+
+test_egg_heap = executable('test-egg-heap',
+ 'test-egg-heap.c',
+ c_args: ide_test_cflags,
+ dependencies: libegg_dep,
+)
+test('test-egg-heap', test_egg_heap,
+ env: ide_test_env,
+)
+
diff --git a/tests/test-fuzzy.c b/tests/test-fuzzy.c
index 1e21884..e656264 100644
--- a/tests/test-fuzzy.c
+++ b/tests/test-fuzzy.c
@@ -1,5 +1,5 @@
#include <fuzzy.h>
-#include <ide-line-reader.h>
+#include <ide.h>
#include <stdlib.h>
#include <string.h>
diff --git a/tests/test-ide-buffer-manager.c b/tests/test-ide-buffer-manager.c
index 3a6d275..e202cfd 100644
--- a/tests/test-ide-buffer-manager.c
+++ b/tests/test-ide-buffer-manager.c
@@ -155,12 +155,12 @@ test_buffer_manager_basic (GCancellable *cancellable,
{
g_autoptr(GFile) project_file = NULL;
g_autofree gchar *path = NULL;
- const gchar *builddir = g_getenv ("G_TEST_BUILDDIR");
+ const gchar *srcdir = g_getenv ("G_TEST_SRCDIR");
g_autoptr(GTask) task = NULL;
task = g_task_new (NULL, cancellable, callback, user_data);
- path = g_build_filename (builddir, "data", "project1", "configure.ac", NULL);
+ path = g_build_filename (srcdir, "data", "project1", "configure.ac", NULL);
project_file = g_file_new_for_path (path);
ide_context_new_async (project_file,
diff --git a/tests/test-ide-context.c b/tests/test-ide-context.c
index dc25d41..080f0e1 100644
--- a/tests/test-ide-context.c
+++ b/tests/test-ide-context.c
@@ -55,13 +55,13 @@ test_new_async (GCancellable *cancellable,
{
g_autofree gchar *path = NULL;
g_autoptr(GFile) project_file = NULL;
- const gchar *builddir;
+ const gchar *srcdir;
GTask *task;
- builddir = g_getenv ("G_TEST_BUILDDIR");
+ srcdir = g_getenv ("G_TEST_SRCDIR");
task = g_task_new (NULL, cancellable, callback, user_data);
- path = g_build_filename (builddir, "data", "project1", "configure.ac", NULL);
+ path = g_build_filename (srcdir, "data", "project1", "configure.ac", NULL);
project_file = g_file_new_for_path (path);
ide_context_new_async (project_file,
diff --git a/tools/meson.build b/tools/meson.build
new file mode 100644
index 0000000..cc0fe34
--- /dev/null
+++ b/tools/meson.build
@@ -0,0 +1,6 @@
+ide_list_counters = executable('ide-list-counters',
+ 'ide-list-counters.c',
+ dependencies: libegg_dep,
+ install: true,
+ install_dir: join_paths(get_option('libexecdir'), 'gnome-builder'),
+)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]