From 20c1d1b26775bf014e7496d01a50d213489411ac Mon Sep 17 00:00:00 2001 From: "Sascha Kuehndel (InuSasha)" Date: Sun, 25 Aug 2019 13:57:11 +0200 Subject: [PATCH 1/8] mesonbuild: update to 0.51.1 --- packages/python/devel/meson/package.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/python/devel/meson/package.mk b/packages/python/devel/meson/package.mk index 868b287b8e..b66502c1d2 100644 --- a/packages/python/devel/meson/package.mk +++ b/packages/python/devel/meson/package.mk @@ -2,8 +2,8 @@ # Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) PKG_NAME="meson" -PKG_VERSION="0.49.1" -PKG_SHA256="e90c8ee46109d3b9d9a12c76c65811d4a7f7e18503f780eb301866e43d9052cb" +PKG_VERSION="0.51.1" +PKG_SHA256="f27b7a60f339ba66fe4b8f81f0d1072e090a08eabbd6aa287683b2c2b9dd2d82" PKG_LICENSE="Apache" PKG_SITE="http://mesonbuild.com" PKG_URL="https://github.com/mesonbuild/meson/releases/download/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.gz" From 73eef7432fedfaec4c780385dc1f08a305fe2358 Mon Sep 17 00:00:00 2001 From: "Sascha Kuehndel (InuSasha)" Date: Sun, 25 Aug 2019 14:01:32 +0200 Subject: [PATCH 2/8] buildsystem: convert to support mesonbuild >= 0.51.0 - meson needs a host environment for cross-compile - allow setup_toolchain to setup toolchain based on used build-system - adjust creation of meson.conf --- config/functions | 89 ++++++++++++++++++++++++++++++++++++------- scripts/build | 63 +++++++++++++++--------------- scripts/build_mt | 4 +- scripts/create_addon | 4 +- scripts/image | 4 +- scripts/install_addon | 2 +- 6 files changed, 115 insertions(+), 51 deletions(-) diff --git a/config/functions b/config/functions index a1c08e890d..87bec908b9 100644 --- a/config/functions +++ b/config/functions @@ -268,8 +268,47 @@ setup_toolchain() { export MAKEFLAGS="$MAKEFLAGS V=1 VERBOSE=1" fi - case "$1" in - target|init) + case "$1:$2" in + meson:target) + export DESTIMAGE="target" + export AWK="gawk" + export CC="$TOOLCHAIN/bin/host-gcc" + export CXX="$TOOLCHAIN/bin/host-g++" + export CPP="cpp" + export LD="ld" + export AS="as" + export AR="ar" + export NM="nm" + export RANLIB="ranlib" + export OBJCOPY="objcopy" + export OBJDUMP="objdump" + export STRIP="strip" + export CPPFLAGS="$HOST_CPPFLAGS" + export CFLAGS="$HOST_CFLAGS" + export CXXFLAGS="$HOST_CXXFLAGS" + export LDFLAGS="$HOST_LDFLAGS" + setup_pkg_config_target + export TARGET_CC="${TARGET_PREFIX}gcc" + export TARGET_CXX="${TARGET_PREFIX}g++" + export TARGET_AR="${TARGET_PREFIX}ar" + export TARGET_STRIP="${TARGET_PREFIX}strip" + export TARGET_CFLAGS="$TARGET_CFLAGS" + export TARGET_CXXFLAGS="$TARGET_CXXFLAGS" + export TARGET_LDFLAGS="$TARGET_LDFLAGS" + export HOST_CC="$CC" + export HOST_CXX="$CXX" + export HOSTCC="$CC" + export HOSTCXX="$CXX" + export CC_FOR_BUILD="$CC" + export CXX_FOR_BUILD="$CXX" + export BUILD_CC="$CC" + export BUILD_CXX="$CXX" + export _python_sysroot="$SYSROOT_PREFIX" + export _python_prefix=/usr + export _python_exec_prefix=/usr + ;; + + *:target|*:init) export DESTIMAGE="target" export CC="${TARGET_PREFIX}gcc" export CXX="${TARGET_PREFIX}g++" @@ -315,7 +354,7 @@ setup_toolchain() { export _python_prefix=/usr export _python_exec_prefix=/usr ;; - host|bootstrap) + *:host|*:bootstrap) export DESTIMAGE="host" export AWK="gawk" export CC="$TOOLCHAIN/bin/host-gcc" @@ -366,15 +405,8 @@ setup_toolchain() { esac } -create_meson_conf() { - local endian root properties - case "$1" in - target|init) root="$SYSROOT_PREFIX/usr" - ;; - host|bootstrap) root="$TOOLCHAIN" - ;; - esac - +create_meson_conf_host() { + local properties properties="PKG_MESON_PROPERTIES_${1^^}" cat > $2 < $2 < Date: Sun, 25 Aug 2019 17:49:30 +0200 Subject: [PATCH 3/8] buildsystem: swap setup_toolchain parameter --- config/functions | 6 +++--- scripts/build | 2 +- scripts/build_mt | 4 ++-- scripts/create_addon | 4 ++-- scripts/image | 4 ++-- scripts/install_addon | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/config/functions b/config/functions index 87bec908b9..4aa19da2b0 100644 --- a/config/functions +++ b/config/functions @@ -269,7 +269,7 @@ setup_toolchain() { fi case "$1:$2" in - meson:target) + target:meson) export DESTIMAGE="target" export AWK="gawk" export CC="$TOOLCHAIN/bin/host-gcc" @@ -308,7 +308,7 @@ setup_toolchain() { export _python_exec_prefix=/usr ;; - *:target|*:init) + target:*|init:*) export DESTIMAGE="target" export CC="${TARGET_PREFIX}gcc" export CXX="${TARGET_PREFIX}g++" @@ -354,7 +354,7 @@ setup_toolchain() { export _python_prefix=/usr export _python_exec_prefix=/usr ;; - *:host|*:bootstrap) + host:*|bootstrap:*) export DESTIMAGE="host" export AWK="gawk" export CC="$TOOLCHAIN/bin/host-gcc" diff --git a/scripts/build b/scripts/build index 9f9558e76c..22c9f7fb7b 100755 --- a/scripts/build +++ b/scripts/build @@ -112,7 +112,7 @@ fi build_msg "CLR_TOOLCHAIN" "TOOLCHAIN" "${PKG_TOOLCHAIN}${_auto_toolchain}" # setup toolchain -setup_toolchain ${PKG_TOOLCHAIN} ${TARGET} +setup_toolchain ${TARGET} ${PKG_TOOLCHAIN} # configure install directory if [ "${TARGET}" = "target" ]; then diff --git a/scripts/build_mt b/scripts/build_mt index fdcf4e4f5a..d7b35168df 100755 --- a/scripts/build_mt +++ b/scripts/build_mt @@ -10,7 +10,7 @@ ${SCRIPTS}/checkdeps # Setup both toolchain cmake configs to avoid potentially racy behaviour later. # Use a fork for host to isolate any variable modifications. -( setup_toolchain generic host ) -setup_toolchain generic target +( setup_toolchain host ) +setup_toolchain target MTADDONBUILD=no start_multithread_build ${@} diff --git a/scripts/create_addon b/scripts/create_addon index 79624b0fba..4961f0cd9d 100755 --- a/scripts/create_addon +++ b/scripts/create_addon @@ -132,8 +132,8 @@ fi # check environment and configure toolchains ${SCRIPTS}/checkdeps -( setup_toolchain generic host ) -setup_toolchain generic target +( setup_toolchain host ) +setup_toolchain target # collect list of addons for building addons= diff --git a/scripts/image b/scripts/image index ea91914251..f2a8740100 100755 --- a/scripts/image +++ b/scripts/image @@ -25,8 +25,8 @@ ${SCRIPTS}/checkdeps # Setup both toolchain cmake configs to avoid potentially racy behaviour later. # Use a fork for host to isolate any variable modifications. -( setup_toolchain generic host ) -setup_toolchain generic target +( setup_toolchain host ) +setup_toolchain target function do_mkimage() { # Variables used in mkimage script must be passed diff --git a/scripts/install_addon b/scripts/install_addon index 787f4e1251..c6d006676e 100755 --- a/scripts/install_addon +++ b/scripts/install_addon @@ -6,7 +6,7 @@ . config/options "${1}" # Make sure we have a value for STRIP -setup_toolchain generic target +setup_toolchain target [ -n "${2}" ] && PKG_ADDON_ID=${2} From 69f0cd5b48c4cf4705ac81f1a2b678ca59bd0e03 Mon Sep 17 00:00:00 2001 From: "Sascha Kuehndel (InuSasha)" Date: Tue, 27 Aug 2019 10:39:07 +0200 Subject: [PATCH 4/8] glib: drop build test and LDFLAGS, not needed in cross-compile and with meson --- packages/devel/glib/package.mk | 4 -- .../glib/patches/001_drop-build-tests.patch | 54 +++++++++++++++++++ 2 files changed, 54 insertions(+), 4 deletions(-) create mode 100644 packages/devel/glib/patches/001_drop-build-tests.patch diff --git a/packages/devel/glib/package.mk b/packages/devel/glib/package.mk index 26043f9edd..1befd7dd08 100644 --- a/packages/devel/glib/package.mk +++ b/packages/devel/glib/package.mk @@ -37,10 +37,6 @@ have_c99_snprintf=false growing_stack=false va_val_copy=false" -pre_configure_target() { - LDFLAGS+=" -lz" -} - post_makeinstall_target() { rm -rf $INSTALL/usr/bin rm -rf $INSTALL/usr/lib/gdbus-2.0 diff --git a/packages/devel/glib/patches/001_drop-build-tests.patch b/packages/devel/glib/patches/001_drop-build-tests.patch new file mode 100644 index 0000000000..dd0b5cb501 --- /dev/null +++ b/packages/devel/glib/patches/001_drop-build-tests.patch @@ -0,0 +1,54 @@ +diff -Naur glib-2.61.1.org/gio/meson.build glib-2.61.1/gio/meson.build +--- glib-2.61.1.org/gio/meson.build 2019-05-24 19:00:33.000000000 +0200 ++++ glib-2.61.1/gio/meson.build 2019-08-26 09:21:14.893507207 +0200 +@@ -994,8 +994,3 @@ + endif + + subdir('fam') +-# Don’t build the tests unless we can run them (either natively or in an exe wrapper) +-build_tests = not meson.is_cross_build() or (meson.is_cross_build() and meson.has_exe_wrapper()) +-if build_tests +- subdir('tests') +-endif +\ Kein Zeilenumbruch am Dateiende. +diff -Naur glib-2.61.1.org/glib/meson.build glib-2.61.1/glib/meson.build +--- glib-2.61.1.org/glib/meson.build 2019-05-24 19:00:33.000000000 +0200 ++++ glib-2.61.1/glib/meson.build 2019-08-26 09:21:22.941561248 +0200 +@@ -459,8 +459,3 @@ + install : true) + endif + +-# Don’t build the tests unless we can run them (either natively or in an exe wrapper) +-build_tests = not meson.is_cross_build() or (meson.is_cross_build() and meson.has_exe_wrapper()) +-if build_tests +- subdir('tests') +-endif +\ Kein Zeilenumbruch am Dateiende. +diff -Naur glib-2.61.1.org/gobject/meson.build glib-2.61.1/gobject/meson.build +--- glib-2.61.1.org/gobject/meson.build 2019-05-24 19:00:33.000000000 +0200 ++++ glib-2.61.1/gobject/meson.build 2019-08-26 09:21:28.981601802 +0200 +@@ -166,8 +166,3 @@ + install : true) + endif + +-# Don’t build the tests unless we can run them (either natively or in an exe wrapper) +-build_tests = not meson.is_cross_build() or (meson.is_cross_build() and meson.has_exe_wrapper()) +-if build_tests +- subdir('tests') +-endif +\ Kein Zeilenumbruch am Dateiende. +diff -Naur glib-2.61.1.org/meson.build glib-2.61.1/meson.build +--- glib-2.61.1.org/meson.build 2019-05-24 19:00:33.000000000 +0200 ++++ glib-2.61.1/meson.build 2019-08-26 09:21:08.029461110 +0200 +@@ -2045,11 +2045,6 @@ + subdir('gmodule') + subdir('gio') + subdir('fuzzing') +-# Don’t build the tests unless we can run them (either natively or in an exe wrapper) +-build_tests = not meson.is_cross_build() or (meson.is_cross_build() and meson.has_exe_wrapper()) +-if build_tests +- subdir('tests') +-endif + + # xgettext is optional (on Windows for instance) + if find_program('xgettext', required : get_option('nls')).found() From 8903d66bb6d2b2ac3506f6ad1bba4f24bbffb047 Mon Sep 17 00:00:00 2001 From: "Sascha Kuehndel (InuSasha)" Date: Tue, 27 Aug 2019 17:42:53 +0200 Subject: [PATCH 5/8] meson: use TARGET_x --- .../addons/addon-depends/chrome-depends/at-spi2-core/package.mk | 2 +- packages/sysutils/systemd/package.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/addons/addon-depends/chrome-depends/at-spi2-core/package.mk b/packages/addons/addon-depends/chrome-depends/at-spi2-core/package.mk index 0b6b29a5e9..1add64aed1 100644 --- a/packages/addons/addon-depends/chrome-depends/at-spi2-core/package.mk +++ b/packages/addons/addon-depends/chrome-depends/at-spi2-core/package.mk @@ -15,5 +15,5 @@ PKG_MESON_OPTS_TARGET="-Denable_docs=false \ -Denable-introspection=no" pre_configure_target() { - LDFLAGS="$LDFLAGS -lXext" + TARGET_LDFLAGS="$LDFLAGS -lXext" } diff --git a/packages/sysutils/systemd/package.mk b/packages/sysutils/systemd/package.mk index 5bc9eea581..59ce2450c0 100644 --- a/packages/sysutils/systemd/package.mk +++ b/packages/sysutils/systemd/package.mk @@ -93,7 +93,7 @@ PKG_MESON_OPTS_TARGET="--libdir=/usr/lib \ -Dversion-tag=${PKG_VERSION}" pre_configure_target() { - export CFLAGS="$CFLAGS -fno-schedule-insns -fno-schedule-insns2 -Wno-format-truncation" + export TARGET_CFLAGS="$TARGET_CFLAGS -fno-schedule-insns -fno-schedule-insns2 -Wno-format-truncation" export LC_ALL=en_US.UTF-8 } From 1ce8d8bf20a27d0d3e7766839144cb2d967aa1a6 Mon Sep 17 00:00:00 2001 From: "Sascha Kuehndel (InuSasha)" Date: Tue, 27 Aug 2019 17:43:51 +0200 Subject: [PATCH 6/8] mpd: drop LIBS, not needed with meson --- packages/addons/service/mpd/package.mk | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/addons/service/mpd/package.mk b/packages/addons/service/mpd/package.mk index 61113c8232..00aecb58a2 100644 --- a/packages/addons/service/mpd/package.mk +++ b/packages/addons/service/mpd/package.mk @@ -93,10 +93,6 @@ PKG_MESON_OPTS_TARGET=" \ -Dzlib=enabled \ -Dzzip=disabled" -pre_configure_target() { - export LIBS="$LIBS -logg -lFLAC -ldl" -} - makeinstall_target() { : } From fed6412a29fcb89893737366c0577890deb71513 Mon Sep 17 00:00:00 2001 From: "Sascha Kuehndel (InuSasha)" Date: Tue, 27 Aug 2019 20:53:27 +0200 Subject: [PATCH 7/8] mesonbuild: update to 0.51.2 --- packages/python/devel/meson/package.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/python/devel/meson/package.mk b/packages/python/devel/meson/package.mk index b66502c1d2..04c0d1fa72 100644 --- a/packages/python/devel/meson/package.mk +++ b/packages/python/devel/meson/package.mk @@ -2,8 +2,8 @@ # Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) PKG_NAME="meson" -PKG_VERSION="0.51.1" -PKG_SHA256="f27b7a60f339ba66fe4b8f81f0d1072e090a08eabbd6aa287683b2c2b9dd2d82" +PKG_VERSION="0.51.2" +PKG_SHA256="23688f0fc90be623d98e80e1defeea92bbb7103bf9336a5f5b9865d36e892d76" PKG_LICENSE="Apache" PKG_SITE="http://mesonbuild.com" PKG_URL="https://github.com/mesonbuild/meson/releases/download/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.gz" From 2d78194f846a72e16af1a03efa44859a5d7d1985 Mon Sep 17 00:00:00 2001 From: "Sascha Kuehndel (InuSasha)" Date: Wed, 4 Sep 2019 12:07:06 +0200 Subject: [PATCH 8/8] fix strip with new meson --- scripts/build | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/build b/scripts/build index 22c9f7fb7b..41c4f65759 100755 --- a/scripts/build +++ b/scripts/build @@ -164,6 +164,10 @@ TARGET_MESON_OPTS="--prefix=/usr \ --libexecdir=/usr/lib \ --localstatedir=/var \ --buildtype=${MESON_BUILD_TYPE}" +if [ ${BUILD_WITH_DEBUG} != yes ] && flag_enabled "strip" "yes"; then + TARGET_MESON_OPTS+=" -Dstrip=true" +fi + # configure HOST build defaults HOST_CONFIGURE_OPTS="--host=${HOST_NAME} \