From 21806bfb94ba66cdbba8ff02179b8da9eece40e3 Mon Sep 17 00:00:00 2001 From: Dave Andreoli Date: Sat, 18 Apr 2020 19:33:38 +0200 Subject: [PATCH] Extramenu: switch to meson --- .gitignore | 34 +----- COPYING.LESSER | 165 ---------------------------- Makefile.am | 25 ----- autogen.sh | 15 --- m4/ac_attribute.m4 | 14 --- meson.build | 65 +++++++++++ module.desktop.in => module.desktop | 0 src/Makefile.am | 18 --- src/meson.build | 11 ++ 9 files changed, 77 insertions(+), 270 deletions(-) delete mode 100644 COPYING.LESSER delete mode 100644 Makefile.am delete mode 100755 autogen.sh delete mode 100644 m4/ac_attribute.m4 create mode 100644 meson.build rename module.desktop.in => module.desktop (100%) delete mode 100644 src/Makefile.am create mode 100644 src/meson.build diff --git a/.gitignore b/.gitignore index 53762e5..567609b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,33 +1 @@ -Makefile -Makefile.in -aclocal.m4 -autom4te.cache/ -compile -config.guess -config.h -config.h.in -config.log -config.status -config.sub -configure -depcomp -e-module-extramenu.edj -install-sh -libtool -ltmain.sh -m4/libtool.m4 -m4/ltoptions.m4 -m4/ltsugar.m4 -m4/ltversion.m4 -m4/lt~obsolete.m4 -missing -module.desktop -src/.deps/ -src/.libs/ -src/Makefile -src/Makefile.in -src/e_mod_main.lo -src/e_mod_main.o -src/module.la -stamp-h1 - +build/ diff --git a/COPYING.LESSER b/COPYING.LESSER deleted file mode 100644 index 1604322..0000000 --- a/COPYING.LESSER +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index c0667e1..0000000 --- a/Makefile.am +++ /dev/null @@ -1,25 +0,0 @@ -ACLOCAL_AMFLAGS = -I m4 -MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess config.h.in \ - config.sub compile configure depcomp install-sh ltmain.sh \ - missing module.desktop config.rpath mkinstalldirs - -SUBDIRS = src - -EDJE_FLAGS = -v \ - -id $(top_srcdir) - -filesdir = $(datadir) -files_DATA = module.desktop e-module-extramenu.edj - -EXTRA_DIST = module.desktop.in \ - icon.png \ - e-module-extramenu.edc - -%.edj: %.edc - $(EDJE_CC) $(EDJE_FLAGS) $< $@ - -clean-local: - rm -rf e-module-extramenu.edj module.desktop *~ - -uninstall: - rm -rf $(DESTDIR)$(datadir) diff --git a/autogen.sh b/autogen.sh deleted file mode 100755 index 36628e4..0000000 --- a/autogen.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -rm -rf autom4te.cache -rm -f aclocal.m4 ltmain.sh - -#echo "Running autopoint..." ; autopoint -f || : -echo "Running aclocal..." ; aclocal -I m4 $ACLOCAL_FLAGS || exit 1 -echo "Running autoheader..." ; autoheader || exit 1 -echo "Running autoconf..." ; autoconf || exit 1 -echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --automake) || exit 1 -echo "Running automake..." ; automake --add-missing --copy --gnu || exit 1 - -if [ -z "$NOCONFIGURE" ]; then - ./configure "$@" -fi diff --git a/m4/ac_attribute.m4 b/m4/ac_attribute.m4 deleted file mode 100644 index 46c1a42..0000000 --- a/m4/ac_attribute.m4 +++ /dev/null @@ -1,14 +0,0 @@ - -AC_DEFUN([AC_C___ATTRIBUTE__], -[ - AC_MSG_CHECKING(for __attribute__) - AC_CACHE_VAL(ac_cv___attribute__, [ - AC_TRY_COMPILE([#include ], - [int func(int x); int foo(int x __attribute__ ((unused))) { exit(1); }], - ac_cv___attribute__=yes, ac_cv___attribute__=no)]) - if test "$ac_cv___attribute__" = "yes"; then - AC_DEFINE(HAVE___ATTRIBUTE__, 1, [Define to 1 if your compiler has __attribute__]) - fi - AC_MSG_RESULT($ac_cv___attribute__) -]) - diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..9a7d237 --- /dev/null +++ b/meson.build @@ -0,0 +1,65 @@ + +#### Project #### +project('extramenu', 'c', + version: '0.3.0', + license: 'GPL v3', + meson_version: '>= 0.47.0') + + +#### Enlightenemnt #### +dep_e = dependency('enlightenment') +e_modules_dir = dep_e.get_pkgconfig_variable('modules') +e_release = dep_e.get_pkgconfig_variable('release') + + +#### Host arch #### +host_os = host_machine.system() +if host_os == 'linux' + cc = meson.get_compiler('c') + if cc.has_header_symbol('features.h', '__UCLIBC__') + host_os = 'linux-uclibc' + elif cc.has_header_symbol('features.h', '__dietlibc__') + host_os = 'linux-dietlibc' + else + host_os = 'linux-gnu' + endif +endif +mod_arch = '@0@-@1@-@2@'.format(host_os, host_machine.cpu_family(), e_release) + + +#### Install dirs #### +mod_install_dir = join_paths(e_modules_dir, meson.project_name()) +lib_install_dir = join_paths(mod_install_dir, mod_arch) + + +#### config.h #### +config_h = configuration_data() +config_h.set_quoted('PACKAGE', meson.project_name()) +config_dir = include_directories('.') + + +#### Edje cc #### +edje_cc = find_program('edje_cc') + + +#### module sources #### +subdir('src') + + +#### write config file #### +configure_file(output: 'extramenu_config.h', configuration: config_h) + + +#### Data files #### +install_data('module.desktop', install_dir: mod_install_dir) + +cmd = [edje_cc, + '-id', meson.source_root(), + '@INPUT@', '@OUTPUT@'] +custom_target('e-module-extramenu.edj', + input : 'e-module-extramenu.edc', + output : 'e-module-extramenu.edj', + command : cmd, + install_dir: mod_install_dir, + install : true + ) diff --git a/module.desktop.in b/module.desktop similarity index 100% rename from module.desktop.in rename to module.desktop diff --git a/src/Makefile.am b/src/Makefile.am deleted file mode 100644 index 63586a9..0000000 --- a/src/Makefile.am +++ /dev/null @@ -1,18 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in - -AM_CPPFLAGS = -Wall -I. \ - -I$(top_srcdir) \ - -I$(includedir) \ - @E_CFLAGS@ - -pkgdir = $(datadir)/$(MODULE_ARCH) -pkg_LTLIBRARIES = module.la -module_la_SOURCES = e_mod_main.h \ - e_mod_main.c - -module_la_LIBADD = @E_LIBS@ -module_la_LDFLAGS = -module -avoid-version -module_la_DEPENDENCIES = $(top_builddir)/config.h - -clean-local: - rm -rf *~ diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 0000000..005a229 --- /dev/null +++ b/src/meson.build @@ -0,0 +1,11 @@ + +module = shared_module( + 'module', + 'e_mod_main.c', + + dependencies : [dep_e], + install_dir: lib_install_dir, + include_directories: config_dir, + install: true, + name_prefix: '', +)