mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-08-01 15:07:49 +00:00
Merge pull request #3776 from InuSasha/upates/mesonbuild
mesonbuild: update to 0.51.2
This commit is contained in:
commit
8e98ef4be8
@ -268,8 +268,47 @@ setup_toolchain() {
|
||||
export MAKEFLAGS="$MAKEFLAGS V=1 VERBOSE=1"
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
target|init)
|
||||
case "$1:$2" in
|
||||
target:meson)
|
||||
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 <<EOF
|
||||
@ -394,7 +426,7 @@ cpu = '$TARGET_SUBARCH'
|
||||
endian = 'little'
|
||||
|
||||
[properties]
|
||||
root = '$root'
|
||||
root = '$TOOLCHAIN'
|
||||
$(python -c "import os; print('c_args = {}'.format([x for x in os.getenv('CFLAGS').split()]))")
|
||||
$(python -c "import os; print('c_link_args = {}'.format([x for x in os.getenv('LDFLAGS').split()]))")
|
||||
$(python -c "import os; print('cpp_args = {}'.format([x for x in os.getenv('CXXFLAGS').split()]))")
|
||||
@ -403,6 +435,37 @@ ${!properties}
|
||||
EOF
|
||||
}
|
||||
|
||||
create_meson_conf_target() {
|
||||
local properties
|
||||
properties="PKG_MESON_PROPERTIES_${1^^}"
|
||||
|
||||
cat > $2 <<EOF
|
||||
[binaries]
|
||||
c = '$TARGET_CC'
|
||||
cpp = '$TARGET_CXX'
|
||||
ar = '$TARGET_AR'
|
||||
strip = '$TARGET_STRIP'
|
||||
pkgconfig = '$PKG_CONFIG'
|
||||
llvm-config = '$SYSROOT_PREFIX/usr/bin/llvm-config-host'
|
||||
libgcrypt-config = '$SYSROOT_PREFIX/usr/bin/libgcrypt-config'
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = '$TARGET_ARCH'
|
||||
cpu = '$TARGET_SUBARCH'
|
||||
endian = 'little'
|
||||
|
||||
[properties]
|
||||
root = '$SYSROOT_PREFIX/usr'
|
||||
$(python -c "import os; print('c_args = {}'.format([x for x in os.getenv('TARGET_CFLAGS').split()]))")
|
||||
$(python -c "import os; print('c_link_args = {}'.format([x for x in os.getenv('TARGET_LDFLAGS').split()]))")
|
||||
$(python -c "import os; print('cpp_args = {}'.format([x for x in os.getenv('TARGET_CXXFLAGS').split()]))")
|
||||
$(python -c "import os; print('cpp_link_args = {}'.format([x for x in os.getenv('TARGET_LDFLAGS').split()]))")
|
||||
${!properties}
|
||||
EOF
|
||||
}
|
||||
|
||||
|
||||
# unset all PKG_* vars apart from those exported by setup_toolchain, then set default values
|
||||
reset_pkg_vars() {
|
||||
local vars var
|
||||
|
@ -15,5 +15,5 @@ PKG_MESON_OPTS_TARGET="-Denable_docs=false \
|
||||
-Denable-introspection=no"
|
||||
|
||||
pre_configure_target() {
|
||||
LDFLAGS="$LDFLAGS -lXext"
|
||||
TARGET_LDFLAGS="$LDFLAGS -lXext"
|
||||
}
|
||||
|
@ -93,10 +93,6 @@ PKG_MESON_OPTS_TARGET=" \
|
||||
-Dzlib=enabled \
|
||||
-Dzzip=disabled"
|
||||
|
||||
pre_configure_target() {
|
||||
export LIBS="$LIBS -logg -lFLAC -ldl"
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
:
|
||||
}
|
||||
|
@ -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
|
||||
|
54
packages/devel/glib/patches/001_drop-build-tests.patch
Normal file
54
packages/devel/glib/patches/001_drop-build-tests.patch
Normal file
@ -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()
|
@ -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.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"
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
@ -85,7 +85,34 @@ else
|
||||
build_msg "CLR_BUILD" "BUILD" "${PKG_NAME} $(print_color "CLR_TARGET" "(${TARGET})")" "indent"
|
||||
fi
|
||||
|
||||
setup_toolchain ${TARGET}
|
||||
# setup configure scripts
|
||||
PKG_CONFIGURE_SCRIPT="${PKG_CONFIGURE_SCRIPT:-${PKG_BUILD}/configure}"
|
||||
PKG_CMAKE_SCRIPT="${PKG_CMAKE_SCRIPT:-${PKG_BUILD}/CMakeLists.txt}"
|
||||
PKG_MESON_SCRIPT="${PKG_MESON_SCRIPT:-${PKG_BUILD}/meson.build}"
|
||||
|
||||
# auto detect toolchain
|
||||
_auto_toolchain=""
|
||||
if [ -z "${PKG_TOOLCHAIN}" -o "${PKG_TOOLCHAIN}" = "auto" ]; then
|
||||
if [ -f "${PKG_MESON_SCRIPT}" ]; then
|
||||
PKG_TOOLCHAIN="meson"
|
||||
elif [ -f "${PKG_CMAKE_SCRIPT}" ]; then
|
||||
PKG_TOOLCHAIN="cmake"
|
||||
elif [ -f "${PKG_CONFIGURE_SCRIPT}" ]; then
|
||||
PKG_TOOLCHAIN="configure"
|
||||
elif [ -f "${PKG_BUILD}/Makefile" ]; then
|
||||
PKG_TOOLCHAIN="make"
|
||||
else
|
||||
die "Not possible to detect toolchain automatically. Add PKG_TOOLCHAIN= to package.mk"
|
||||
fi
|
||||
_auto_toolchain=" (auto-detect)"
|
||||
fi
|
||||
if ! listcontains "meson cmake cmake-make configure ninja make autotools manual" "${PKG_TOOLCHAIN}"; then
|
||||
die "$(print_color "CLR_ERROR" "ERROR:") unknown toolchain ${PKG_TOOLCHAIN}"
|
||||
fi
|
||||
build_msg "CLR_TOOLCHAIN" "TOOLCHAIN" "${PKG_TOOLCHAIN}${_auto_toolchain}"
|
||||
|
||||
# setup toolchain
|
||||
setup_toolchain ${TARGET} ${PKG_TOOLCHAIN}
|
||||
|
||||
# configure install directory
|
||||
if [ "${TARGET}" = "target" ]; then
|
||||
@ -137,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} \
|
||||
@ -173,32 +204,6 @@ BOOTSTRAP_CONFIGURE_OPTS="${HOST_CONFIGURE_OPTS}"
|
||||
BOOTSTRAP_CMAKE_OPTS="${HOST_CMAKE_OPTS}"
|
||||
BOOTSTRAP_MESON_OPTS="${HOST_MESON_OPTS}"
|
||||
|
||||
# setup configure scripts
|
||||
PKG_CONFIGURE_SCRIPT="${PKG_CONFIGURE_SCRIPT:-${PKG_BUILD}/configure}"
|
||||
PKG_CMAKE_SCRIPT="${PKG_CMAKE_SCRIPT:-${PKG_BUILD}/CMakeLists.txt}"
|
||||
PKG_MESON_SCRIPT="${PKG_MESON_SCRIPT:-${PKG_BUILD}/meson.build}"
|
||||
|
||||
# auto detect toolchain
|
||||
_auto_toolchain=""
|
||||
if [ -z "${PKG_TOOLCHAIN}" -o "${PKG_TOOLCHAIN}" = "auto" ]; then
|
||||
if [ -f "${PKG_MESON_SCRIPT}" ]; then
|
||||
PKG_TOOLCHAIN="meson"
|
||||
elif [ -f "${PKG_CMAKE_SCRIPT}" ]; then
|
||||
PKG_TOOLCHAIN="cmake"
|
||||
elif [ -f "${PKG_CONFIGURE_SCRIPT}" ]; then
|
||||
PKG_TOOLCHAIN="configure"
|
||||
elif [ -f "${PKG_BUILD}/Makefile" ]; then
|
||||
PKG_TOOLCHAIN="make"
|
||||
else
|
||||
die "Not possible to detect toolchain automatically. Add PKG_TOOLCHAIN= to package.mk"
|
||||
fi
|
||||
_auto_toolchain=" (auto-detect)"
|
||||
fi
|
||||
if ! listcontains "meson cmake cmake-make configure ninja make autotools manual" "${PKG_TOOLCHAIN}"; then
|
||||
die "$(print_color "CLR_ERROR" "ERROR:") unknown toolchain ${PKG_TOOLCHAIN}"
|
||||
fi
|
||||
build_msg "CLR_TOOLCHAIN" "TOOLCHAIN" "${PKG_TOOLCHAIN}${_auto_toolchain}"
|
||||
|
||||
# make autoreconf
|
||||
if [ "${PKG_TOOLCHAIN}" = "autotools" ]; then
|
||||
${SCRIPTS}/autoreconf "${PKG_NAME}" "${PARENT_PKG}"
|
||||
@ -237,22 +242,22 @@ else
|
||||
case "${PKG_TOOLCHAIN}:${TARGET}" in
|
||||
# meson builds
|
||||
"meson:target")
|
||||
create_meson_conf ${TARGET} ${MESON_CONF}
|
||||
create_meson_conf_target ${TARGET} ${MESON_CONF}
|
||||
echo "Executing (target): meson ${TARGET_MESON_OPTS} --cross-file=${MESON_CONF} ${PKG_MESON_OPTS_TARGET} $(dirname ${PKG_MESON_SCRIPT})" | tr -s " "
|
||||
CC="${HOST_CC}" CXX="${HOST_CXX}" meson ${TARGET_MESON_OPTS} --cross-file=${MESON_CONF} ${PKG_MESON_OPTS_TARGET} $(dirname ${PKG_MESON_SCRIPT})
|
||||
;;
|
||||
"meson:host")
|
||||
create_meson_conf ${TARGET} ${MESON_CONF}
|
||||
create_meson_conf_host ${TARGET} ${MESON_CONF}
|
||||
echo "Executing (host): meson ${HOST_MESON_OPTS} --cross-file=${MESON_CONF} ${PKG_MESON_OPTS_HOST} $(dirname ${PKG_MESON_SCRIPT})" | tr -s " "
|
||||
meson ${HOST_MESON_OPTS} --cross-file=${MESON_CONF} ${PKG_MESON_OPTS_HOST} $(dirname ${PKG_MESON_SCRIPT})
|
||||
;;
|
||||
"meson:init")
|
||||
create_meson_conf ${TARGET} ${MESON_CONF}
|
||||
create_meson_conf_target ${TARGET} ${MESON_CONF}
|
||||
echo "Executing (init): meson ${INIT_MESON_OPTS} --cross-file=${MESON_CONF} ${PKG_MESON_OPTS_INIT} $(dirname ${PKG_MESON_SCRIPT})" | tr -s " "
|
||||
meson ${INIT_MESON_OPTS} --cross-file=${MESON_CONF} ${PKG_MESON_OPTS_INIT} $(dirname ${PKG_MESON_SCRIPT})
|
||||
;;
|
||||
"meson:bootstrap")
|
||||
create_meson_conf ${TARGET} ${MESON_CONF}
|
||||
create_meson_conf_host ${TARGET} ${MESON_CONF}
|
||||
echo "Executing (bootstrap): meson ${BOOTSTRAP_MESON_OPTS} --cross-file=${MESON_CONF} ${PKG_MESON_OPTS_BOOTSTRAP} $(dirname ${PKG_MESON_SCRIPT})" | tr -s " "
|
||||
meson ${BOOTSTRAP_MESON_OPTS} --cross-file=${MESON_CONF} ${PKG_MESON_OPTS_BOOTSTRAP} $(dirname ${PKG_MESON_SCRIPT})
|
||||
;;
|
||||
|
@ -132,7 +132,7 @@ fi
|
||||
# check environment and configure toolchains
|
||||
${SCRIPTS}/checkdeps
|
||||
|
||||
(setup_toolchain host)
|
||||
( setup_toolchain host )
|
||||
setup_toolchain target
|
||||
|
||||
# collect list of addons for building
|
||||
|
Loading…
x
Reference in New Issue
Block a user