svn commit: r514187 - in head/devel/meson: . files
Jan Beich
jbeich at FreeBSD.org
Wed Oct 9 19:17:21 UTC 2019
Author: jbeich
Date: Wed Oct 9 19:17:20 2019
New Revision: 514187
URL: https://svnweb.freebsd.org/changeset/ports/514187
Log:
devel/meson: update to 0.52.0
- Update patches [1]
- Connect tests to the framework
Changes: https://mesonbuild.com/Release-notes-for-0-52-0.html
Changes: https://github.com/mesonbuild/meson/compare/0.51.2...0.52.0
PR: 241105
Submitted by: Ting-Wei Lan [1]
Exp-run by: antoine
Added:
head/devel/meson/files/patch-run__unittests.py (contents, props changed)
Modified:
head/devel/meson/Makefile (contents, props changed)
head/devel/meson/distinfo (contents, props changed)
head/devel/meson/files/patch-mesonbuild_dependencies_base.py (contents, props changed)
Modified: head/devel/meson/Makefile
==============================================================================
--- head/devel/meson/Makefile Wed Oct 9 19:17:17 2019 (r514186)
+++ head/devel/meson/Makefile Wed Oct 9 19:17:20 2019 (r514187)
@@ -2,13 +2,10 @@
# $FreeBSD$
PORTNAME= meson
-PORTVERSION= 0.51.2
+PORTVERSION= 0.52.0
CATEGORIES= devel python
MASTER_SITES= https://github.com/mesonbuild/${PORTNAME}/releases/download/${PORTVERSION}/
-PATCH_SITES= https://github.com/mesonbuild/${PORTNAME}/commit/
-PATCHFILES+= efea48788ab2.patch:-p1
-
MAINTAINER= gnome at FreeBSD.org
COMMENT= High performance build system
@@ -16,9 +13,24 @@ LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/COPYING
RUN_DEPENDS= ninja:devel/ninja
+TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-xdist>0:devel/py-pytest-xdist@${PY_FLAVOR}
-USES= python:3.5+
+USES= python:3.5+ shebangfix
USE_PYTHON= autoplist distutils noflavors
+SHEBANG_FILES= mesonbuild/cmake/data/run_ctgt.py
NO_ARCH= yes
+
+# https://github.com/mesonbuild/meson/issues/6016
+TEST_ENV= ${MAKE_ENV:NCC=*:NCXX=*}
+
+# Hide from regular build to avoid accidental dependency on symlinks
+.if make(test)
+# helper_create_binary_wrapper, test_python_module, test cases/*.py
+BINARY_ALIAS+= python3=${PYTHON_CMD:T} python=${PYTHON_CMD:T}
+do-test: create-binary-alias # force if run late
+.endif
+
+do-test:
+ @(cd ${TEST_WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} ${WRKSRC}/run_unittests.py)
.include <bsd.port.mk>
Modified: head/devel/meson/distinfo
==============================================================================
--- head/devel/meson/distinfo Wed Oct 9 19:17:17 2019 (r514186)
+++ head/devel/meson/distinfo Wed Oct 9 19:17:20 2019 (r514187)
@@ -1,5 +1,3 @@
-TIMESTAMP = 1566836953
-SHA256 (meson-0.51.2.tar.gz) = 23688f0fc90be623d98e80e1defeea92bbb7103bf9336a5f5b9865d36e892d76
-SIZE (meson-0.51.2.tar.gz) = 1453251
-SHA256 (efea48788ab2.patch) = eee556fb0cd6cbba5756bbfb508412081743cd813dd10d1b9cbc419769281d39
-SIZE (efea48788ab2.patch) = 953
+TIMESTAMP = 1570381541
+SHA256 (meson-0.52.0.tar.gz) = d60f75f0dedcc4fd249dbc7519d6f3ce6df490033d276ef1cf27453ef4938d32
+SIZE (meson-0.52.0.tar.gz) = 1507110
Modified: head/devel/meson/files/patch-mesonbuild_dependencies_base.py
==============================================================================
--- head/devel/meson/files/patch-mesonbuild_dependencies_base.py Wed Oct 9 19:17:17 2019 (r514186)
+++ head/devel/meson/files/patch-mesonbuild_dependencies_base.py Wed Oct 9 19:17:20 2019 (r514187)
@@ -52,31 +52,9 @@ users, without depending on the unreliable part of pkg
Fixes https://github.com/mesonbuild/meson/issues/4271.
---- mesonbuild/dependencies/base.py.orig
+--- mesonbuild/dependencies/base.py.orig 2019-10-06 17:01:35 UTC
+++ mesonbuild/dependencies/base.py
-@@ -706,6 +706,21 @@ def _set_cargs(self):
- (self.name, out))
- self.compile_args = self._convert_mingw_paths(shlex.split(out))
-
-+ def _sort_libpaths(self, libpaths, refpaths):
-+ if len(refpaths) == 0:
-+ return list(libpaths)
-+
-+ def key_func(libpath):
-+ common_lengths = []
-+ for refpath in refpaths:
-+ common_path = os.path.commonpath([libpath, refpath])
-+ common_lengths.append(len(common_path))
-+ max_length = max(common_lengths)
-+ max_index = common_lengths.index(max_length)
-+ reversed_max_length = len(refpaths[max_index]) - max_length
-+ return (max_index, reversed_max_length)
-+ return sorted(libpaths, key=key_func)
-+
- def _search_libs(self, out, out_raw):
- '''
- @out: PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 pkg-config --libs
-@@ -741,6 +756,22 @@ def _search_libs(self, out, out_raw):
+@@ -784,6 +784,22 @@ class PkgConfigDependency(ExternalDependency):
# Resolve the path as a compiler in the build directory would
path = os.path.join(self.env.get_build_dir(), path)
prefix_libpaths.add(path)
@@ -95,7 +73,38 @@ Fixes https://github.com/mesonbuild/meson/issues/4271.
+ else:
+ pkg_config_path = []
+ pkg_config_path = self._convert_mingw_paths(pkg_config_path)
-+ prefix_libpaths = self._sort_libpaths(prefix_libpaths, pkg_config_path)
++ prefix_libpaths = sort_libpaths(prefix_libpaths, pkg_config_path)
system_libpaths = OrderedSet()
- full_args = self._convert_mingw_paths(shlex.split(out))
+ full_args = self._convert_mingw_paths(self._split_args(out))
for arg in full_args:
+@@ -2284,6 +2300,30 @@ def _build_external_dependency_list(name, env: Environ
+ False, None, env, None, kwargs))
+
+ return candidates
++
++
++def sort_libpaths(libpaths: List[str], refpaths: List[str]) -> List[str]:
++ """Sort <libpaths> according to <refpaths>
++
++ It is intended to be used to sort -L flags returned by pkg-config.
++ Pkg-config returns flags in random order which cannot be relied on.
++ """
++ if len(refpaths) == 0:
++ return list(libpaths)
++
++ def key_func(libpath):
++ common_lengths = []
++ for refpath in refpaths:
++ try:
++ common_path = os.path.commonpath([libpath, refpath])
++ except ValueError:
++ common_path = ''
++ common_lengths.append(len(common_path))
++ max_length = max(common_lengths)
++ max_index = common_lengths.index(max_length)
++ reversed_max_length = len(refpaths[max_index]) - max_length
++ return (max_index, reversed_max_length)
++ return sorted(libpaths, key=key_func)
+
+
+ def strip_system_libdirs(environment, for_machine: MachineChoice, link_args):
Added: head/devel/meson/files/patch-run__unittests.py
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/meson/files/patch-run__unittests.py Wed Oct 9 19:17:20 2019 (r514187)
@@ -0,0 +1,66 @@
+https://github.com/mesonbuild/meson/pull/4324
+https://github.com/mesonbuild/meson/pull/4325
+https://github.com/mesonbuild/meson/pull/6007
+
+--- run_unittests.py.orig 2019-10-06 17:01:35 UTC
++++ run_unittests.py
+@@ -57,6 +57,7 @@ from mesonbuild.mesonlib import (
+ from mesonbuild.environment import detect_ninja
+ from mesonbuild.mesonlib import MesonException, EnvironmentException
+ from mesonbuild.dependencies import PkgConfigDependency, ExternalProgram
++import mesonbuild.dependencies.base
+ from mesonbuild.build import Target
+ import mesonbuild.modules.pkgconfig
+
+@@ -1164,7 +1165,26 @@ class InternalTests(unittest.TestCase):
+ deps = d.get_all_dependencies(target)
+ self.assertEqual(deps, expdeps)
+
++ def test_sort_libpaths(self):
++ sort_libpaths = mesonbuild.dependencies.base.sort_libpaths
++ self.assertEqual(sort_libpaths(
++ ['/home/mesonuser/.local/lib', '/usr/local/lib', '/usr/lib'],
++ ['/home/mesonuser/.local/lib/pkgconfig', '/usr/local/lib/pkgconfig']),
++ ['/home/mesonuser/.local/lib', '/usr/local/lib', '/usr/lib'])
++ self.assertEqual(sort_libpaths(
++ ['/usr/local/lib', '/home/mesonuser/.local/lib', '/usr/lib'],
++ ['/home/mesonuser/.local/lib/pkgconfig', '/usr/local/lib/pkgconfig']),
++ ['/home/mesonuser/.local/lib', '/usr/local/lib', '/usr/lib'])
++ self.assertEqual(sort_libpaths(
++ ['/usr/lib', '/usr/local/lib', '/home/mesonuser/.local/lib'],
++ ['/home/mesonuser/.local/lib/pkgconfig', '/usr/local/lib/pkgconfig']),
++ ['/home/mesonuser/.local/lib', '/usr/local/lib', '/usr/lib'])
++ self.assertEqual(sort_libpaths(
++ ['/usr/lib', '/usr/local/lib', '/home/mesonuser/.local/lib'],
++ ['/home/mesonuser/.local/lib/pkgconfig', '/usr/local/libdata/pkgconfig']),
++ ['/home/mesonuser/.local/lib', '/usr/local/lib', '/usr/lib'])
+
++
+ @unittest.skipIf(is_tarball(), 'Skipping because this is a tarball release')
+ class DataTests(unittest.TestCase):
+
+@@ -5643,6 +5664,7 @@ class LinuxlikeTests(BasePlatformTests):
+ # Assert that
+ self.assertEqual(len(line.split(lib)), 2, msg=(lib, line))
+
++ @skipIfNoPkgconfig
+ def test_noncross_options(self):
+ # C_std defined in project options must be in effect also when native compiling.
+ testdir = os.path.join(self.unit_test_dir, '51 noncross options')
+@@ -5665,6 +5687,7 @@ c = ['{0}']
+ # TODO should someday be explicit about build platform only here
+ self.init(testdir, override_envvars=env)
+
++ @skipIfNoPkgconfig
+ def test_static_link(self):
+ if is_cygwin():
+ raise unittest.SkipTest("Cygwin doesn't support LD_LIBRARY_PATH.")
+@@ -5680,7 +5703,7 @@ c = ['{0}']
+ # Test that installed libraries works
+ self.new_builddir()
+ self.prefix = oldprefix
+- meson_args = ['-Dc_link_args=-L{}'.format(libdir),
++ meson_args = ['-Dc_link_args=-L{} -Wl,-rpath,{}'.format(libdir, libdir),
+ '--fatal-meson-warnings']
+ testdir = os.path.join(self.unit_test_dir, '69 static link')
+ env = {'PKG_CONFIG_LIBDIR': os.path.join(libdir, 'pkgconfig')}
More information about the svn-ports-head
mailing list