summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--Makefile.am50
-rw-r--r--README4
-rw-r--r--meson.build46
-rw-r--r--skeletonmm/.gitignore34
-rw-r--r--skeletonmm/Makefile.am45
-rwxr-xr-xskeletonmm/autogen.sh7
-rw-r--r--skeletonmm/build/.gitignore13
-rw-r--r--skeletonmm/codegen/Makefile.am34
-rw-r--r--skeletonmm/codegen/m4/filelist.am3
-rw-r--r--skeletonmm/configure.ac77
-rw-r--r--skeletonmm/doc/Makefile.am27
-rw-r--r--skeletonmm/doc/reference/.gitignore5
-rw-r--r--skeletonmm/doc/reference/meson.build154
-rw-r--r--skeletonmm/examples/.gitignore1
-rw-r--r--skeletonmm/examples/Makefile.am29
-rw-r--r--skeletonmm/examples/example1/main.cc (renamed from skeletonmm/examples/example/example.cc)2
-rw-r--r--skeletonmm/examples/meson.build34
-rw-r--r--skeletonmm/meson.build195
-rw-r--r--skeletonmm/meson_options.txt10
-rw-r--r--skeletonmm/skeleton/.gitignore6
-rw-r--r--skeletonmm/skeleton/meson.build51
-rw-r--r--skeletonmm/skeleton/skeletonmm-uninstalled.pc.in2
-rw-r--r--skeletonmm/skeleton/skeletonmm.h2
-rw-r--r--skeletonmm/skeleton/skeletonmm.pc.in2
-rw-r--r--skeletonmm/skeleton/skeletonmm/Makefile.am31
-rw-r--r--skeletonmm/skeleton/skeletonmm/filelist.am8
-rw-r--r--skeletonmm/skeleton/skeletonmm/meson.build172
-rw-r--r--skeletonmm/skeleton/skeletonmm/private/.gitignore1
-rw-r--r--skeletonmm/skeleton/skeletonmm/wrap_init.h7
-rw-r--r--skeletonmm/skeleton/skeletonmmconfig.h.in17
-rw-r--r--skeletonmm/skeleton/src/Makefile.am23
-rw-r--r--skeletonmm/skeleton/src/filelist.am12
-rw-r--r--skeletonmm/skeleton/src/skeleton.ccg2
-rw-r--r--skeletonmm/skeleton/src/skeleton.defs8
-rw-r--r--skeletonmm/skeleton/src/skeleton.hg4
-rw-r--r--skeletonmm/skeleton/src/skeleton_enums.defs (renamed from skeletonmm/skeleton/src/skeleton_enum.defs)0
-rw-r--r--skeletonmm/skeleton/src/skeleton_methods.defs (renamed from skeletonmm/skeleton/src/skeleton_method.defs)0
-rw-r--r--skeletonmm/skeleton/src/skeleton_signals.defs (renamed from skeletonmm/skeleton/src/skeleton_signal.defs)0
-rw-r--r--skeletonmm/skeleton/src/skeleton_vfuncs.defs (renamed from skeletonmm/skeleton/src/skeleton_vfunc.defs)0
-rw-r--r--skeletonmm/skeletonmm.doap1
-rw-r--r--skeletonmm/tests/meson.build37
-rw-r--r--skeletonmm/tests/test1/main.cc30
-rw-r--r--skeletonmm/tests/test2/main.cc30
-rwxr-xr-xskeletonmm/tools/dist-cmd.py12
-rw-r--r--skeletonmm/tools/extra_defs_gen/generate_defs_skeleton.cc (renamed from skeletonmm/codegen/extradefs/generate_extra_defs_skeleton.cc)7
-rw-r--r--skeletonmm/tools/extra_defs_gen/meson.build26
-rwxr-xr-xskeletonmm/tools/generate_defs_and_docs.sh (renamed from skeletonmm/codegen/generate_defs_and_docs.sh)18
-rw-r--r--skeletonmm/tools/m4/convert.m4 (renamed from skeletonmm/codegen/m4/convert.m4)0
-rw-r--r--skeletonmm/tools/m4/convert_skeleton.m4 (renamed from skeletonmm/codegen/m4/convert_skeleton.m4)2
-rw-r--r--skeletonmm/untracked/README36
51 files changed, 884 insertions, 436 deletions
diff --git a/.gitignore b/.gitignore
index db9735e..c584e83 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,7 +3,6 @@
/Makefile.in
/aclocal.m4
/autom4te.cache/
-/config*.lineno
/config.log
/config.status
/configure
@@ -14,6 +13,8 @@
/doctags/libstdc++.tag
/doctags/mm-common*.pc
/macros/mm-common.m4
+/util/mm-common-get
+/util/mm-common-get.1
/util/mm-common-prepare
/util/mm-common-prepare.1
/util/mm-common*.pc
diff --git a/Makefile.am b/Makefile.am
index 1cd5df1..cbb7451 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -82,45 +82,41 @@ skeletonmm_data_files = \
skeletonmm/AUTHORS \
skeletonmm/COPYING \
skeletonmm/ChangeLog \
- skeletonmm/Makefile.am \
+ skeletonmm/meson.build \
+ skeletonmm/meson_options.txt \
skeletonmm/README \
- skeletonmm/configure.ac \
skeletonmm/skeletonmm.doap \
- skeletonmm/build/.gitignore \
- skeletonmm/codegen/Makefile.am \
- skeletonmm/codegen/extradefs/generate_extra_defs_skeleton.cc \
- skeletonmm/codegen/m4/convert.m4 \
- skeletonmm/codegen/m4/convert_skeleton.m4 \
- skeletonmm/codegen/m4/filelist.am \
- skeletonmm/doc/Makefile.am \
- skeletonmm/doc/reference/.gitignore \
- skeletonmm/doc/reference/Doxyfile.in \
- skeletonmm/examples/.gitignore \
- skeletonmm/examples/Makefile.am \
- skeletonmm/examples/example/example.cc \
- skeletonmm/skeleton/.gitignore \
- skeletonmm/skeleton/skeletonmm-uninstalled.pc.in \
+ skeletonmm/doc/reference/Doxyfile.in \
+ skeletonmm/doc/reference/meson.build \
+ skeletonmm/examples/meson.build \
+ skeletonmm/examples/example1/main.cc \
+ skeletonmm/skeleton/meson.build \
+ skeletonmm/skeleton/skeletonmm-uninstalled.pc.in \
skeletonmm/skeleton/skeletonmm.h \
skeletonmm/skeleton/skeletonmm.pc.in \
skeletonmm/skeleton/skeletonmmconfig.h.in \
- skeletonmm/skeleton/skeletonmm/Makefile.am \
- skeletonmm/skeleton/skeletonmm/filelist.am \
+ skeletonmm/skeleton/skeletonmm/meson.build \
skeletonmm/skeleton/skeletonmm/wrap_init.h \
- skeletonmm/skeleton/skeletonmm/private/.gitignore \
- skeletonmm/skeleton/src/Makefile.am \
- skeletonmm/skeleton/src/filelist.am \
skeletonmm/skeleton/src/skeleton.ccg \
skeletonmm/skeleton/src/skeleton.defs \
skeletonmm/skeleton/src/skeleton.hg \
skeletonmm/skeleton/src/skeleton_docs.xml \
- skeletonmm/skeleton/src/skeleton_enum.defs \
- skeletonmm/skeleton/src/skeleton_method.defs \
- skeletonmm/skeleton/src/skeleton_signal.defs \
- skeletonmm/skeleton/src/skeleton_vfunc.defs
+ skeletonmm/skeleton/src/skeleton_enums.defs \
+ skeletonmm/skeleton/src/skeleton_methods.defs \
+ skeletonmm/skeleton/src/skeleton_signals.defs \
+ skeletonmm/skeleton/src/skeleton_vfuncs.defs \
+ skeletonmm/tests/meson.build \
+ skeletonmm/tests/test1/main.cc \
+ skeletonmm/tests/test2/main.cc \
+ skeletonmm/tools/extra_defs_gen/generate_defs_skeleton.cc \
+ skeletonmm/tools/extra_defs_gen/meson.build \
+ skeletonmm/tools/m4/convert.m4 \
+ skeletonmm/tools/m4/convert_skeleton.m4 \
+ skeletonmm/untracked/README
skeletonmm_script_files = \
- skeletonmm/autogen.sh \
- skeletonmm/codegen/generate_defs_and_docs.sh
+ skeletonmm/tools/dist-cmd.py \
+ skeletonmm/tools/generate_defs_and_docs.sh
skeletonmm_files = $(skeletonmm_script_files) $(skeletonmm_data_files)
diff --git a/README b/README
index 3d7286b..d4bea2a 100644
--- a/README
+++ b/README
@@ -23,7 +23,7 @@ The files that mm-common installs and mm-common-get copies to other
modules are useful in modules that are built with Meson.
The files in the skeletonmm directory show the start of a project that will
-use Autotools.
+use Meson.
Skeleton C++ binding module
===========================
@@ -31,7 +31,7 @@ Skeleton C++ binding module
When creating a new C++ binding module based on mm-common, the easiest way
to get started is to copy the skeletonmm directory shipped with mm-common.
It contains the build support files required for a C++ binding module using
-Autotools, gmmproc and glibmm.
+Meson, gmmproc and glibmm.
In order to create a new binding project from the copied skeleton directory,
any files which have "skeleton" in the filename must be renamed. References
diff --git a/meson.build b/meson.build
index a14b535..d0eed8f 100644
--- a/meson.build
+++ b/meson.build
@@ -206,47 +206,43 @@ configure_file(
# Skeleton project.
skeletonmm_basefiles = [
- 'autogen.sh',
'.gitignore',
'AUTHORS',
'COPYING',
'ChangeLog',
- 'Makefile.am',
+ 'meson.build',
+ 'meson_options.txt',
'README',
- 'configure.ac',
'skeletonmm.doap',
- 'build/.gitignore',
- 'codegen/generate_defs_and_docs.sh',
- 'codegen/Makefile.am',
- 'codegen/extradefs/generate_extra_defs_skeleton.cc',
- 'codegen/m4/convert.m4',
- 'codegen/m4/convert_skeleton.m4',
- 'codegen/m4/filelist.am',
- 'doc/Makefile.am',
- 'doc/reference/.gitignore',
'doc/reference/Doxyfile.in',
- 'examples/.gitignore',
- 'examples/Makefile.am',
- 'examples/example/example.cc',
- 'skeleton/.gitignore',
+ 'doc/reference/meson.build',
+ 'examples/meson.build',
+ 'examples/example1/main.cc',
+ 'skeleton/meson.build',
'skeleton/skeletonmm-uninstalled.pc.in',
'skeleton/skeletonmm.h',
'skeleton/skeletonmm.pc.in',
'skeleton/skeletonmmconfig.h.in',
- 'skeleton/skeletonmm/Makefile.am',
- 'skeleton/skeletonmm/filelist.am',
+ 'skeleton/skeletonmm/meson.build',
'skeleton/skeletonmm/wrap_init.h',
- 'skeleton/skeletonmm/private/.gitignore',
- 'skeleton/src/Makefile.am',
- 'skeleton/src/filelist.am',
'skeleton/src/skeleton.ccg',
'skeleton/src/skeleton.defs',
'skeleton/src/skeleton.hg',
'skeleton/src/skeleton_docs.xml',
- 'skeleton/src/skeleton_enum.defs',
- 'skeleton/src/skeleton_method.defs',
- 'skeleton/src/skeleton_signal.defs',
- 'skeleton/src/skeleton_vfunc.defs',
+ 'skeleton/src/skeleton_enums.defs',
+ 'skeleton/src/skeleton_methods.defs',
+ 'skeleton/src/skeleton_signals.defs',
+ 'skeleton/src/skeleton_vfuncs.defs',
+ 'tests/meson.build',
+ 'tests/test1/main.cc',
+ 'tests/test2/main.cc',
+ 'tools/dist-cmd.py',
+ 'tools/generate_defs_and_docs.sh',
+ 'tools/extra_defs_gen/generate_defs_skeleton.cc',
+ 'tools/extra_defs_gen/meson.build',
+ 'tools/m4/convert.m4',
+ 'tools/m4/convert_skeleton.m4',
+ 'untracked/README',
]
skeletonmm_files = []
foreach file : skeletonmm_basefiles
diff --git a/skeletonmm/.gitignore b/skeletonmm/.gitignore
index 22d053d..564fbd3 100644
--- a/skeletonmm/.gitignore
+++ b/skeletonmm/.gitignore
@@ -1,31 +1,3 @@
-# wildcard patterns
-.deps/
-.dirstamp
-.libs/
-Makefile
-Makefile.in
-stamp-h?
-*.[ao]
-*.l[ao]
-
-# ./
-/INSTALL
-/aclocal.m4
-/autom4te.cache/
-/config*.lineno
-/config.log
-/config.status
-/configure
-/skeletonmm-*.tar.*
-/libtool
-
-# codegen/
-/codegen/extradefs/generate_extra_defs
-
-# doc/
-/doc/doc-install.pl
-/doc/doc-postprocess.pl
-/doc/doxygen.css
-/doc/doxygen-extra.css
-/doc/tagfile-to-devhelp2.xsl
-
+untracked/build_scripts/
+untracked/doc/
+untracked/skeleton/
diff --git a/skeletonmm/Makefile.am b/skeletonmm/Makefile.am
deleted file mode 100644
index 3da9e94..0000000
--- a/skeletonmm/Makefile.am
+++ /dev/null
@@ -1,45 +0,0 @@
-## Copyright (c) 2010 Joe Hacker <joe@example.com>
-##
-## This file is part of skeletonmm.
-##
-## skeletonmm is free software: you can redistribute it and/or modify it
-## under the terms of the GNU Lesser General Public License as published
-## by the Free Software Foundation, either version 2.1 of the License,
-## or (at your option) any later version.
-##
-## skeletonmm is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-## See the GNU Lesser General Public License for more details.
-##
-## You should have received a copy of the GNU Lesser General Public License
-## along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-ACLOCAL_AMFLAGS = -I build ${ACLOCAL_FLAGS}
-DISTCHECK_CONFIGURE_FLAGS = --enable-warnings=fatal
-
-if MAINTAINER_MODE
-src_subdirs = codegen skeleton/src
-else
-src_subdirs =
-endif
-if ENABLE_DOCUMENTATION
-doc_subdirs = doc
-else
-doc_subdirs =
-endif
-SUBDIRS = $(src_subdirs) skeleton/skeletonmm examples $(doc_subdirs)
-
-skeletonmm_includedir = $(includedir)/$(SKELETONMM_MODULE_NAME)
-skeletonmm_include_HEADERS = skeleton/skeletonmm.h
-
-skeletonmm_libincludedir = $(libdir)/$(SKELETONMM_MODULE_NAME)/include
-nodist_skeletonmm_libinclude_HEADERS = skeleton/skeletonmmconfig.h
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = skeleton/$(SKELETONMM_MODULE_NAME).pc
-
-dist_noinst_SCRIPTS = autogen.sh
-
-# Optional: auto-generate the ChangeLog file from the git log on make dist
-#include $(top_srcdir)/build/dist-changelog.am
diff --git a/skeletonmm/autogen.sh b/skeletonmm/autogen.sh
deleted file mode 100755
index 6686611..0000000
--- a/skeletonmm/autogen.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#! /bin/sh -e
-test -n "$srcdir" || srcdir=`dirname "$0"`
-test -n "$srcdir" || srcdir=.
-
-mm-common-prepare --copy --force "$srcdir"
-autoreconf --force --install --verbose "$srcdir"
-test -n "$NOCONFIGURE" || "$srcdir/configure" --enable-maintainer-mode "$@"
diff --git a/skeletonmm/build/.gitignore b/skeletonmm/build/.gitignore
deleted file mode 100644
index 0590391..0000000
--- a/skeletonmm/build/.gitignore
+++ /dev/null
@@ -1,13 +0,0 @@
-/compile
-/compile-binding.am
-/config.*
-/depcomp
-/dist-changelog.am
-/doc-reference.am
-/generate-binding.am
-/install-sh
-/libtool.m4
-/lt*.m4
-/ltmain.sh
-/missing
-/stamp-h?
diff --git a/skeletonmm/codegen/Makefile.am b/skeletonmm/codegen/Makefile.am
deleted file mode 100644
index c846d71..0000000
--- a/skeletonmm/codegen/Makefile.am
+++ /dev/null
@@ -1,34 +0,0 @@
-## Copyright (c) 2010 Joe Hacker <joe@example.com>
-##
-## This file is part of skeletonmm.
-##
-## skeletonmm is free software: you can redistribute it and/or modify it
-## under the terms of the GNU Lesser General Public License as published
-## by the Free Software Foundation, either version 2.1 of the License,
-## or (at your option) any later version.
-##
-## skeletonmm is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-## See the GNU Lesser General Public License for more details.
-##
-## You should have received a copy of the GNU Lesser General Public License
-## along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-AUTOMAKE_OPTIONS = subdir-objects
-
-include $(srcdir)/m4/filelist.am
-
-dist_noinst_DATA = $(addprefix m4/,$(files_codegen_m4))
-dist_noinst_SCRIPTS = generate_defs_and_docs.sh
-noinst_PROGRAMS = extradefs/generate_extra_defs
-
-extradefs_generate_extra_defs_SOURCES = extradefs/generate_extra_defs_skeleton.cc
-extradefs_generate_extra_defs_LDADD = $(SKELETONMM_LIBS) -lglibmm_generate_extra_defs-2.4
-
-AM_CPPFLAGS = -I$(top_builddir) $(GTHREAD_CFLAGS) $(SKELETONMM_CFLAGS)
-AM_CXXFLAGS = $(SKELETONMM_WXXFLAGS)
-
-# Instruct GNU make to delete the targets of a rule after it failed, in
-# order to avoid the complication of handling that situation manually.
-.DELETE_ON_ERROR:
diff --git a/skeletonmm/codegen/m4/filelist.am b/skeletonmm/codegen/m4/filelist.am
deleted file mode 100644
index 192f19f..0000000
--- a/skeletonmm/codegen/m4/filelist.am
+++ /dev/null
@@ -1,3 +0,0 @@
-## This file is part of skeletonmm.
-
-files_codegen_m4 = convert.m4 convert_skeleton.m4
diff --git a/skeletonmm/configure.ac b/skeletonmm/configure.ac
deleted file mode 100644
index 10a6aaa..0000000
--- a/skeletonmm/configure.ac
+++ /dev/null
@@ -1,77 +0,0 @@
-## Copyright (c) 2010 Joe Hacker <joe@example.com>
-##
-## This file is part of skeletonmm.
-##
-## skeletonmm is free software: you can redistribute it and/or modify it
-## under the terms of the GNU Lesser General Public License as published
-## by the Free Software Foundation, either version 2.1 of the License,
-## or (at your option) any later version.
-##
-## skeletonmm is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-## See the GNU Lesser General Public License for more details.
-##
-## You should have received a copy of the GNU Lesser General Public License
-## along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-AC_INIT([skeletonmm], [1.2.3], [https://bugzilla.gnome.org/enter_bug.cgi?product=skeletonmm],
- [skeletonmm], [http://www.gtkmm.org/])
-AC_PREREQ([2.59])
-
-AC_CONFIG_SRCDIR([skeleton/skeletonmm.h])
-AC_CONFIG_AUX_DIR([build])
-AC_CONFIG_MACRO_DIR([build])
-AC_CONFIG_HEADERS([build/config.h skeleton/skeletonmmconfig.h])
-
-AM_INIT_AUTOMAKE([1.9 -Wno-portability check-news dist-bzip2 no-define nostdinc tar-pax])
-# Support silent build rules.
-# Disable by either passing --disable-silent-rules to configure or passing V=1 to make.
-m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
-AM_MAINTAINER_MODE
-AC_ARG_VAR([ACLOCAL_FLAGS], [aclocal flags, e.g. -I <macro dir>])
-
-MM_PREREQ([0.9.10])
-MM_INIT_MODULE([skeletonmm-1.0])
-
-# Copy the mm-common .pl scripts into doc/, and use them from there,
-# so we can dist them to avoid a tarball-build dependency.
-MM_CONFIG_DOCTOOL_DIR([doc])
-
-# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
-AC_SUBST([SKELETONMM_SO_VERSION], [0:0:0])
-
-AC_PROG_CXX
-MM_AX_CXX_COMPILE_STDCXX([11], [noext], [mandatory])
-
-AC_DISABLE_STATIC
-AC_LIBTOOL_WIN32_DLL
-AC_PROG_LIBTOOL
-
-AC_SUBST([SKELETONMM_MODULES], ['skeleton-1.0 >= 1.2 glibmm-2.4 >= 2.16'])
-PKG_CHECK_MODULES([SKELETONMM], [$SKELETONMM_MODULES])
-
-MM_PKG_CONFIG_SUBST([GTHREAD_CFLAGS], [--cflags-only-other gthread-2.0])
-MM_PKG_CONFIG_SUBST([GMMPROC_DIR], [--variable=gmmprocdir glibmm-2.4])
-
-MM_ARG_ENABLE_DOCUMENTATION
-MM_ARG_WITH_TAGFILE_DOC([libstdc++.tag], [mm-common-libstdc++])
-MM_ARG_WITH_TAGFILE_DOC([libsigc++-2.0.tag], [sigc++-2.0])
-MM_ARG_WITH_TAGFILE_DOC([glibmm-2.4.tag], [glibmm-2.4])
-
-AC_LANG([C++])
-MM_ARG_ENABLE_WARNINGS([SKELETONMM_WXXFLAGS],
- [-Wall],
- [-pedantic -Wall -Wextra],
- [G SKELETON])
-
-AC_CONFIG_FILES([Makefile
- codegen/Makefile
- skeleton/${SKELETONMM_MODULE_NAME}.pc:skeleton/skeletonmm.pc.in
- skeleton/${SKELETONMM_MODULE_NAME}-uninstalled.pc:skeleton/skeletonmm-uninstalled.pc.in
- skeleton/src/Makefile
- skeleton/skeletonmm/Makefile
- examples/Makefile
- doc/Makefile
- doc/reference/Doxyfile])
-AC_OUTPUT
diff --git a/skeletonmm/doc/Makefile.am b/skeletonmm/doc/Makefile.am
deleted file mode 100644
index f271e13..0000000
--- a/skeletonmm/doc/Makefile.am
+++ /dev/null
@@ -1,27 +0,0 @@
-## Copyright (c) 2010 Joe Hacker <joe@example.com>
-##
-## This file is part of skeletonmm.
-##
-## skeletonmm is free software: you can redistribute it and/or modify it
-## under the terms of the GNU Lesser General Public License as published
-## by the Free Software Foundation, either version 2.1 of the License,
-## or (at your option) any later version.
-##
-## skeletonmm is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-## See the GNU Lesser General Public License for more details.
-##
-## You should have received a copy of the GNU Lesser General Public License
-## along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-include $(top_srcdir)/skeleton/src/filelist.am
-include $(top_srcdir)/skeleton/skeletonmm/filelist.am
-
-skeletonmm_files_h = $(files_built_h) $(filter-out wrap_init.h,$(files_extra_h))
-
-book_name = $(SKELETONMM_MODULE_NAME)
-doc_input = $(top_srcdir)/skeleton/skeletonmm.h $(addprefix\
- $(top_srcdir)/skeleton/skeletonmm/,$(skeletonmm_files_h))
-
-include $(top_srcdir)/build/doc-reference.am
diff --git a/skeletonmm/doc/reference/.gitignore b/skeletonmm/doc/reference/.gitignore
deleted file mode 100644
index 7387cef..0000000
--- a/skeletonmm/doc/reference/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-/Doxyfile
-/doxygen.log
-/skeletonmm-*.devhelp2
-/skeletonmm-*.tag
-/html/
diff --git a/skeletonmm/doc/reference/meson.build b/skeletonmm/doc/reference/meson.build
new file mode 100644
index 0000000..9611195
--- /dev/null
+++ b/skeletonmm/doc/reference/meson.build
@@ -0,0 +1,154 @@
+# doc/reference
+
+# Input: built_files_root, project_source_root, skeletonmm_pcname, perl,
+# hg_ccg_basenames, extra_h_files, built_file_targets, install_datadir,
+# dist_cmd, python3
+# Output: install_docdir, install_devhelpdir
+
+tag_file_modules = [
+ 'mm-common-libstdc++',
+ 'sigc++-2.0',
+ 'glibmm-2.4',
+]
+doxygen_tagfiles = ''
+docinstall_flags = []
+foreach module : tag_file_modules
+ depmod = dependency(module, required: false)
+ if depmod.found()
+ doxytagfile = depmod.get_pkgconfig_variable('doxytagfile')
+ htmlrefpub = depmod.get_pkgconfig_variable('htmlrefpub', default: '')
+ htmlrefdir = depmod.get_pkgconfig_variable('htmlrefdir', default: '')
+ if htmlrefpub == ''
+ htmlrefpub = htmlrefdir
+ elif htmlrefdir == ''
+ htmlrefdir = htmlrefpub
+ endif
+ doxygen_tagfiles += ' "' + doxytagfile + '=' + htmlrefpub + '"'
+ if not htmlrefdir.endswith('/')
+ htmlrefdir += '/'
+ endif
+ docinstall_flags += ['-l', doxytagfile.split('/')[-1] + '@' + htmlrefdir]
+ endif
+endforeach
+
+book_name = skeletonmm_pcname
+book_title = meson.project_name() + ' Reference Manual'
+
+# Configuration data for Doxyfile.
+doc_conf_data = configuration_data()
+doc_conf_data.set('configure_input',
+ 'doc/reference/Doxyfile. Generated from Doxyfile.in by meson.configure_file().')
+doc_conf_data.set('PACKAGE_NAME', meson.project_name())
+doc_conf_data.set('PACKAGE_VERSION', meson.project_version())
+doc_conf_data.set('abs_top_builddir', built_files_root)
+doc_conf_data.set('abs_top_srcdir', project_source_root)
+doc_conf_data.set('SKELETONMM_MODULE_NAME', book_name)
+doc_conf_data.set('DOXYGEN_TAGFILES', doxygen_tagfiles)
+doc_conf_data.set('PERL', perl.path())
+
+configure_file(
+ input: 'Doxyfile.in',
+ output: '@BASENAME@',
+ configuration: doc_conf_data,
+)
+
+# Installation directories relative to {prefix}.
+install_docdir = install_datadir / 'doc' / book_name
+install_reference_docdir = install_docdir / 'reference'
+install_devhelpdir = install_datadir / 'devhelp' / 'books' / book_name
+
+if not build_documentation
+ # Documentation shall not be built or installed.
+ # Return to the calling meson.build file.
+ subdir_done()
+endif
+
+# Built input .h files to Doxygen.
+built_h_files = []
+foreach file : hg_ccg_basenames
+ built_h_files += built_files_root / 'skeleton' / 'skeletonmm' / file + '.h'
+endforeach
+
+# Hand-coded input .h files to Doxygen.
+src_h_files = []
+foreach file : extra_h_files
+ if file != 'wrap_init.h'
+ src_h_files += project_source_root / 'skeleton' / 'skeletonmm' / file
+ endif
+endforeach
+src_h_files += project_source_root / 'skeleton' / 'skeletonmm.h'
+
+doctool_dir = project_source_root / 'untracked' / 'doc' # MMDOCTOOLDIR
+doctool_dist_dir = 'untracked' / 'doc' # Relative to MESON_DIST_ROOT
+
+if built_file_targets.length() > 0
+ # .h files have been generated from .hg files (maintainer mode).
+ tag_file = custom_target('html_and_tag',
+ input: src_h_files,
+ output: book_name + '.tag',
+ command: [
+ python3, doc_reference, 'doxygen',
+ doctool_dir,
+ '@OUTPUT@',
+ built_h_files,
+ '@INPUT@',
+ ],
+ build_by_default: build_documentation,
+ depends: built_file_targets,
+ install: true,
+ install_dir: install_reference_docdir,
+ )
+else
+ # All .h files are stored in the source tree (not maintainer mode).
+ tag_file = custom_target('html_and_tag',
+ input: src_h_files + built_h_files,
+ output: book_name + '.tag',
+ command: [
+ python3, doc_reference, 'doxygen',
+ doctool_dir,
+ '@OUTPUT@',
+ '@INPUT@',
+ ],
+ build_by_default: build_documentation,
+ install: true,
+ install_dir: install_reference_docdir,
+ )
+endif
+
+devhelp_file = custom_target('devhelp',
+ input: tag_file,
+ output: book_name + '.devhelp2',
+ command: [
+ python3, doc_reference, 'devhelp',
+ doctool_dir,
+ '@INPUT@',
+ '@OUTPUT@',
+ book_name,
+ book_title,
+ ],
+ build_by_default: build_documentation,
+)
+
+# Install Devhelp file and html files.
+meson.add_install_script(
+ python3.path(), doc_reference, 'install_doc',
+ doctool_dir,
+ devhelp_file.full_path(),
+ install_devhelpdir,
+ install_reference_docdir / 'html',
+ docinstall_flags
+)
+
+if not meson.is_subproject()
+ # Distribute built files and files copied by mm-common-prepare.
+ # (add_dist_script() is not allowed in a subproject)
+ meson.add_dist_script(
+ python3.path(), dist_cmd,
+ python3.path(), doc_reference, 'dist_doc',
+ doctool_dir,
+ doctool_dist_dir,
+ meson.current_build_dir(),
+ tag_file.full_path(),
+ devhelp_file.full_path(),
+ )
+endif
diff --git a/skeletonmm/examples/.gitignore b/skeletonmm/examples/.gitignore
deleted file mode 100644
index d4109ac..0000000
--- a/skeletonmm/examples/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/example/example
diff --git a/skeletonmm/examples/Makefile.am b/skeletonmm/examples/Makefile.am
deleted file mode 100644
index 43341d0..0000000
--- a/skeletonmm/examples/Makefile.am
+++ /dev/null
@@ -1,29 +0,0 @@
-## Copyright (c) 2010 Joe Hacker <joe@example.com>
-##
-## This file is part of skeletonmm.
-##
-## skeletonmm is free software: you can redistribute it and/or modify it
-## under the terms of the GNU Lesser General Public License as published
-## by the Free Software Foundation, either version 2.1 of the License,
-## or (at your option) any later version.
-##
-## skeletonmm is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-## See the GNU Lesser General Public License for more details.
-##
-## You should have received a copy of the GNU Lesser General Public License
-## along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-AUTOMAKE_OPTIONS = subdir-objects
-
-check_PROGRAMS = example/example
-
-local_includes = -I$(top_builddir)/skeleton $(if $(srcdir:.=),-I$(top_srcdir)/skeleton)
-local_libs = $(top_builddir)/skeleton/skeletonmm/libskeletonmm-$(SKELETONMM_API_VERSION).la
-
-AM_CPPFLAGS = -I$(top_builddir) $(local_includes) $(GTHREAD_CFLAGS) $(SKELETONMM_CFLAGS)
-AM_CXXFLAGS = $(SKELETONMM_WXXFLAGS)
-LDADD = $(SKELETONMM_LIBS) $(local_libs)
-
-example_example_SOURCES = example/example.cc
diff --git a/skeletonmm/examples/example/example.cc b/skeletonmm/examples/example1/main.cc
index 4e8dbb0..3507caf 100644
--- a/skeletonmm/examples/example/example.cc
+++ b/skeletonmm/examples/example1/main.cc
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010 Joe Hacker <joe@example.com>
+/* Copyright (c) 2019 Joe Hacker <joe@example.com>
*
* This file is part of skeletonmm.
*
diff --git a/skeletonmm/examples/meson.build b/skeletonmm/examples/meson.build
new file mode 100644
index 0000000..69e2f0a
--- /dev/null
+++ b/skeletonmm/examples/meson.build
@@ -0,0 +1,34 @@
+# examples
+
+# input: gnome, skeletonmm_dep, build_examples
+
+examples = [
+# [[dir-name], exe-name, [sources]]
+ [['example1'], 'example', ['main.cc']],
+]
+
+foreach ex : examples
+ dir = ''
+ foreach dir_part : ex[0]
+ dir = dir / dir_part
+ endforeach
+ ex_name = (dir / ex[1]).underscorify()
+ ex_sources = []
+ resources = []
+ foreach src : ex[2]
+ if src.endswith('.gresource.xml')
+ resources = gnome.compile_resources(dir.underscorify() + '_resources',
+ dir / src,
+ source_dir: dir
+ )
+ else
+ ex_sources += dir / src
+ endif
+ endforeach
+
+ exe_file = executable(ex_name, ex_sources, resources,
+ dependencies: skeletonmm_dep,
+ gui_app: true,
+ build_by_default: build_examples
+ )
+endforeach
diff --git a/skeletonmm/meson.build b/skeletonmm/meson.build
new file mode 100644
index 0000000..558b8b4
--- /dev/null
+++ b/skeletonmm/meson.build
@@ -0,0 +1,195 @@
+# This file is part of skeletonmm.
+
+project('skeletonmm', 'cpp',
+ version: '0.1.0',
+ license: 'LGPLv2.1+',
+ default_options: [
+ 'cpp_std=c++17'
+ ],
+ meson_version: '>= 0.50.0', # required for python3.path()
+)
+
+skeletonmm_api_version = '1.0'
+skeletonmm_pcname = meson.project_name() + '-' + skeletonmm_api_version
+
+skeletonmm_version_array = meson.project_version().split('.')
+skeletonmm_major_version = skeletonmm_version_array[0].to_int()
+skeletonmm_minor_version = skeletonmm_version_array[1].to_int()
+skeletonmm_micro_version = skeletonmm_version_array[2].to_int()
+
+# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
+# The relation between libtool's current:revison:age interface versioning
+# and the .so filename, .so.x.y.z, is
+# x = current - age
+# y = age
+# z = revision
+# If libtool_soversion is updated as described in libtool's documentation,
+# x.y.z will usually *not* be equal to meson.project_version().
+libtool_soversion = [0, 0, 0]
+skeletonmm_libversion = '@0@.@1@.@2@'.format(
+ libtool_soversion[0] - libtool_soversion[2],
+ libtool_soversion[2],
+ libtool_soversion[1])
+
+# Use these instead of meson.source_root() and meson.build_root() in subdirectories.
+# source_root() and build_root() are not useful, if this is a subproject.
+project_source_root = meson.current_source_dir()
+project_build_root = meson.current_build_dir()
+
+python3 = import('python').find_installation('python3')
+python_version = python3.language_version()
+python_version_req = '>= 3.5'
+if not python_version.version_compare(python_version_req)
+ error('Requires Python @0@, found @1@.'.format(python_version_req, python_version))
+endif
+
+# Do we build from a git repository?
+# Suppose we do if and only if a .git directory exists.
+cmd_py = '''
+import os
+import sys
+sys.exit(0 if os.path.isdir("@0@") else 1)
+'''.format(project_source_root / '.git')
+is_git_build = run_command(python3, '-c', cmd_py).returncode() == 0
+# In Unix-like system, an alternative is
+# is_git_build = run_command('test', '-d', project_source_root / '.git').returncode() == 0
+# Python code can be used in all operating sytems where Meson can run.
+
+# Options.
+maintainer_mode_opt = get_option('maintainer-mode')
+maintainer_mode = maintainer_mode_opt == 'true' or \
+ (maintainer_mode_opt == 'if-git-build' and is_git_build)
+warning_level = get_option('warnings')
+build_deprecated_api = get_option('build-deprecated-api')
+build_documentation_opt = get_option('build-documentation')
+build_documentation = build_documentation_opt == 'true' or \
+ (build_documentation_opt == 'if-maintainer-mode' and maintainer_mode)
+build_examples = get_option('build-examples')
+
+# Installation directories are relative to {prefix}.
+install_prefix = get_option('prefix')
+install_includedir = get_option('includedir')
+install_libdir = get_option('libdir')
+install_datadir = get_option('datadir')
+install_pkgconfigdir = install_libdir / 'pkgconfig'
+
+# Dependencies.
+# skeletonmm_build_dep: Dependencies when building the skeletonmm library.
+# skeletonmm_dep (created in skeleton/skeletonmm/meson.build):
+# Dependencies when using the skeletonmm library.
+glibmm_req = '>= 2.62.0'
+skeleton_req = '>= 1.0.0'
+glibmm_dep = dependency('glibmm-2.4', version: glibmm_req)
+skeleton_dep = dependency('skeleton-1.0', version: skeleton_req)
+skeletonmm_build_dep = [glibmm_dep, skeleton_dep]
+skeletonmm_requires = ' '.join([
+ 'glibmm-2.4', glibmm_req,
+ 'skeleton-1.0', skeleton_req,
+])
+gnome = import('gnome')
+
+# Some dependencies are required only in maintainer mode and/or if
+# reference documentation shall be built.
+mm_common_get = find_program('mm-common-get', required: maintainer_mode)
+m4 = find_program('m4', required: maintainer_mode) # Used by gmmproc (in glibmm)
+perl = find_program('perl', required: maintainer_mode or build_documentation)
+doxygen = find_program('doxygen', required: build_documentation)
+dot = find_program('dot', required: build_documentation) # Used by Doxygen
+xsltproc = find_program('xsltproc', required: build_documentation)
+
+# Where to find gmmproc and generate_wrap_init.pl.
+gmmproc_dir = glibmm_dep.get_pkgconfig_variable('gmmprocdir')
+
+script_dir = project_source_root / 'untracked' / 'build_scripts'
+generate_binding = script_dir / 'generate-binding.py'
+doc_reference = script_dir / 'doc-reference.py'
+dist_changelog = script_dir / 'dist-changelog.py'
+dist_build_scripts = script_dir / 'dist-build-scripts.py'
+dist_cmd = project_source_root / 'tools' / 'dist-cmd.py' # Must be committed to git.
+
+if maintainer_mode and mm_common_get.found()
+ # Copy files to untracked/build_scripts and untracked/doc.
+ run_command(mm_common_get, '--force', script_dir,
+ project_source_root / 'untracked' / 'doc')
+endif
+
+cpp_compiler = meson.get_compiler('cpp')
+
+# Set compiler warnings.
+warning_flags = []
+if warning_level == 'min'
+ warning_flags = ['-Wall']
+elif warning_level == 'max' or warning_level == 'fatal'
+ warning_flags = '-pedantic -Wall -Wextra -Wformat-security -Wsuggest-override -Wshadow -Wno-long-long'.split()
+ if warning_level == 'fatal'
+ warning_flags += ['-Werror']
+ deprecations = 'G SKELETON GLIBMM SIGCXX'.split()
+ foreach d : deprecations
+ warning_flags += '-D@0@_DISABLE_DEPRECATED'.format(d)
+ endforeach
+ endif
+endif
+
+warning_flags = cpp_compiler.get_supported_arguments(warning_flags)
+add_project_arguments(warning_flags, language: 'cpp')
+
+subdir('tools/extra_defs_gen')
+subdir('skeleton')
+subdir('examples')
+subdir('tests')
+subdir('doc/reference')
+
+if not meson.is_subproject()
+ # Add a ChangeLog file to the distribution directory.
+ # (add_dist_script() is not allowed in a subproject)
+ meson.add_dist_script(
+ python3.path(), dist_cmd,
+ python3.path(), dist_changelog,
+ project_source_root,
+ )
+ # Add build scripts to the distribution directory, and delete .gitignore
+ # files and an empty $MESON_DIST_ROOT/build/ directory.
+ meson.add_dist_script(
+ python3.path(), dist_cmd,
+ python3.path(), dist_build_scripts,
+ project_source_root,
+ 'untracked' / 'build_scripts',
+ )
+endif
+
+# Print a summary.
+real_maintainer_mode = ''
+if maintainer_mode_opt == 'if-git-build'
+ real_maintainer_mode = ' (@0@)'.format(maintainer_mode)
+endif
+
+real_build_documentation = ''
+if build_documentation_opt == 'if-maintainer-mode'
+ real_build_documentation = ' (@0@)'.format(build_documentation)
+endif
+
+summary = [
+ '',
+ '------',
+ meson.project_name() + ' ' + meson.project_version(),
+ '',
+ ' Maintainer mode: @0@@1@'.format(maintainer_mode_opt, real_maintainer_mode),
+ ' Compiler warnings: @0@'.format(warning_level),
+ ' Build deprecated API: @0@'.format(build_deprecated_api),
+ 'Build HTML documentation: @0@@1@'.format(build_documentation_opt, real_build_documentation),
+ ' Build example programs: @0@'.format(build_examples),
+ 'Directories:',
+ ' prefix: @0@'.format(install_prefix),
+ ' includedir: @0@'.format(install_prefix / install_includedir),
+ ' includeskeletonmmdir: @0@'.format(install_prefix / install_includedir / skeletonmm_pcname),
+ ' libdir: @0@'.format(install_prefix / install_libdir),
+ ' includeconfigdir: @0@'.format(install_prefix / install_includeconfigdir),
+ ' m4dir: @0@'.format(install_prefix / install_m4dir),
+ ' pkgconfigdir: @0@'.format(install_prefix / install_pkgconfigdir),
+ ' datadir: @0@'.format(install_prefix / install_datadir),
+ ' docdir: @0@'.format(install_prefix / install_docdir),
+ ' devhelpdir: @0@'.format(install_prefix / install_devhelpdir),
+ '------'
+]
+
+message('\n'.join(summary))
diff --git a/skeletonmm/meson_options.txt b/skeletonmm/meson_options.txt
new file mode 100644
index 0000000..6611d15
--- /dev/null
+++ b/skeletonmm/meson_options.txt
@@ -0,0 +1,10 @@
+option('maintainer-mode', type: 'combo', choices: ['false', 'if-git-build', 'true'],
+ value: 'if-git-build', description: 'Generate source code from .hg and .ccg files')
+option('warnings', type: 'combo', choices: ['no', 'min', 'max', 'fatal'], value: 'fatal',
+ description: 'Compiler warning level')
+option('build-deprecated-api', type: 'boolean', value: true,
+ description: 'Build deprecated API and include it in the library')
+option('build-documentation', type: 'combo', choices: ['false', 'if-maintainer-mode', 'true'],
+ value: 'if-maintainer-mode', description: 'Build and install the documentation')
+option('build-examples', type: 'boolean', value: true,
+ description: 'Build example programs')
diff --git a/skeletonmm/skeleton/.gitignore b/skeletonmm/skeleton/.gitignore
deleted file mode 100644
index 908d79b..0000000
--- a/skeletonmm/skeleton/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-/skeletonmmconfig.h
-/skeletonmm-*.pc
-/skeletonmm/skeleton.cc
-/skeletonmm/skeleton.h
-/skeletonmm/wrap_init.cc
-/src/.stamps/
diff --git a/skeletonmm/skeleton/meson.build b/skeletonmm/skeleton/meson.build
new file mode 100644
index 0000000..85fa533
--- /dev/null
+++ b/skeletonmm/skeleton/meson.build
@@ -0,0 +1,51 @@
+# skeleton
+
+# Input: install_prefix, install_datadir, install_includedir,
+# skeletonmm_pcname, skeletonmm_api_version, skeletonmm_requires,
+# install_pkgconfigdir, install_libdir, build_deprecated_api,
+# skeletonmm_major_version, skeletonmm_minor_version, skeletonmm_micro_version
+# Output: pkg_conf_data, install_includeconfigdir
+
+pkg_conf_data = configuration_data()
+pkg_conf_data.set('prefix', install_prefix)
+pkg_conf_data.set('exec_prefix', '${prefix}')
+pkg_conf_data.set('libdir', '${prefix}' / install_libdir)
+pkg_conf_data.set('datarootdir', '${prefix}' / install_datadir)
+pkg_conf_data.set('datadir', '${datarootdir}')
+pkg_conf_data.set('includedir', '${prefix}' / install_includedir)
+pkg_conf_data.set('srcdir', meson.current_source_dir())
+pkg_conf_data.set('PACKAGE_TARNAME', meson.project_name())
+pkg_conf_data.set('PACKAGE_VERSION', meson.project_version())
+pkg_conf_data.set('SKELETONMM_MODULE_NAME', skeletonmm_pcname)
+pkg_conf_data.set('SKELETONMM_API_VERSION', skeletonmm_api_version)
+pkg_conf_data.set('SKELETONMM_MODULES', skeletonmm_requires)
+
+if not build_deprecated_api
+ pkg_conf_data.set('SKELETONMM_DISABLE_DEPRECATED', true)
+endif
+pkg_conf_data.set('SKELETONMM_MAJOR_VERSION', skeletonmm_major_version)
+pkg_conf_data.set('SKELETONMM_MINOR_VERSION', skeletonmm_minor_version)
+pkg_conf_data.set('SKELETONMM_MICRO_VERSION', skeletonmm_micro_version)
+
+configure_file(
+ input: 'skeletonmm.pc.in',
+ output: skeletonmm_pcname + '.pc',
+ configuration: pkg_conf_data,
+ install_dir: install_pkgconfigdir,
+)
+
+configure_file(
+ input: 'skeletonmm-uninstalled.pc.in',
+ output: skeletonmm_pcname + '-uninstalled.pc',
+ configuration: pkg_conf_data,
+)
+
+install_includeconfigdir = install_libdir / skeletonmm_pcname / 'include'
+configure_file(
+ input: 'skeletonmmconfig.h.in',
+ output: '@BASENAME@',
+ configuration: pkg_conf_data,
+ install_dir: install_includeconfigdir,
+)
+
+subdir('skeletonmm')
diff --git a/skeletonmm/skeleton/skeletonmm-uninstalled.pc.in b/skeletonmm/skeleton/skeletonmm-uninstalled.pc.in
index 7125be1..e355e18 100644
--- a/skeletonmm/skeleton/skeletonmm-uninstalled.pc.in
+++ b/skeletonmm/skeleton/skeletonmm-uninstalled.pc.in
@@ -3,7 +3,7 @@ htmlrefpub=http://library.gnome.org/devel/@PACKAGE_TARNAME@/unstable/
Name: skeletonmm
Description: C++ binding for skeleton, not installed
-Version: @SKELETONMM_VERSION@
+Version: @PACKAGE_VERSION@
URL: http://www.gtkmm.org/
Requires: @SKELETONMM_MODULES@
Libs: ${pc_top_builddir}/${pcfiledir}/skeletonmm/libskeletonmm-@SKELETONMM_API_VERSION@.la
diff --git a/skeletonmm/skeleton/skeletonmm.h b/skeletonmm/skeleton/skeletonmm.h
index 30dfddd..7078e16 100644
--- a/skeletonmm/skeleton/skeletonmm.h
+++ b/skeletonmm/skeleton/skeletonmm.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010 Joe Hacker <joe@example.com>
+/* Copyright (c) 2019 Joe Hacker <joe@example.com>
*
* This file is part of skeletonmm.
*
diff --git a/skeletonmm/skeleton/skeletonmm.pc.in b/skeletonmm/skeleton/skeletonmm.pc.in
index d74f343..b92cf53 100644
--- a/skeletonmm/skeleton/skeletonmm.pc.in
+++ b/skeletonmm/skeleton/skeletonmm.pc.in
@@ -12,7 +12,7 @@ htmlrefpub=http://library.gnome.org/devel/@PACKAGE_TARNAME@/unstable/
Name: skeletonmm
Description: C++ binding for skeleton
-Version: @SKELETONMM_VERSION@
+Version: @PACKAGE_VERSION@
URL: http://www.gtkmm.org/
Requires: @SKELETONMM_MODULES@
Libs: -L${libdir} -lskeletonmm-@SKELETONMM_API_VERSION@
diff --git a/skeletonmm/skeleton/skeletonmm/Makefile.am b/skeletonmm/skeleton/skeletonmm/Makefile.am
deleted file mode 100644
index 52dbdd6..0000000
--- a/skeletonmm/skeleton/skeletonmm/Makefile.am
+++ /dev/null
@@ -1,31 +0,0 @@
-## Copyright (c) 2010 Joe Hacker <joe@example.com>
-##
-## This file is part of skeletonmm.
-##
-## skeletonmm is free software: you can redistribute it and/or modify it
-## under the terms of the GNU Lesser General Public License as published
-## by the Free Software Foundation, either version 2.1 of the License,
-## or (at your option) any later version.
-##
-## skeletonmm is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-## See the GNU Lesser General Public License for more details.
-##
-## You should have received a copy of the GNU Lesser General Public License
-## along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-lib_LTLIBRARIES = libskeletonmm-@SKELETONMM_API_VERSION@.la
-
-include $(srcdir)/../src/filelist.am
-include $(srcdir)/filelist.am
-include $(top_srcdir)/build/compile-binding.am
-
-local_cppflags = $(binding_includes) $(binding_cppflags) -DSKELETONMM_BUILD=1
-
-AM_CPPFLAGS = $(local_cppflags) $(GTHREAD_CFLAGS) $(SKELETONMM_CFLAGS)
-AM_CXXFLAGS = $(SKELETONMM_WXXFLAGS)
-
-libskeletonmm_@SKELETONMM_API_VERSION@_la_SOURCES = $(binding_sources)
-libskeletonmm_@SKELETONMM_API_VERSION@_la_LDFLAGS = -no-undefined -version-info $(SKELETONMM_SO_VERSION)
-libskeletonmm_@SKELETONMM_API_VERSION@_la_LIBADD = $(SKELETONMM_LIBS)
diff --git a/skeletonmm/skeleton/skeletonmm/filelist.am b/skeletonmm/skeleton/skeletonmm/filelist.am
deleted file mode 100644
index ac757b5..0000000
--- a/skeletonmm/skeleton/skeletonmm/filelist.am
+++ /dev/null
@@ -1,8 +0,0 @@
-## This file is part of skeletonmm.
-
-files_built_cc = $(files_hg:.hg=.cc) wrap_init.cc
-files_built_h = $(files_hg:.hg=.h)
-files_built_ph = $(patsubst %.hg,private/%_p.h,$(files_hg))
-files_extra_cc =
-files_extra_h = wrap_init.h
-files_extra_ph =
diff --git a/skeletonmm/skeleton/skeletonmm/meson.build b/skeletonmm/skeleton/skeletonmm/meson.build
new file mode 100644
index 0000000..ae36c58
--- /dev/null
+++ b/skeletonmm/skeleton/skeletonmm/meson.build
@@ -0,0 +1,172 @@
+# skeleton/skeletonmm
+
+# Input: skeletonmm_build_dep, skeletonmm_pcname, maintainer_mode, project_source_root,
+# generate_binding, m4_files, skeletonmm_libversion, install_includedir,
+# dist_cmd, python3
+# Output: hg_ccg_basenames, extra_h_files, built_file_targets, built_files_root,
+# skeletonmm_dep
+
+defs_basefiles = [
+ 'skeleton.defs',
+ 'skeleton_methods.defs',
+ 'skeleton_enums.defs',
+ 'skeleton_signals.defs',
+ 'skeleton_vfuncs.defs',
+ 'skeleton_docs.xml',
+]
+
+defs_files = []
+foreach file : defs_basefiles
+ defs_files += '..' / 'src' / file
+endforeach
+
+hg_ccg_basenames = [
+ 'skeleton',
+]
+
+extra_cc_files = [
+]
+
+extra_h_files = [
+ 'wrap_init.h',
+]
+
+install_headers('..' / 'skeletonmm.h', subdir: skeletonmm_pcname)
+install_headers(extra_h_files, subdir: skeletonmm_pcname / 'skeletonmm')
+
+untracked_skeletonmm = 'untracked' / 'skeleton' / 'skeletonmm'
+src_untracked_skeletonmm = project_source_root / untracked_skeletonmm
+
+if maintainer_mode
+
+ # Maintainer mode. Generate .h and .cc files from .hg and .ccg files in ../src.
+
+ # doc/reference/meson.build needs this.
+ built_files_root = project_build_root
+
+ hg_files = []
+ foreach file : hg_ccg_basenames
+ hg_files += '..' / 'src' / file + '.hg'
+ endforeach
+
+ # Create wrap_init.cc in project_build_root/skeleton/skeletonmm.
+ wrap_init_target = custom_target('wrap_init.cc',
+ input: hg_files,
+ output: 'wrap_init.cc',
+ command: [
+ python3, generate_binding, 'generate_wrap_init',
+ gmmproc_dir,
+ '@OUTPUT@',
+ 'Skeleton', # namespace
+ '@INPUT@',
+ ],
+ build_by_default: maintainer_mode,
+ install: false,
+ )
+
+ # Force meson+ninja to generate source files before anything is compiled.
+ # Compilation must depend on these targets.
+ built_file_targets = []
+
+ # Create .h/_p.h/.cc files from .hg/.ccg files in project_build_root/skeleton/skeletonmm.
+ foreach file : hg_ccg_basenames
+ hg_file = '..' / 'src' / file + '.hg'
+ ccg_file = '..' / 'src' / file + '.ccg'
+ built_file_targets += custom_target(file + '.cc',
+ input: [hg_file, ccg_file],
+ output: [file + '.stamp', file + '.cc'],
+ command: [
+ python3, generate_binding, 'gmmproc',
+ gmmproc_dir,
+ '@OUTPUT0@',
+ file,
+ meson.current_source_dir() / '..' / 'src',
+ project_source_root / 'tools' / 'm4',
+ ],
+ depend_files: defs_files + m4_files,
+ build_by_default: maintainer_mode,
+ install: false,
+ )
+ endforeach
+
+ extra_include_dirs = ['..']
+ skeletonmm_library = library(skeletonmm_pcname,
+ wrap_init_target, built_file_targets, extra_cc_files,
+ version: skeletonmm_libversion,
+ include_directories: extra_include_dirs,
+ dependencies: skeletonmm_build_dep,
+ install: true,
+ )
+
+ built_h_cc_dir = meson.current_build_dir()
+
+else # not maintainer_mode
+
+ # Not maintainer mode. Compile built source code files in
+ # project_source_root/untracked/skeleton/skeletonmm.
+
+ # doc/reference/meson.build needs these.
+ built_file_targets = []
+ built_files_root = project_source_root / 'untracked'
+
+ # Two cases:
+ # 1. The source code comes from a tarball, where the built files
+ # are stored in project_source_root/untracked.
+ # There are no built files in the build tree.
+ # 2. Files have been built in the build tree. Then maintainer_mode has
+ # been changed from true to false. Files that are missing or not up to date
+ # in project_source_root/untracked are copied from the build tree.
+
+ # Try to copy built source code files to the source tree.
+ run_command(
+ python3, generate_binding, 'copy_built_files',
+ meson.current_build_dir(),
+ src_untracked_skeletonmm,
+ hg_ccg_basenames,
+ )
+
+ built_cc_files = [ src_untracked_skeletonmm / 'wrap_init.cc' ]
+ foreach file : hg_ccg_basenames
+ built_cc_files += src_untracked_skeletonmm / file + '.cc'
+ endforeach
+
+ extra_include_dirs = [ '..', '..' / '..' / 'untracked' / 'skeleton' ]
+ skeletonmm_library = library(skeletonmm_pcname,
+ built_cc_files, extra_cc_files,
+ version: skeletonmm_libversion,
+ include_directories: extra_include_dirs,
+ dependencies: skeletonmm_build_dep,
+ install: true,
+ )
+
+ built_h_cc_dir = src_untracked_skeletonmm
+
+endif
+
+# Install built .h and _p.h files.
+meson.add_install_script(
+ python3.path(), generate_binding, 'install_built_h_files',
+ built_h_cc_dir,
+ install_includedir / skeletonmm_pcname / 'skeletonmm', # subdir below {prefix}
+ hg_ccg_basenames
+)
+
+if not meson.is_subproject()
+ # Distribute built files.
+ # (add_dist_script() is not allowed in a subproject)
+ meson.add_dist_script(
+ python3.path(), dist_cmd,
+ python3.path(), generate_binding, 'dist_built_files',
+ built_h_cc_dir,
+ untracked_skeletonmm,
+ hg_ccg_basenames,
+ )
+endif
+
+# This is useful in the main project when skeletonmm is used as a subproject.
+# It's also used when building example programs and test programs.
+skeletonmm_dep = declare_dependency(
+ link_with: skeletonmm_library,
+ include_directories: extra_include_dirs,
+ dependencies: skeletonmm_build_dep
+)
diff --git a/skeletonmm/skeleton/skeletonmm/private/.gitignore b/skeletonmm/skeleton/skeletonmm/private/.gitignore
deleted file mode 100644
index 0cb5a60..0000000
--- a/skeletonmm/skeleton/skeletonmm/private/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/*_p.h
diff --git a/skeletonmm/skeleton/skeletonmm/wrap_init.h b/skeletonmm/skeleton/skeletonmm/wrap_init.h
index 45a47f6..c0c7d6c 100644
--- a/skeletonmm/skeleton/skeletonmm/wrap_init.h
+++ b/skeletonmm/skeleton/skeletonmm/wrap_init.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010 Joe Hacker <joe@example.com>
+/* Copyright (c) 2019 Joe Hacker <joe@example.com>
*
* This file is part of skeletonmm.
*
@@ -19,6 +19,9 @@
#ifndef SKELETONMM_WRAP_INIT_H_INCLUDED
#define SKELETONMM_WRAP_INIT_H_INCLUDED
-namespace Skeleton { void wrap_init(); }
+namespace Skeleton
+{
+ void wrap_init();
+}
#endif /* !SKELETONMM_WRAP_INIT_H_INCLUDED */
diff --git a/skeletonmm/skeleton/skeletonmmconfig.h.in b/skeletonmm/skeleton/skeletonmmconfig.h.in
index f6eccc4..8417fac 100644
--- a/skeletonmm/skeleton/skeletonmmconfig.h.in
+++ b/skeletonmm/skeleton/skeletonmmconfig.h.in
@@ -1,10 +1,19 @@
/* This file is part of skeletonmm. */
+#ifndef SKELETONMMCONFIG_H_INCLUDED
+#define SKELETONMMCONFIG_H_INCLUDED
+
+#include <glibmmconfig.h>
+
+/* Define to omit deprecated API from the library. */
+#mesondefine SKELETONMM_DISABLE_DEPRECATED
/* Major version number of skeletonmm. */
-#undef SKELETONMM_MAJOR_VERSION
+#mesondefine SKELETONMM_MAJOR_VERSION
+
+/* Minor version number of skeletonmm. */
+#mesondefine SKELETONMM_MINOR_VERSION
/* Micro version number of skeletonmm. */
-#undef SKELETONMM_MICRO_VERSION
+#mesondefine SKELETONMM_MICRO_VERSION
-/* Minor version number of skeletonmm. */
-#undef SKELETONMM_MINOR_VERSION
+#endif /* !SKELETONMMCONFIG_H_INCLUDED */
diff --git a/skeletonmm/skeleton/src/Makefile.am b/skeletonmm/skeleton/src/Makefile.am
deleted file mode 100644
index 08d935f..0000000
--- a/skeletonmm/skeleton/src/Makefile.am
+++ /dev/null
@@ -1,23 +0,0 @@
-## Copyright (c) 2010 Joe Hacker <joe@example.com>
-##
-## This file is part of skeletonmm.
-##
-## skeletonmm is free software: you can redistribute it and/or modify it
-## under the terms of the GNU Lesser General Public License as published
-## by the Free Software Foundation, either version 2.1 of the License,
-## or (at your option) any later version.
-##
-## skeletonmm is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-## See the GNU Lesser General Public License for more details.
-##
-## You should have received a copy of the GNU Lesser General Public License
-## along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-binding_name = skeletonmm
-wrap_init_flags = --namespace=Skeleton --parent_dir=skeletonmm
-
-include $(srcdir)/filelist.am
-include $(top_srcdir)/codegen/m4/filelist.am
-include $(top_srcdir)/build/generate-binding.am
diff --git a/skeletonmm/skeleton/src/filelist.am b/skeletonmm/skeleton/src/filelist.am
deleted file mode 100644
index 4dcceb2..0000000
--- a/skeletonmm/skeleton/src/filelist.am
+++ /dev/null
@@ -1,12 +0,0 @@
-## This file is part of skeletonmm.
-
-files_defs = \
- skeleton.defs \
- skeleton_enum.defs \
- skeleton_method.defs \
- skeleton_signal.defs \
- skeleton_vfunc.defs \
- skeleton_docs.xml
-
-files_hg = skeleton.hg
-files_ccg = $(files_hg:.hg=.ccg)
diff --git a/skeletonmm/skeleton/src/skeleton.ccg b/skeletonmm/skeleton/src/skeleton.ccg
index be287f7..f7335ae 100644
--- a/skeletonmm/skeleton/src/skeleton.ccg
+++ b/skeletonmm/skeleton/src/skeleton.ccg
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010 Joe Hacker <joe@example.com>
+/* Copyright (c) 2019 Joe Hacker <joe@example.com>
*
* This file is part of skeletonmm.
*
diff --git a/skeletonmm/skeleton/src/skeleton.defs b/skeletonmm/skeleton/src/skeleton.defs
index a2ffe9e..7abb537 100644
--- a/skeletonmm/skeleton/src/skeleton.defs
+++ b/skeletonmm/skeleton/src/skeleton.defs
@@ -1,5 +1,5 @@
;; Include generated API definition files
-(include skeleton_enum.defs)
-(include skeleton_method.defs)
-(include skeleton_signal.defs)
-(include skeleton_vfunc.defs)
+(include skeleton_enums.defs)
+(include skeleton_methods.defs)
+(include skeleton_signals.defs)
+(include skeleton_vfuncs.defs)
diff --git a/skeletonmm/skeleton/src/skeleton.hg b/skeletonmm/skeleton/src/skeleton.hg
index a9ae68b..0f74f34 100644
--- a/skeletonmm/skeleton/src/skeleton.hg
+++ b/skeletonmm/skeleton/src/skeleton.hg
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010 Joe Hacker <joe@example.com>
+/* Copyright (c) 2019 Joe Hacker <joe@example.com>
*
* This file is part of skeletonmm.
*
@@ -33,7 +33,7 @@ protected:
_CTOR_DEFAULT
public:
- _WRAP_CREATE
+ _WRAP_CREATE()
};
} // namespace Skeleton
diff --git a/skeletonmm/skeleton/src/skeleton_enum.defs b/skeletonmm/skeleton/src/skeleton_enums.defs
index 8cda8ff..8cda8ff 100644
--- a/skeletonmm/skeleton/src/skeleton_enum.defs
+++ b/skeletonmm/skeleton/src/skeleton_enums.defs
diff --git a/skeletonmm/skeleton/src/skeleton_method.defs b/skeletonmm/skeleton/src/skeleton_methods.defs
index 8b0acba..8b0acba 100644
--- a/skeletonmm/skeleton/src/skeleton_method.defs
+++ b/skeletonmm/skeleton/src/skeleton_methods.defs
diff --git a/skeletonmm/skeleton/src/skeleton_signal.defs b/skeletonmm/skeleton/src/skeleton_signals.defs
index b244442..b244442 100644
--- a/skeletonmm/skeleton/src/skeleton_signal.defs
+++ b/skeletonmm/skeleton/src/skeleton_signals.defs
diff --git a/skeletonmm/skeleton/src/skeleton_vfunc.defs b/skeletonmm/skeleton/src/skeleton_vfuncs.defs
index 24df0f9..24df0f9 100644
--- a/skeletonmm/skeleton/src/skeleton_vfunc.defs
+++ b/skeletonmm/skeleton/src/skeleton_vfuncs.defs
diff --git a/skeletonmm/skeletonmm.doap b/skeletonmm/skeletonmm.doap
index 313314f..23d47db 100644
--- a/skeletonmm/skeletonmm.doap
+++ b/skeletonmm/skeletonmm.doap
@@ -9,6 +9,7 @@
<homepage rdf:resource="http://www.gtkmm.org/" />
<mailing-list rdf:resource="mailto:gtkmm-list@gnome.org" />
<category rdf:resource="http://api.gnome.org/doap-extensions#bindings" />
+ <programming-language>C++</programming-language>
<maintainer>
<foaf:Person>
diff --git a/skeletonmm/tests/meson.build b/skeletonmm/tests/meson.build
new file mode 100644
index 0000000..68dcdd1
--- /dev/null
+++ b/skeletonmm/tests/meson.build
@@ -0,0 +1,37 @@
+# tests
+
+# input: gnome, skeletonmm_dep
+
+tests = [
+# [[dir-name], exe-name, [sources]]
+ [['test1'], 'test', ['main.cc']],
+ [['test2'], 'test', ['main.cc']],
+]
+
+foreach ex : tests
+ dir = ''
+ foreach dir_part : ex[0]
+ dir = dir / dir_part
+ endforeach
+ ex_name = (dir / ex[1]).underscorify()
+ ex_sources = []
+ resources = []
+ foreach src : ex[2]
+ if src.endswith('.gresource.xml')
+ resources = gnome.compile_resources(dir.underscorify() + '_resources',
+ dir / src,
+ source_dir: dir
+ )
+ else
+ ex_sources += dir / src
+ endif
+ endforeach
+
+ exe_file = executable(ex_name, ex_sources, resources,
+ dependencies: skeletonmm_dep,
+ gui_app: false,
+ build_by_default: true
+ )
+
+ test(dir.underscorify(), exe_file)
+endforeach
diff --git a/skeletonmm/tests/test1/main.cc b/skeletonmm/tests/test1/main.cc
new file mode 100644
index 0000000..4489920
--- /dev/null
+++ b/skeletonmm/tests/test1/main.cc
@@ -0,0 +1,30 @@
+/* Copyright (c) 2019 Joe Hacker <joe@example.com>
+ *
+ * This file is part of skeletonmm.
+ *
+ * skeletonmm is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation, either version 2.1 of the License,
+ * or (at your option) any later version.
+ *
+ * skeletonmm is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <skeletonmm.h>
+#include <cstdlib>
+
+namespace
+{
+
+} // anonymous namespace
+
+int main(int, char**)
+{
+ return EXIT_SUCCESS;
+}
diff --git a/skeletonmm/tests/test2/main.cc b/skeletonmm/tests/test2/main.cc
new file mode 100644
index 0000000..56c1136
--- /dev/null
+++ b/skeletonmm/tests/test2/main.cc
@@ -0,0 +1,30 @@
+/* Copyright (c) 2019 Joe Hacker <joe@example.com>
+ *
+ * This file is part of skeletonmm.
+ *
+ * skeletonmm is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation, either version 2.1 of the License,
+ * or (at your option) any later version.
+ *
+ * skeletonmm is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <skeletonmm.h>
+#include <cstdlib>
+
+namespace
+{
+
+} // anonymous namespace
+
+int main(int, char**)
+{
+ return EXIT_FAILURE;
+}
diff --git a/skeletonmm/tools/dist-cmd.py b/skeletonmm/tools/dist-cmd.py
new file mode 100755
index 0000000..30da5da
--- /dev/null
+++ b/skeletonmm/tools/dist-cmd.py
@@ -0,0 +1,12 @@
+#!/usr/bin/env python3
+
+# External command, intended to be called with meson.add_dist_script() in meson.build.
+# meson.add_dist_script() can't call a script that's not committed to git.
+# This script shall be committed. It can be used for calling other non-committed scripts.
+
+# dist-cmd.py <cmd> <args>...
+
+import sys
+import subprocess
+
+sys.exit(subprocess.run(sys.argv[1:]).returncode)
diff --git a/skeletonmm/codegen/extradefs/generate_extra_defs_skeleton.cc b/skeletonmm/tools/extra_defs_gen/generate_defs_skeleton.cc
index 12fda94..cac1881 100644
--- a/skeletonmm/codegen/extradefs/generate_extra_defs_skeleton.cc
+++ b/skeletonmm/tools/extra_defs_gen/generate_defs_skeleton.cc
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010 Joe Hacker <joe@example.com>
+/* Copyright (c) 2019 Joe Hacker <joe@example.com>
*
* This file is part of skeletonmm.
*
@@ -16,6 +16,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+// We always need to generate the .defs for all types because the code
+// using deprecated API is generated unconditionally and only disabled
+// at compile time.
+#undef SKELETON_DISABLE_DEPRECATED
+
#include <glibmm_generate_extra_defs/generate_extra_defs.h>
#include <skeleton/skeleton.h>
#include <iostream>
diff --git a/skeletonmm/tools/extra_defs_gen/meson.build b/skeletonmm/tools/extra_defs_gen/meson.build
new file mode 100644
index 0000000..69f3b16
--- /dev/null
+++ b/skeletonmm/tools/extra_defs_gen/meson.build
@@ -0,0 +1,26 @@
+# tools/extra_defs_gen
+
+# Input: cpp_compiler, skeletonmm_build_dep, install_libdir, skeletonmm_pcname
+# Output: m4_files, install_m4dir
+
+glibmm_generate_extra_defs_dep = cpp_compiler.find_library(
+ 'glibmm_generate_extra_defs-2.4',
+)
+
+executable('generate_defs_skeleton', 'generate_defs_skeleton.cc',
+ dependencies: [skeletonmm_build_dep, glibmm_generate_extra_defs_dep],
+ install: false,
+)
+
+# Install m4 files for reuse by other *mm projects, when building from git.
+m4_basefiles = [
+ 'convert.m4',
+ 'convert_skeleton.m4',
+]
+m4_files = []
+foreach file : m4_basefiles
+ m4_files += '..' / 'm4' / file
+endforeach
+m4_files = files(m4_files)
+install_m4dir = install_libdir / skeletonmm_pcname / 'proc' / 'm4'
+install_data(m4_files, install_dir: install_m4dir)
diff --git a/skeletonmm/codegen/generate_defs_and_docs.sh b/skeletonmm/tools/generate_defs_and_docs.sh
index 04d9773..025777e 100755
--- a/skeletonmm/codegen/generate_defs_and_docs.sh
+++ b/skeletonmm/tools/generate_defs_and_docs.sh
@@ -16,9 +16,9 @@
# Generated files:
# skeletonmm/skeleton/src/skeleton_docs.xml
-# skeletonmm/skeleton/src/skeleton_enum.defs
-# skeletonmm/skeleton/src/skeleton_method.defs
-# skeletonmm/skeleton/src/skeleton_signal.defs
+# skeletonmm/skeleton/src/skeleton_enums.defs
+# skeletonmm/skeleton/src/skeleton_methods.defs
+# skeletonmm/skeleton/src/skeleton_signals.defs
# Root directory of skeletonmm source files.
root_dir="$(dirname "$0")/.."
@@ -39,12 +39,12 @@ gen_methods="$GMMPROC_GEN_SOURCE_DIR/glibmm/tools/defs_gen/h2def.py"
gen_enums="$GMMPROC_GEN_SOURCE_DIR/glibmm/tools/enum.pl"
# Where to find the executable that generates extra defs (signals and properties).
-extra_defs_gen_dir="$GMMPROC_GEN_BUILD_DIR/skeletonmm/codegen/extradefs"
+extra_defs_gen_dir="$GMMPROC_GEN_BUILD_DIR/skeletonmm/tools/extra_defs_gen"
### If skeletonmm is built with meson:
if [ "$GMMPROC_GEN_SOURCE_DIR" == "$GMMPROC_GEN_BUILD_DIR" ]; then
# skeletonmm is built with meson, which requires non-source-dir builds.
- # This is what jhbuild does, if neccesary, to force non-source-dir builds.
- extra_defs_gen_dir="$GMMPROC_GEN_BUILD_DIR/skeletonmm/build/codegen/extradefs"
+ # This is what jhbuild does, if necesary, to force non-source-dir builds.
+ extra_defs_gen_dir="$GMMPROC_GEN_BUILD_DIR/skeletonmm/build/tools/extra_defs_gen"
fi
### If skeletonmm is built with autotools:
# skeletonmm is built with autotools.
@@ -77,13 +77,13 @@ shopt -s nullglob # Skip a filename pattern that matches no file
# Enums
echo === skeleton_enum.defs ===
-"$gen_enums" "$source_prefix"/skeleton/*.h "$build_prefix"/skeleton/*.h > "$out_dir/skeleton_enum.defs"
+"$gen_enums" "$source_prefix"/skeleton/*.h "$build_prefix"/skeleton/*.h > "$out_dir/skeleton_enums.defs"
# Functions and methods
echo === skeleton_method.defs ===
-"$gen_methods" "$source_prefix"/skeleton/*.h "$build_prefix"/skeleton/*.h > "$out_dir/skeleton_method.defs"
+"$gen_methods" "$source_prefix"/skeleton/*.h "$build_prefix"/skeleton/*.h > "$out_dir/skeleton_methods.defs"
# Properties and signals
echo === skeleton_signal.defs ===
-"$extra_defs_gen_dir"/generate_extra_defs > "$out_dir/skeleton_signal.defs"
+"$extra_defs_gen_dir"/generate_defs_skeleton > "$out_dir/skeleton_signals.defs"
diff --git a/skeletonmm/codegen/m4/convert.m4 b/skeletonmm/tools/m4/convert.m4
index 15e00c8..15e00c8 100644
--- a/skeletonmm/codegen/m4/convert.m4
+++ b/skeletonmm/tools/m4/convert.m4
diff --git a/skeletonmm/codegen/m4/convert_skeleton.m4 b/skeletonmm/tools/m4/convert_skeleton.m4
index 0c41fe1..11b1bdc 100644
--- a/skeletonmm/codegen/m4/convert_skeleton.m4
+++ b/skeletonmm/tools/m4/convert_skeleton.m4
@@ -1,4 +1,4 @@
-dnl Copyright (c) 2010 Joe Hacker <joe@example.com>
+dnl Copyright (c) 2019 Joe Hacker <joe@example.com>
dnl This file is part of skeletonmm.
_CONVERSION(`SkeletonSomeType*',`Glib::RefPtr<SomeType>',`Glib::wrap($3)')
diff --git a/skeletonmm/untracked/README b/skeletonmm/untracked/README
new file mode 100644
index 0000000..8082503
--- /dev/null
+++ b/skeletonmm/untracked/README
@@ -0,0 +1,36 @@
+untracked/README
+
+This directory contains files not tracked by a source code control program,
+such as git. (This README file is the exception.)
+
+The files can have one of two origins.
+
+1. Copied by the mm-common-get command.
+2. Generated when skeletonmm is built.
+
+Files of type 2 exist here only if skeletonmm is built with maintainer-mode=false,
+or the directory comes from a tarball.
+Files of both types exist here only if skeletonmm is built with Meson,
+or the tarball is created with Meson.
+
+1. Files copied by mm-common-get
+--------------------------------
+untracked/doc/doc-install.pl
+ doc-postprocess.pl
+ doxygen-extra.css
+ tagfile-to-devhelp2.xsl
+untracked/build_scripts/dist-build-scripts.py
+ dist-changelog.py
+ doc-reference.py
+ generate-binding.py
+
+mm-common-get may copy more files, but they are not used by skeletonmm.
+
+2. Generated files
+------------------
+untracked/skeleton/skeletonmm/*.h
+ *.cc
+ private/*_p.h
+untracked/doc/reference/skeletonmm-1.0.devhelp2
+ skeletonmm-1.0.tag
+ html/*