summaryrefslogtreecommitdiff
path: root/skeletonmm/tools/extra_defs_gen
diff options
context:
space:
mode:
Diffstat (limited to 'skeletonmm/tools/extra_defs_gen')
-rw-r--r--skeletonmm/tools/extra_defs_gen/generate_defs_skeleton.cc35
-rw-r--r--skeletonmm/tools/extra_defs_gen/meson.build26
2 files changed, 61 insertions, 0 deletions
diff --git a/skeletonmm/tools/extra_defs_gen/generate_defs_skeleton.cc b/skeletonmm/tools/extra_defs_gen/generate_defs_skeleton.cc
new file mode 100644
index 0000000..cac1881
--- /dev/null
+++ b/skeletonmm/tools/extra_defs_gen/generate_defs_skeleton.cc
@@ -0,0 +1,35 @@
+/* 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/>.
+ */
+
+// 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>
+
+int main(int, char**)
+{
+ skeleton_init();
+
+ std::cout << get_defs(SKELETON_TYPE_SOME_TYPE);
+
+ return 0;
+}
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)