Skip to contentSkip to conversation

Add support for Meson build

PATCH New Eric Le Bihan 4 participants 11 messages Oct 29, 2017 – Dec 28, 2017 Arm/Amlogic Meson SoC support

lore
Share & tools
lore
#0 lore raw

v4 cover Add support for Meson build

This small patch series provides a new build system: Meson.

v4 -> v3:

- update documentation with verbosity, configuration and staging installation details.
- update cross-compilation configuration creation to take into account $(TARGET_CFLAGS) and friends.
- add reference to release signature in hash file.
- re-use explicit tarball release instead of github helper.
- various stylistic changes (suggested by Arnout).

v2 -> v3:

- bump version to 0.43.0
- re-use github helper
- reword comments in cross-compilation.conf.in
- use $(FOO_CONF_OPTS) in package documentation

v1 -> v2: (J?rg Krause)

- bump to version 0.41.2
- use explicit tarball release instead of github helper
- use explicit sed
- pass BR2_GCC_TARGET_CPU to cross file

Eric Le Bihan (2):
meson: new package
docs/manual: document meson-based packages

 docs/manual/adding-packages-meson.txt   | 101 ++++++++++++++++++++++++++++++++
 docs/manual/adding-packages.txt         |   2 +
 package/meson/cross-compilation.conf.in |  23 ++++++++
 package/meson/meson.hash                |   3 +
 package/meson/meson.mk                  |  35 +++++++++++
 5 files changed, 164 insertions(+)
 create mode 100644 docs/manual/adding-packages-meson.txt
 create mode 100644 package/meson/cross-compilation.conf.in
 create mode 100644 package/meson/meson.hash
 create mode 100644 package/meson/meson.mk

--
2.13.6

#1 lore raw

PATCH v4 1/2 meson: new package

This new package provides the host variant of the Meson Build System, an open source build system meant to be both extremely fast, and as user friendly as possible.

More precisely, Meson creates configuration files for the Ninja build system.

Besides building Meson, it generates a configuration file ("$(HOST_DIR)/etc/meson/cross-compilation.conf") to be used when cross-compiling a Meson-based project.

---
 package/meson/cross-compilation.conf.in | 23 ++++++++++++++++++++++
 package/meson/meson.hash                |  3 +++
 package/meson/meson.mk                  | 35 +++++++++++++++++++++++++++++++++
 3 files changed, 61 insertions(+)
 create mode 100644 package/meson/cross-compilation.conf.in
 create mode 100644 package/meson/meson.hash
 create mode 100644 package/meson/meson.mk
package/meson/cross-compilation.conf.in new file +23 -0
new file mode 100644
index 0000000000..0eec74087b
@@ -0,0 +1,23 @@
+# Note: Buildroot's and Meson's terminologies differ about the meaning
+# of 'build', 'host' and 'target':
+# - Buildroot's 'host' is Meson's 'build'
+# - Buildroot's 'target' is Meson's 'host'
+
+[binaries]
+c = '@TARGET_CROSS at gcc'
+cpp = '@TARGET_CROSS at g++'
+ar = '@TARGET_CROSS at ar'
+strip = '@TARGET_CROSS at strip'
+pkgconfig = '@HOST_DIR@/usr/bin/pkg-config'
+
+[properties]
+c_args = [@TARGET_CFLAGS@]
+c_link_args = [@TARGET_LDFLAGS@]
+cpp_args = [@TARGET_CXXFLAGS@]
+cpp_link_args = [@TARGET_LDFLAGS@]
+
+[host_machine]
+system = 'linux'
+cpu_family ='@TARGET_ARCH@'
+cpu = '@TARGET_CPU@'
+endian = '@TARGET_ENDIAN@'
package/meson/meson.hash new file +3 -0
new file mode 100644
index 0000000000..412c10eb2f
@@ -0,0 +1,3 @@
+# Locally calculated after checking pgp signature
+# https://github.com/mesonbuild/meson/releases/download/0.43.0/meson-0.43.0.tar.gz.asc
+sha256 c513eca90e0d70bf14cd1eaafea2fa91cf40a73326a7ff61f08a005048057340  meson-0.43.0.tar.gz
package/meson/meson.mk new file +35 -0
new file mode 100644
index 0000000000..55ce84da07
@@ -0,0 +1,35 @@
+################################################################################
+#
+# meson
+#
+################################################################################
+
+MESON_VERSION = 0.43.0
+MESON_SITE = https://github.com/mesonbuild/meson/releases/download/$(MESON_VERSION)
+MESON_LICENSE = Apache-2.0
+MESON_LICENSE_FILES = COPYING
+MESON_SETUP_TYPE = setuptools
+
+HOST_MESON_DEPENDENCIES = host-ninja
+HOST_MESON_NEEDS_HOST_PYTHON = python3
+
+HOST_MESON_TARGET_ENDIAN = $(call LOWERCASE,$(BR2_ENDIAN))
+HOST_MESON_TARGET_CPU = $(call qstrip,$(BR2_GCC_TARGET_CPU))
+
+define HOST_MESON_INSTALL_CROSS_CONF
+	mkdir -p $(HOST_DIR)/etc/meson
+	sed -e "s%@TARGET_CROSS@%$(TARGET_CROSS)%g" \
+	    -e "s%@TARGET_ARCH@%$(ARCH)%g" \
+	    -e "s%@TARGET_CPU@%$(HOST_MESON_TARGET_CPU)%g" \
+	    -e "s%@TARGET_ENDIAN@%$(HOST_MESON_TARGET_ENDIAN)%g" \
+	    -e "s%@TARGET_CFLAGS@%`printf '"%s", ' $(TARGET_CFLAGS)`%g" \
+	    -e "s%@TARGET_LDFLAGS@%`printf '"%s", ' $(TARGET_LDFLAGS)`%g" \
+	    -e "s%@TARGET_CXXFLAGS@%`printf '"%s", ' $(TARGET_CXXFLAGS)`%g" \
+	    -e "s%@HOST_DIR@%$(HOST_DIR)%g" \
+	    $(HOST_MESON_PKGDIR)/cross-compilation.conf.in \
+	    > $(HOST_DIR)/etc/meson/cross-compilation.conf
+endef
+
+HOST_MESON_POST_INSTALL_HOOKS += HOST_MESON_INSTALL_CROSS_CONF
+
+$(eval $(host-python-package))
Signature · 1 line
2.13.6
#2 lore raw

PATCH v4 1/2 meson: new package

Quoted 7 lines · Eric Le Bihan

This new package provides the host variant of the Meson Build System, an open source build system meant to be both extremely fast, and as user friendly as possible.

More precisely, Meson creates configuration files for the Ninja build system.

Quoted 6 lines

Besides building Meson, it generates a configuration file ("$(HOST_DIR)/etc/meson/cross-compilation.conf") to be used when cross-compiling a Meson-based project.

Quoted 95 lines
---
 package/meson/cross-compilation.conf.in | 23 ++++++++++++++++++++++
 package/meson/meson.hash                |  3 +++
 package/meson/meson.mk                  | 35 +++++++++++++++++++++++++++++++++
 3 files changed, 61 insertions(+)
 create mode 100644 package/meson/cross-compilation.conf.in
 create mode 100644 package/meson/meson.hash
 create mode 100644 package/meson/meson.mk
package/meson/cross-compilation.conf.in new file +23 -0
new file mode 100644
index 0000000000..0eec74087b
@@ -0,0 +1,23 @@
+# Note: Buildroot's and Meson's terminologies differ about the meaning
+# of 'build', 'host' and 'target':
+# - Buildroot's 'host' is Meson's 'build'
+# - Buildroot's 'target' is Meson's 'host'
+
+[binaries]
+c = '@TARGET_CROSS at gcc'
+cpp = '@TARGET_CROSS at g++'
+ar = '@TARGET_CROSS at ar'
+strip = '@TARGET_CROSS at strip'
+pkgconfig = '@HOST_DIR@/usr/bin/pkg-config'
+
+[properties]
+c_args = [@TARGET_CFLAGS@]
+c_link_args = [@TARGET_LDFLAGS@]
+cpp_args = [@TARGET_CXXFLAGS@]
+cpp_link_args = [@TARGET_LDFLAGS@]
+
+[host_machine]
+system = 'linux'
+cpu_family ='@TARGET_ARCH@'
+cpu = '@TARGET_CPU@'
+endian = '@TARGET_ENDIAN@'
package/meson/meson.hash new file +3 -0
new file mode 100644
index 0000000000..412c10eb2f
@@ -0,0 +1,3 @@
+# Locally calculated after checking pgp signature
+# https://github.com/mesonbuild/meson/releases/download/0.43.0/meson-0.43.0.tar.gz.asc
+sha256 c513eca90e0d70bf14cd1eaafea2fa91cf40a73326a7ff61f08a005048057340  meson-0.43.0.tar.gz
package/meson/meson.mk new file +35 -1
new file mode 100644
index 0000000000..55ce84da07
@@ -0,0 +1,35 @@
+################################################################################
+#
+# meson
+#
+################################################################################
+
+MESON_VERSION = 0.43.0
+MESON_SITE = https://github.com/mesonbuild/meson/releases/download/$(MESON_VERSION)
+MESON_LICENSE = Apache-2.0
+MESON_LICENSE_FILES = COPYING
+MESON_SETUP_TYPE = setuptools
+
+HOST_MESON_DEPENDENCIES = host-ninja
+HOST_MESON_NEEDS_HOST_PYTHON = python3
+
+HOST_MESON_TARGET_ENDIAN = $(call LOWERCASE,$(BR2_ENDIAN))
+HOST_MESON_TARGET_CPU = $(call qstrip,$(BR2_GCC_TARGET_CPU))
+
+define HOST_MESON_INSTALL_CROSS_CONF
+       mkdir -p $(HOST_DIR)/etc/meson
+       sed -e "s%@TARGET_CROSS@%$(TARGET_CROSS)%g" \
+           -e "s%@TARGET_ARCH@%$(ARCH)%g" \
+           -e "s%@TARGET_CPU@%$(HOST_MESON_TARGET_CPU)%g" \
+           -e "s%@TARGET_ENDIAN@%$(HOST_MESON_TARGET_ENDIAN)%g" \
+           -e "s%@TARGET_CFLAGS@%`printf '"%s", ' $(TARGET_CFLAGS)`%g" \
+           -e "s%@TARGET_LDFLAGS@%`printf '"%s", ' $(TARGET_LDFLAGS)`%g" \
+           -e "s%@TARGET_CXXFLAGS@%`printf '"%s", ' $(TARGET_CXXFLAGS)`%g" \
+           -e "s%@HOST_DIR@%$(HOST_DIR)%g" \
+           $(HOST_MESON_PKGDIR)/cross-compilation.conf.in \
+           > $(HOST_DIR)/etc/meson/cross-compilation.conf
+endef
+
+HOST_MESON_POST_INSTALL_HOOKS += HOST_MESON_INSTALL_CROSS_CONF
+
+$(eval $(host-python-package))
--

2.13.6

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

#3 lore raw

PATCH v4 1/2 meson: new package

In reply to Eric Le Bihan

Hello,

Quoted 13 lines · Eric Le Bihan

This new package provides the host variant of the Meson Build System, an open source build system meant to be both extremely fast, and as user friendly as possible.

More precisely, Meson creates configuration files for the Ninja build system.

Besides building Meson, it generates a configuration file ("$(HOST_DIR)/etc/meson/cross-compilation.conf") to be used when cross-compiling a Meson-based project.

Quoted 8 lines
---
 package/meson/cross-compilation.conf.in | 23 ++++++++++++++++++++++
 package/meson/meson.hash                |  3 +++
 package/meson/meson.mk                  | 35 +++++++++++++++++++++++++++++++++
 3 files changed, 61 insertions(+)
 create mode 100644 package/meson/cross-compilation.conf.in
 create mode 100644 package/meson/meson.hash
 create mode 100644 package/meson/meson.mk

Applied to master after adding an entry to the DEVELOPERS file. It would be nice to quickly have a package that uses this, as right now host-meson is not used anywhere.

Thanks a lot!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#4 lore raw

PATCH v4 2/2 docs/manual: document meson-based packages

In reply to Eric Le Bihan

Add instructions for adding a package which uses the Meson build system.

---
 docs/manual/adding-packages-meson.txt | 101 ++++++++++++++++++++++++++++++++++
 docs/manual/adding-packages.txt       |   2 +
 2 files changed, 103 insertions(+)
 create mode 100644 docs/manual/adding-packages-meson.txt
docs/manual/adding-packages-meson.txt new file +101 -0
new file mode 100644
index 0000000000..65a0f6a962
@@ -0,0 +1,101 @@
+// -*- mode:doc; -*-
+// vim: set syntax=asciidoc:
+
+=== Integration of Meson-based packages
+
+[[meson-package-tutorial]]
+
+==== +meson-package+ tutorial
+
+http://mesonbuild.com[Meson] is an open source build system meant to be both
+extremely fast, and, even more importantly, as user friendly as possible.
+
+Buildroot does not (yet) provide a dedicated package infrastructure for
+meson-based packages. So, we will explain how to write a +.mk+ file for such a
+package. Let's start with an example:
+
+------------------------------
+01: ################################################################################
+02: #
+03: # foo
+04: #
+05: ################################################################################
+06:
+07: FOO_VERSION = 1.0
+08: FOO_SOURCE = foo-$(FOO_VERSION).tar.gz
+09: FOO_SITE = http://www.foosoftware.org/download
+10: FOO_LICENSE = GPLv3+
+11: FOO_LICENSE_FILES = COPYING
+12: FOO_INSTALL_STAGING = YES
+13:
+14: FOO_DEPENDENCIES = host-meson host-pkgconf bar
+15:
+16: FOO_CONF_OPTS += \
+17: 	--prefix=/usr \
+18: 	--buildtype $(if $(BR2_ENABLE_DEBUG),debug,release) \
+19: 	--cross-file $(HOST_DIR)/etc/meson/cross-compilation.conf
+20:
+21: FOO_NINJA_OPTS = $(if $(VERBOSE),-v)
+22:
+23: ifeq ($(BR2_PACKAGE_BAZ),y)
+24: FOO_CONF_OPTS += -Dbaz
+25: endif
+26:
+27: define FOO_CONFIGURE_CMDS
+28: 	rm -rf $(@D)/build
+29: 	mkdir -p $(@D)/build
+30: 	$(TARGET_MAKE_ENV) meson $(FOO_CONF_OPTS) $(@D) $(@D)/build
+31: endef
+32:
+33: define FOO_BUILD_CMDS
+34: 	$(TARGET_MAKE_ENV) ninja $(FOO_NINJA_OPTS) -C $(@D)/build
+35: endef
+36:
+37: define FOO_INSTALL_TARGET_CMDS
+38: 	$(TARGET_MAKE_ENV) DESTDIR=$(TARGET_DIR) ninja $(FOO_NINJA_OPTS) \
+39: 		-C $(@D)/build install
+40: endef
+41:
+42: define FOO_INSTALL_STAGING_CMDS
+43: 	$(TARGET_MAKE_ENV) DESTDIR=$(STAGING_DIR) ninja $(FOO_NINJA_OPTS) \
+44: 		-C $(@D)/build install
+45: endef
+46:
+47: $(eval $(generic-package))
+--------------------------------
+
+The Makefile starts with the definition of the standard variables for package
+declaration (lines 7 to 11).
+
+As seen in line 47, it is based on the
+xref:generic-package-tutorial[+generic-package+ infrastructure]. So, it defines
+the variables required by this particular infrastructure, where Meson and its
+companion tool, Ninja, are invoked:
+
+* +FOO_CONFIGURE_CMDS+: the build directory required by Meson is created, and
+  Meson is invoked to generate the Ninja build file. The options required to
+  configure the cross-compilation of the package are passed via
+  +FOO_CONF_OPTS+.
+
+* +FOO_BUILD_CMDS+: Ninja is invoked to perform the build.
+
+* +FOO_INSTALL_TARGET_CMDS+: Ninja is invoked to install the files generated
+  during the build step in the target directory.
+
+* +FOO_INSTALL_STAGING_CMDS+: Ninja is invoked to install the files generated
+  during the build step in the staging directory, as +FOO_INSTALL_STAGING+ is
+  set to "YES".
+
+In order to have Meson available for the build, +FOO_DEPENDENCIES+ needs to
+contain +host-meson+. In the example, +host-pkgconf+ and +bar+ are also
+declared as dependencies because the Meson build file of +foo+ uses `pkg-config`
+to determine the compilation flags and libraries of package +bar+.
+
+If the "baz" package is selected, then support for the "baz" feature in "foo"
+is activated by adding +-Dbaz+ to +FOO_CONF_OPTS+, as specified in the
++meson_options.txt+ file in "foo" source tree.
+
+To sum it up, to add a new meson-based package, the Makefile example can be
+copied verbatim then edited to replace all occurences of +FOO+ with the
+uppercase name of the new package and update the values of the standard
+variables.
docs/manual/adding-packages.txt +2 -0
index d577ff030e..e542124cf9 100644
@@ -34,6 +34,8 @@ include::adding-packages-rebar.txt[]
 
 include::adding-packages-waf.txt[]
 
+include::adding-packages-meson.txt[]
+
 include::adding-packages-kernel-module.txt[]
 
 include::adding-packages-asciidoc.txt[]
Signature · 1 line
2.13.6
#5 lore raw

PATCH v4 2/2 docs/manual: document meson-based packages

Quoted 4 lines · Eric Le Bihan

Add instructions for adding a package which uses the Meson build system.

Quoted 133 lines
---
 docs/manual/adding-packages-meson.txt | 101 ++++++++++++++++++++++++++++++++++
 docs/manual/adding-packages.txt       |   2 +
 2 files changed, 103 insertions(+)
 create mode 100644 docs/manual/adding-packages-meson.txt
docs/manual/adding-packages-meson.txt new file +101 -0
new file mode 100644
index 0000000000..65a0f6a962
@@ -0,0 +1,101 @@
+// -*- mode:doc; -*-
+// vim: set syntax=asciidoc:
+
+=== Integration of Meson-based packages
+
+[[meson-package-tutorial]]
+
+==== +meson-package+ tutorial
+
+http://mesonbuild.com[Meson] is an open source build system meant to be both
+extremely fast, and, even more importantly, as user friendly as possible.
+
+Buildroot does not (yet) provide a dedicated package infrastructure for
+meson-based packages. So, we will explain how to write a +.mk+ file for such a
+package. Let's start with an example:
+
+------------------------------
+01: ################################################################################
+02: #
+03: # foo
+04: #
+05: ################################################################################
+06:
+07: FOO_VERSION = 1.0
+08: FOO_SOURCE = foo-$(FOO_VERSION).tar.gz
+09: FOO_SITE = http://www.foosoftware.org/download
+10: FOO_LICENSE = GPLv3+
+11: FOO_LICENSE_FILES = COPYING
+12: FOO_INSTALL_STAGING = YES
+13:
+14: FOO_DEPENDENCIES = host-meson host-pkgconf bar
+15:
+16: FOO_CONF_OPTS += \
+17:    --prefix=/usr \
+18:    --buildtype $(if $(BR2_ENABLE_DEBUG),debug,release) \
+19:    --cross-file $(HOST_DIR)/etc/meson/cross-compilation.conf
+20:
+21: FOO_NINJA_OPTS = $(if $(VERBOSE),-v)
+22:
+23: ifeq ($(BR2_PACKAGE_BAZ),y)
+24: FOO_CONF_OPTS += -Dbaz
+25: endif
+26:
+27: define FOO_CONFIGURE_CMDS
+28:    rm -rf $(@D)/build
+29:    mkdir -p $(@D)/build
+30:    $(TARGET_MAKE_ENV) meson $(FOO_CONF_OPTS) $(@D) $(@D)/build
+31: endef
+32:
+33: define FOO_BUILD_CMDS
+34:    $(TARGET_MAKE_ENV) ninja $(FOO_NINJA_OPTS) -C $(@D)/build
+35: endef
+36:
+37: define FOO_INSTALL_TARGET_CMDS
+38:    $(TARGET_MAKE_ENV) DESTDIR=$(TARGET_DIR) ninja $(FOO_NINJA_OPTS) \
+39:            -C $(@D)/build install
+40: endef
+41:
+42: define FOO_INSTALL_STAGING_CMDS
+43:    $(TARGET_MAKE_ENV) DESTDIR=$(STAGING_DIR) ninja $(FOO_NINJA_OPTS) \
+44:            -C $(@D)/build install
+45: endef
+46:
+47: $(eval $(generic-package))
+--------------------------------
+
+The Makefile starts with the definition of the standard variables for package
+declaration (lines 7 to 11).
+
+As seen in line 47, it is based on the
+xref:generic-package-tutorial[+generic-package+ infrastructure]. So, it defines
+the variables required by this particular infrastructure, where Meson and its
+companion tool, Ninja, are invoked:
+
+* +FOO_CONFIGURE_CMDS+: the build directory required by Meson is created, and
+  Meson is invoked to generate the Ninja build file. The options required to
+  configure the cross-compilation of the package are passed via
+  +FOO_CONF_OPTS+.
+
+* +FOO_BUILD_CMDS+: Ninja is invoked to perform the build.
+
+* +FOO_INSTALL_TARGET_CMDS+: Ninja is invoked to install the files generated
+  during the build step in the target directory.
+
+* +FOO_INSTALL_STAGING_CMDS+: Ninja is invoked to install the files generated
+  during the build step in the staging directory, as +FOO_INSTALL_STAGING+ is
+  set to "YES".
+
+In order to have Meson available for the build, +FOO_DEPENDENCIES+ needs to
+contain +host-meson+. In the example, +host-pkgconf+ and +bar+ are also
+declared as dependencies because the Meson build file of +foo+ uses `pkg-config`
+to determine the compilation flags and libraries of package +bar+.
+
+If the "baz" package is selected, then support for the "baz" feature in "foo"
+is activated by adding +-Dbaz+ to +FOO_CONF_OPTS+, as specified in the
++meson_options.txt+ file in "foo" source tree.
+
+To sum it up, to add a new meson-based package, the Makefile example can be
+copied verbatim then edited to replace all occurences of +FOO+ with the
+uppercase name of the new package and update the values of the standard
+variables.
docs/manual/adding-packages.txt +2 -1
index d577ff030e..e542124cf9 100644
@@ -34,6 +34,8 @@ include::adding-packages-rebar.txt[]
 
 include::adding-packages-waf.txt[]
 
+include::adding-packages-meson.txt[]
+
 include::adding-packages-kernel-module.txt[]
 
 include::adding-packages-asciidoc.txt[]
--

2.13.6

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

#6 lore raw

PATCH v4 2/2 docs/manual: document meson-based packages

In reply to Eric Le Bihan

Hello,

Quoted 4 lines · Eric Le Bihan

Add instructions for adding a package which uses the Meson build system.

I've applied to the master branch, after adding an entry in the DEVELOPERS file. I also have one comment/question below.

Quoted 3 lines

+27: define FOO_CONFIGURE_CMDS
+28: rm -rf $(@D)/build
+29: mkdir -p $(@D)/build

Is this really needed? It's not really nice to have to do this. But perhaps meson really insists in having an empty build directory ?

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#7 lore raw

PATCH v4 2/2 docs/manual: document meson-based packages

Thomas, All,

On 2017-12-28 23:22 +0100, Thomas Petazzoni spake thusly:

Quoted 10 lines · Eric Le Bihan
Quoted 4 lines

Add instructions for adding a package which uses the Meson build system.

I've applied to the master branch, after adding an entry in the DEVELOPERS file. I also have one comment/question below.

Quoted 6 lines
Quoted 3 lines

+27: define FOO_CONFIGURE_CMDS
+28: rm -rf $(@D)/build
+29: mkdir -p $(@D)/build

Is this really needed? It's not really nice to have to do this. But perhaps meson really insists in having an empty build directory ?

IIRC, I made the same comment in a previous iteration of this patch, and yes, meson really insists on having an empty build directory, otherwise it fails loudly... :-/

This should have been part of the commit log *and* should be clearly stated in the manual that this is required.

Regards,
Yann E. MORIN.

Quoted 11 lines

Thanks!

Thomas

Signature · 7 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#8 lore raw

PATCH v4 2/2 docs/manual: document meson-based packages

Hello,

Quoted 6 lines · Yann E. MORIN

IIRC, I made the same comment in a previous iteration of this patch, and yes, meson really insists on having an empty build directory, otherwise it fails loudly... :-/

This should have been part of the commit log *and* should be clearly stated in the manual that this is required.

Follow-up patches welcome :-)

meson support has been sitting in patchwork for a while, and nobody made this comment. It was time to apply it, and it is always time to apply follow-up patches :-)

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#9 lore raw

PATCH v4 2/2 docs/manual: document meson-based packages

On 2017-12-28 23:35 +0100, Thomas Petazzoni spake thusly:

Quoted 8 lines

Hello,

Quoted 4 lines · Yann E. MORIN

IIRC, I made the same comment in a previous iteration of this patch, and yes, meson really insists on having an empty build directory, otherwise it fails loudly... :-/

Quoted 7 lines
Quoted 2 lines

This should have been part of the commit log *and* should be clearly stated in the manual that this is required.

Follow-up patches welcome :-)

meson support has been sitting in patchwork for a while, and nobody made this comment.

Hmm... ;-)
http://lists.busybox.net/pipermail/buildroot/2017-October/203982.html

Indeed, I did not explicitly asked for the explanations to be added in the commit log, because I expect that to be the case when such a comment is made...

;-)

Regards,
Yann E. MORIN.

Quoted 10 lines

It was time to apply it, and it is always time to
apply follow-up patches :-)

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#10 lore raw

v4 cover Add support for Meson build

In reply to Eric Le Bihan
Quoted 30 lines · Eric Le Bihan

This small patch series provides a new build system: Meson.

v4 -> v3:

- update documentation with verbosity, configuration and staging installation details.
- update cross-compilation configuration creation to take into account $(TARGET_CFLAGS) and friends.
- add reference to release signature in hash file.
- re-use explicit tarball release instead of github helper.
- various stylistic changes (suggested by Arnout).

v2 -> v3:

- bump version to 0.43.0
- re-use github helper
- reword comments in cross-compilation.conf.in
- use $(FOO_CONF_OPTS) in package documentation

v1 -> v2: (J?rg Krause)

- bump to version 0.41.2
- use explicit tarball release instead of github helper
- use explicit sed
- pass BR2_GCC_TARGET_CPU to cross file

Eric Le Bihan (2):
meson: new package
docs/manual: document meson-based packages

Quoted 10 lines
 docs/manual/adding-packages-meson.txt   | 101 ++++++++++++++++++++++++++++++++
 docs/manual/adding-packages.txt         |   2 +
 package/meson/cross-compilation.conf.in |  23 ++++++++
 package/meson/meson.hash                |   3 +
 package/meson/meson.mk                  |  35 +++++++++++
 5 files changed, 164 insertions(+)
 create mode 100644 docs/manual/adding-packages-meson.txt
 create mode 100644 package/meson/cross-compilation.conf.in
 create mode 100644 package/meson/meson.hash
 create mode 100644 package/meson/meson.mk

I could successfully test meson build system using libinput package.

Yegor