* [Buildroot] [PATCH 0/2] Ninja, Meson: new build systems @ 2016-06-04 13:34 Eric Le Bihan 2016-06-04 13:34 ` [Buildroot] [PATCH 1/2] ninja: new package Eric Le Bihan 2016-06-04 13:34 ` [Buildroot] [PATCH 2/2] python-meson: " Eric Le Bihan 0 siblings, 2 replies; 10+ messages in thread From: Eric Le Bihan @ 2016-06-04 13:34 UTC (permalink / raw) To: buildroot This small patch series provides two new build systems: Ninja and Meson. Eric Le Bihan (2): ninja: new package python-meson: new package package/Config.in | 2 + package/ninja/Config.in | 11 ++++++ package/ninja/ninja.hash | 1 + package/ninja/ninja.mk | 39 ++++++++++++++++++ package/python-meson/Config.in | 9 +++++ package/python-meson/cross-compilation.conf.in | 19 +++++++++ package/python-meson/meson-exe-wrapper.in | 3 ++ package/python-meson/python-meson.hash | 1 + package/python-meson/python-meson.mk | 55 ++++++++++++++++++++++++++ 9 files changed, 140 insertions(+) create mode 100644 package/ninja/Config.in create mode 100644 package/ninja/ninja.hash create mode 100644 package/ninja/ninja.mk create mode 100644 package/python-meson/Config.in create mode 100644 package/python-meson/cross-compilation.conf.in create mode 100755 package/python-meson/meson-exe-wrapper.in create mode 100644 package/python-meson/python-meson.hash create mode 100644 package/python-meson/python-meson.mk -- 2.4.11 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 1/2] ninja: new package 2016-06-04 13:34 [Buildroot] [PATCH 0/2] Ninja, Meson: new build systems Eric Le Bihan @ 2016-06-04 13:34 ` Eric Le Bihan 2016-06-04 15:50 ` Bernd Kuhls 2016-06-08 20:16 ` Thomas Petazzoni 2016-06-04 13:34 ` [Buildroot] [PATCH 2/2] python-meson: " Eric Le Bihan 1 sibling, 2 replies; 10+ messages in thread From: Eric Le Bihan @ 2016-06-04 13:34 UTC (permalink / raw) To: buildroot This new package provides Ninja, a small build system with a focus on speed. Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr> --- package/Config.in | 1 + package/ninja/Config.in | 11 +++++++++++ package/ninja/ninja.hash | 1 + package/ninja/ninja.mk | 39 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 52 insertions(+) create mode 100644 package/ninja/Config.in create mode 100644 package/ninja/ninja.hash create mode 100644 package/ninja/ninja.mk diff --git a/package/Config.in b/package/Config.in index 9f6e0d9..4146bf9 100644 --- a/package/Config.in +++ b/package/Config.in @@ -148,6 +148,7 @@ endif source "package/jq/Config.in" source "package/libtool/Config.in" source "package/make/Config.in" + source "package/ninja/Config.in" if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/patch/Config.in" endif diff --git a/package/ninja/Config.in b/package/ninja/Config.in new file mode 100644 index 0000000..a8eba2e --- /dev/null +++ b/package/ninja/Config.in @@ -0,0 +1,11 @@ +config BR2_PACKAGE_NINJA + bool "ninja" + depends on BR2_INSTALL_LIBSTDCPP + help + Ninja is a small build system with a focus on speed. + + https://ninja-build.org/ + +comment "ninja needs a toolchain w/ C++" + depends on !BR2_INSTALL_LIBSTDCPP + diff --git a/package/ninja/ninja.hash b/package/ninja/ninja.hash new file mode 100644 index 0000000..e5908f3 --- /dev/null +++ b/package/ninja/ninja.hash @@ -0,0 +1 @@ +none xxx ninja-v1.7.1.tar.gz diff --git a/package/ninja/ninja.mk b/package/ninja/ninja.mk new file mode 100644 index 0000000..ae9251c --- /dev/null +++ b/package/ninja/ninja.mk @@ -0,0 +1,39 @@ +################################################################################ +# +# ninja +# +################################################################################ + +NINJA_VERSION = v1.7.1 +NINJA_SITE = $(call github,ninja-build,ninja,$(NINJA_VERSION)) +NINJA_LICENSE = Apache-2.0 +NINJA_LICENSE_FILES = COPYING + +NINJA_DEPENDENCIES = host-ninja + +NINJA_MAKE_OPTS = CXX="$(TARGET_CXX)" AR="$(TARGET_AR)" + +define NINJA_CONFIGURE_CMDS + (cd $(@D); $(NINJA_MAKE_OPTS) ./configure.py) +endef + +define NINJA_BUILD_CMDS + (cd $(@D); $(HOST_DIR)/usr/bin/ninja) +endef + +define NINJA_INSTALL_TARGET_CMDS + $(INSTALL) -m 0755 $(@D)/ninja $(TARGET_DIR)/usr/bin/ninja +endef + +HOST_NINJA_DEPENDENCIES = host-python + +define HOST_NINJA_BUILD_CMDS + (cd $(@D); ./configure.py --bootstrap) +endef + +define HOST_NINJA_INSTALL_CMDS + $(INSTALL) -m 0755 $(@D)/ninja $(HOST_DIR)/usr/bin/ninja +endef + +$(eval $(generic-package)) +$(eval $(host-generic-package)) -- 2.4.11 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 1/2] ninja: new package 2016-06-04 13:34 ` [Buildroot] [PATCH 1/2] ninja: new package Eric Le Bihan @ 2016-06-04 15:50 ` Bernd Kuhls 2016-06-04 18:03 ` Eric Le Bihan 2016-06-08 20:16 ` Thomas Petazzoni 1 sibling, 1 reply; 10+ messages in thread From: Bernd Kuhls @ 2016-06-04 15:50 UTC (permalink / raw) To: buildroot Hi, please try to add support for python3: > +HOST_NINJA_DEPENDENCIES = host-python HOST_NINJA_DEPENDENCIES = $(if $(BR2_PACKAGE_PYTHON3),host-python3,host-python) > +define HOST_NINJA_BUILD_CMDS > + (cd $(@D); ./configure.py --bootstrap) > +endef define HOST_NINJA_BUILD_CMDS (cd $(@D); ./configure.py --bootstrap --verbose --with-python=$(HOST_DIR)/usr/bin/python) endef What is the purpose of having ninja on the target machine? Regards, Bernd ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 1/2] ninja: new package 2016-06-04 15:50 ` Bernd Kuhls @ 2016-06-04 18:03 ` Eric Le Bihan 2016-06-08 20:17 ` Thomas Petazzoni 0 siblings, 1 reply; 10+ messages in thread From: Eric Le Bihan @ 2016-06-04 18:03 UTC (permalink / raw) To: buildroot Hi! Le Sat, 04 Jun 2016 17:50:34 +0200, Bernd Kuhls <bernd.kuhls@t-online.de> a ?crit : > please try to add support for python3: OK, will do! > What is the purpose of having ninja on the target machine? Ninja is used by Meson, which I also provide for the target. It is true that the "Development tools" section now only lists "make" as build system, since autotools have been removed. I do not know if Buildroot users frequently need build systems on their target, but I provided it anyway. If the policy is to provide build system packages only for the host, I'm fine with it. Thanks for the comments. -- ELB ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 1/2] ninja: new package 2016-06-04 18:03 ` Eric Le Bihan @ 2016-06-08 20:17 ` Thomas Petazzoni 0 siblings, 0 replies; 10+ messages in thread From: Thomas Petazzoni @ 2016-06-08 20:17 UTC (permalink / raw) To: buildroot Hello, On Sat, 4 Jun 2016 20:03:01 +0200, Eric Le Bihan wrote: > Ninja is used by Meson, which I also provide for the target. It is true > that the "Development tools" section now only lists "make" as build > system, since autotools have been removed. I do not know if Buildroot > users frequently need build systems on their target, but I provided it > anyway. "make" was only kept in the development tools because it was needed to be able to *run* the uClibc test suite on the target. This has been changed a few days ago, so I believe we don't really need "make" anymore as a target package. > If the policy is to provide build system packages only for the host, > I'm fine with it. Yes, please provide them only as host packages. However, do you have a target package that would use them? Without this, the host packages are orphan and never tested by anything, which isn't good. So could you submit ninja/python-meson together with at least one target package that uses them? Thanks! Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 1/2] ninja: new package 2016-06-04 13:34 ` [Buildroot] [PATCH 1/2] ninja: new package Eric Le Bihan 2016-06-04 15:50 ` Bernd Kuhls @ 2016-06-08 20:16 ` Thomas Petazzoni 1 sibling, 0 replies; 10+ messages in thread From: Thomas Petazzoni @ 2016-06-08 20:16 UTC (permalink / raw) To: buildroot Hello, On Sat, 4 Jun 2016 15:34:02 +0200, Eric Le Bihan wrote: > diff --git a/package/ninja/ninja.hash b/package/ninja/ninja.hash > new file mode 100644 > index 0000000..e5908f3 > --- /dev/null > +++ b/package/ninja/ninja.hash > @@ -0,0 +1 @@ > +none xxx ninja-v1.7.1.tar.gz Please add a locally calculated hash here. Tarballs generated by github are now stable, so we can add hashes. Thanks, Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 2/2] python-meson: new package 2016-06-04 13:34 [Buildroot] [PATCH 0/2] Ninja, Meson: new build systems Eric Le Bihan 2016-06-04 13:34 ` [Buildroot] [PATCH 1/2] ninja: new package Eric Le Bihan @ 2016-06-04 13:34 ` Eric Le Bihan 2016-06-08 20:22 ` Thomas Petazzoni 1 sibling, 1 reply; 10+ messages in thread From: Eric Le Bihan @ 2016-06-04 13:34 UTC (permalink / raw) To: buildroot This new package provides 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. The host variant is also provided, which, besides building Meson, generates a cross-compilation configuration file: '$(HOST_DIR)/etc/meson/cross-compilation.conf'. To be able to perform checks when cross-compiling, the host variant depends on host-qemu. To cross-compile a Meson-based project for the target, its package should: - depend on host-python-meson - invoke the host variant of Meson with the *--cross-file=$(HOST_DIR)/etc/meson/cross-compilation.conf* option. - invoke host variant of Ninja to perform the actual build. Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr> --- package/Config.in | 1 + package/python-meson/Config.in | 9 +++++ package/python-meson/cross-compilation.conf.in | 19 +++++++++ package/python-meson/meson-exe-wrapper.in | 3 ++ package/python-meson/python-meson.hash | 1 + package/python-meson/python-meson.mk | 55 ++++++++++++++++++++++++++ 6 files changed, 88 insertions(+) create mode 100644 package/python-meson/Config.in create mode 100644 package/python-meson/cross-compilation.conf.in create mode 100755 package/python-meson/meson-exe-wrapper.in create mode 100644 package/python-meson/python-meson.hash create mode 100644 package/python-meson/python-meson.mk diff --git a/package/Config.in b/package/Config.in index 4146bf9..b81954a 100644 --- a/package/Config.in +++ b/package/Config.in @@ -688,6 +688,7 @@ menu "External python modules" source "package/python-markdown/Config.in" source "package/python-markupsafe/Config.in" source "package/python-meld3/Config.in" + source "package/python-meson/Config.in" source "package/python-mistune/Config.in" source "package/python-msgpack/Config.in" source "package/python-netaddr/Config.in" diff --git a/package/python-meson/Config.in b/package/python-meson/Config.in new file mode 100644 index 0000000..b4e0529 --- /dev/null +++ b/package/python-meson/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_PYTHON_MESON + bool "python-meson" + depends on BR2_PACKAGE_PYTHON3 + select BR2_PACKAGE_NINJA + help + Meson is an open source build system meant to be both extremely + fast, and, even more importantly, as user friendly as possible. + + http://mesonbuild.com diff --git a/package/python-meson/cross-compilation.conf.in b/package/python-meson/cross-compilation.conf.in new file mode 100644 index 0000000..b3da294 --- /dev/null +++ b/package/python-meson/cross-compilation.conf.in @@ -0,0 +1,19 @@ +[host_machine] +system = 'linux' +cpu_family = 'x86' +cpu = 'generic' +endian = 'little' + +[target_machine] +system = 'linux' +cpu_family ='@TARGET_ARCH@' +cpu = 'generic' +endian = '@TARGET_ENDIAN@' + +[binaries] +c = '@TARGET_CROSS at gcc' +cpp = '@TARGET_CROSS at g++' +ar = '@TARGET_CROSS at ar' +strip = '@TARGET_CROSS at strip' +exe_wrapper = '@HOST_DIR@/usr/bin/meson-exe-wrapper' +pkgconfig = '@HOST_DIR@/usr/bin/pkg-config' diff --git a/package/python-meson/meson-exe-wrapper.in b/package/python-meson/meson-exe-wrapper.in new file mode 100755 index 0000000..5e4415c --- /dev/null +++ b/package/python-meson/meson-exe-wrapper.in @@ -0,0 +1,3 @@ +#!/bin/sh + + at HOST_DIR@/usr/bin/qemu- at TARGET_ARCH@ -L @TARGET_DIR@ "$@" diff --git a/package/python-meson/python-meson.hash b/package/python-meson/python-meson.hash new file mode 100644 index 0000000..7af56c5 --- /dev/null +++ b/package/python-meson/python-meson.hash @@ -0,0 +1 @@ +none xxx python-meson-0.31.0.tar.gz diff --git a/package/python-meson/python-meson.mk b/package/python-meson/python-meson.mk new file mode 100644 index 0000000..d4ba4dd --- /dev/null +++ b/package/python-meson/python-meson.mk @@ -0,0 +1,55 @@ +################################################################################ +# +# python-meson +# +################################################################################ + +PYTHON_MESON_VERSION = 0.31.0 +PYTHON_MESON_SITE = $(call github,mesonbuild,meson,$(PYTHON_MESON_VERSION)) +PYTHON_MESON_LICENSE = Apache-2.0 +PYTHON_MESON_LICENSE_FILES = COPYING +PYTHON_MESON_SETUP_TYPE = setuptools + +define PYTHON_MESON_REMOVE_GUI_TOOL + rm -f $(TARGET_DIR)/usr/bin/mesongui.py +endef + +PYTHON_MESON_POST_INSTALL_TARGET_HOOKS += PYTHON_MESON_REMOVE_GUI_TOOL + +HOST_PYTHON_MESON_DEPENDENCIES = host-qemu +HOST_PYTHON_MESON_NEEDS_HOST_PYTHON = python3 + +HOST_PYTHON_MESON_TARGET_ARCH = $(call qstrip,$(BR2_ARCH)) +HOST_PYTHON_MESON_TARGET_ENDIAN = $(shell echo $(BR2_ENDIAN) | tr 'A-Z' 'a-z') + +define HOST_PYTHON_MESON_REMOVE_GUI_TOOL + rm -f $(HOST_DIR)/usr/bin/mesongui.py +endef + +define HOST_PYTHON_MESON_INSTALL_CROSS_CONF + $(INSTALL) -D -m 0644 package/python-meson/cross-compilation.conf.in \ + $(HOST_DIR)/etc/meson/cross-compilation.conf + $(SED) 's;@TARGET_CROSS@;$(TARGET_CROSS);g' \ + -e 's;@TARGET_ARCH@;$(HOST_PYTHON_MESON_TARGET_ARCH);g' \ + -e 's;@TARGET_ENDIAN@;$(HOST_PYTHON_MESON_TARGET_ENDIAN);g' \ + -e 's;@HOST_DIR@;$(HOST_DIR);g' \ + $(HOST_DIR)/etc/meson/cross-compilation.conf +endef + +define HOST_PYTHON_MESON_INSTALL_EXE_WRAPPER + $(INSTALL) -D -m 0755 package/python-meson/meson-exe-wrapper.in \ + $(HOST_DIR)/usr/bin/meson-exe-wrapper + $(SED) 's;@TARGET_ARCH@;$(HOST_PYTHON_MESON_TARGET_ARCH);g' \ + -e 's;@HOST_DIR@;$(HOST_DIR);g' \ + -e 's;@TARGET_DIR@;$(TARGET_DIR);g' \ + $(HOST_DIR)/usr/bin/meson-exe-wrapper +endef + +HOST_PYTHON_MESON_POST_INSTALL_HOOKS += \ + HOST_PYTHON_MESON_REMOVE_GUI_TOOL \ + HOST_PYTHON_MESON_INSTALL_CROSS_CONF \ + HOST_PYTHON_MESON_INSTALL_EXE_WRAPPER + + +$(eval $(python-package)) +$(eval $(host-python-package)) -- 2.4.11 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 2/2] python-meson: new package 2016-06-04 13:34 ` [Buildroot] [PATCH 2/2] python-meson: " Eric Le Bihan @ 2016-06-08 20:22 ` Thomas Petazzoni 2016-06-09 17:59 ` Eric Le Bihan 0 siblings, 1 reply; 10+ messages in thread From: Thomas Petazzoni @ 2016-06-08 20:22 UTC (permalink / raw) To: buildroot Hello, On Sat, 4 Jun 2016 15:34:03 +0200, Eric Le Bihan wrote: > This new package provides 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. > > The host variant is also provided, which, besides building Meson, > generates a cross-compilation configuration file: > '$(HOST_DIR)/etc/meson/cross-compilation.conf'. > > To be able to perform checks when cross-compiling, the host variant > depends on host-qemu. > > To cross-compile a Meson-based project for the target, its package > should: > > - depend on host-python-meson > - invoke the host variant of Meson with the > *--cross-file=$(HOST_DIR)/etc/meson/cross-compilation.conf* option. > - invoke host variant of Ninja to perform the actual build. It would probably be good to write this somewhere, as it is quite important to know for users of this build system. But I'm not sure where: you're going to have only a host package, so no Config.in file, and therefore no help text. And I'm not sure where this could be added in the Buildroot manual. > package/Config.in | 1 + > package/python-meson/Config.in | 9 +++++ As discussed, if it's a build system, please add only a host package. > diff --git a/package/python-meson/python-meson.hash b/package/python-meson/python-meson.hash > new file mode 100644 > index 0000000..7af56c5 > --- /dev/null > +++ b/package/python-meson/python-meson.hash > @@ -0,0 +1 @@ > +none xxx python-meson-0.31.0.tar.gz Since you're fetching from Github, please add a real hash. > +HOST_PYTHON_MESON_DEPENDENCIES = host-qemu > +HOST_PYTHON_MESON_NEEDS_HOST_PYTHON = python3 > + > +HOST_PYTHON_MESON_TARGET_ARCH = $(call qstrip,$(BR2_ARCH)) You can directly use the $(ARCH) variable, which is defined in the main Makefile. > +HOST_PYTHON_MESON_TARGET_ENDIAN = $(shell echo $(BR2_ENDIAN) | tr 'A-Z' 'a-z') $(call LOWERCASE,$(call qstrip,$(BR2_ENDIAN)) > + > +define HOST_PYTHON_MESON_REMOVE_GUI_TOOL > + rm -f $(HOST_DIR)/usr/bin/mesongui.py > +endef Not sure removing stuff from the host variant is really useful. > + > +define HOST_PYTHON_MESON_INSTALL_CROSS_CONF > + $(INSTALL) -D -m 0644 package/python-meson/cross-compilation.conf.in \ > + $(HOST_DIR)/etc/meson/cross-compilation.conf > + $(SED) 's;@TARGET_CROSS@;$(TARGET_CROSS);g' \ > + -e 's;@TARGET_ARCH@;$(HOST_PYTHON_MESON_TARGET_ARCH);g' \ > + -e 's;@TARGET_ENDIAN@;$(HOST_PYTHON_MESON_TARGET_ENDIAN);g' \ > + -e 's;@HOST_DIR@;$(HOST_DIR);g' \ > + $(HOST_DIR)/etc/meson/cross-compilation.conf > +endef > + > +define HOST_PYTHON_MESON_INSTALL_EXE_WRAPPER > + $(INSTALL) -D -m 0755 package/python-meson/meson-exe-wrapper.in \ > + $(HOST_DIR)/usr/bin/meson-exe-wrapper > + $(SED) 's;@TARGET_ARCH@;$(HOST_PYTHON_MESON_TARGET_ARCH);g' \ > + -e 's;@HOST_DIR@;$(HOST_DIR);g' \ > + -e 's;@TARGET_DIR@;$(TARGET_DIR);g' \ > + $(HOST_DIR)/usr/bin/meson-exe-wrapper > +endef > + > +HOST_PYTHON_MESON_POST_INSTALL_HOOKS += \ > + HOST_PYTHON_MESON_REMOVE_GUI_TOOL \ > + HOST_PYTHON_MESON_INSTALL_CROSS_CONF \ > + HOST_PYTHON_MESON_INSTALL_EXE_WRAPPER > + > + > +$(eval $(python-package)) > +$(eval $(host-python-package)) Other than that, looks good! Thanks! Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 2/2] python-meson: new package 2016-06-08 20:22 ` Thomas Petazzoni @ 2016-06-09 17:59 ` Eric Le Bihan 2016-06-09 19:28 ` Thomas Petazzoni 0 siblings, 1 reply; 10+ messages in thread From: Eric Le Bihan @ 2016-06-09 17:59 UTC (permalink / raw) To: buildroot Hi! Le Wed, 8 Jun 2016 22:22:50 +0200, Thomas Petazzoni <thomas.petazzoni@free-electrons.com> a ?crit : > > To cross-compile a Meson-based project for the target, its package > > should: > > > > - depend on host-python-meson > > - invoke the host variant of Meson with the > > *--cross-file=$(HOST_DIR)/etc/meson/cross-compilation.conf* > > option. > > - invoke host variant of Ninja to perform the actual build. > > It would probably be good to write this somewhere, as it is quite > important to know for users of this build system. But I'm not sure > where: you're going to have only a host package, so no Config.in file, > and therefore no help text. And I'm not sure where this could be added > in the Buildroot manual. It is true that all the "docs/manual/adding-packages*.txt" files refer to a dedicated infrastructure, whereas what is needed here is an example of Makefile using the generic-package infrastructure. There is an exception to the rule, though: docs/manual/adding-packages-gettext.txt. So, IMHO, a new document named "docs/manual/adding-packages-meson.txt" should fit. However, I could provide a real package infrastructure named "meson-package", but as stated in the discussion about adding support for Cargo [1] (the Rust package manager), to provide such infrastructure, at least one package using it should also be provided (it is sensible to have a working example of the infrastructure). > > package/Config.in | 1 + > > package/python-meson/Config.in | 9 +++++ > > As discussed, if it's a build system, please add only a host package. OK. I'll do the same for Ninja. > > + > > +define HOST_PYTHON_MESON_REMOVE_GUI_TOOL > > + rm -f $(HOST_DIR)/usr/bin/mesongui.py > > +endef > > Not sure removing stuff from the host variant is really useful. This program needs PyQt5, which may not be installed by default by the most popular GNU/Linux distributions. The user may be tempted to use it: the execution will fail and this may result in an unnecessary Buildroot bug report. To avoid this, I chose to remove it. > Other than that, looks good! Thanks for the review. [1] http://lists.busybox.net/pipermail/buildroot/2016-April/158333.html Regards, -- ELB ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 2/2] python-meson: new package 2016-06-09 17:59 ` Eric Le Bihan @ 2016-06-09 19:28 ` Thomas Petazzoni 0 siblings, 0 replies; 10+ messages in thread From: Thomas Petazzoni @ 2016-06-09 19:28 UTC (permalink / raw) To: buildroot Hello Eric, On Thu, 9 Jun 2016 19:59:54 +0200, Eric Le Bihan wrote: > It is true that all the "docs/manual/adding-packages*.txt" files refer > to a dedicated infrastructure, whereas what is needed here is an > example of Makefile using the generic-package infrastructure. There is > an exception to the rule, though: docs/manual/adding-packages-gettext.txt. > > So, IMHO, a new document named "docs/manual/adding-packages-meson.txt" should > fit. Sounds good. > However, I could provide a real package infrastructure named "meson-package", > but as stated in the discussion about adding support for Cargo [1] (the Rust > package manager), to provide such infrastructure, at least one package using > it should also be provided (it is sensible to have a working example of > the infrastructure). I would not say one, but at least 4-5 packages, with a pretty good confidence that more packages would be added later on. > > > + > > > +define HOST_PYTHON_MESON_REMOVE_GUI_TOOL > > > + rm -f $(HOST_DIR)/usr/bin/mesongui.py > > > +endef > > > > Not sure removing stuff from the host variant is really useful. > > This program needs PyQt5, which may not be installed by default by the > most popular GNU/Linux distributions. The user may be tempted to use > it: the execution will fail and this may result in an unnecessary > Buildroot bug report. To avoid this, I chose to remove it. We don't bother doing such cleanup steps for host packages, I really don't think it's worth it. Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2016-06-09 19:28 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-06-04 13:34 [Buildroot] [PATCH 0/2] Ninja, Meson: new build systems Eric Le Bihan 2016-06-04 13:34 ` [Buildroot] [PATCH 1/2] ninja: new package Eric Le Bihan 2016-06-04 15:50 ` Bernd Kuhls 2016-06-04 18:03 ` Eric Le Bihan 2016-06-08 20:17 ` Thomas Petazzoni 2016-06-08 20:16 ` Thomas Petazzoni 2016-06-04 13:34 ` [Buildroot] [PATCH 2/2] python-meson: " Eric Le Bihan 2016-06-08 20:22 ` Thomas Petazzoni 2016-06-09 17:59 ` Eric Le Bihan 2016-06-09 19:28 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox