mirror of
https://github.com/beard7n/bsdports.git
synced 2026-04-16 21:41:16 +02:00
add devel/meson/
This commit is contained in:
16
devel/meson/Makefile
Normal file
16
devel/meson/Makefile
Normal file
@@ -0,0 +1,16 @@
|
||||
# Created by: Ting-Wei Lan <lantw44@gmail.com>
|
||||
|
||||
PORTNAME= meson
|
||||
PORTVERSION= 0.58.1
|
||||
CATEGORIES= devel python
|
||||
MASTER_SITES= https://github.com/mesonbuild/${PORTNAME}/releases/download/${PORTVERSION}/
|
||||
|
||||
MAINTAINER= desktop@FreeBSD.org
|
||||
COMMENT= High performance build system
|
||||
|
||||
USES= ninja python:3.6+ shebangfix
|
||||
USE_PYTHON= autoplist distutils noflavors
|
||||
SHEBANG_FILES= mesonbuild/rewriter.py mesonbuild/scripts/cmake_run_ctgt.py
|
||||
NO_ARCH= yes
|
||||
|
||||
.include <bsd.port.mk>
|
||||
3
devel/meson/distinfo
Normal file
3
devel/meson/distinfo
Normal file
@@ -0,0 +1,3 @@
|
||||
TIMESTAMP = 1623087375
|
||||
SHA256 (meson-0.58.1.tar.gz) = 3144a3da662fcf79f1e5602fa929f2821cba4eba28c2c923fe0a7d3e3db04d5d
|
||||
SIZE (meson-0.58.1.tar.gz) = 1896205
|
||||
40
devel/meson/files/patch-mesonbuild_backend_backends.py
Normal file
40
devel/meson/files/patch-mesonbuild_backend_backends.py
Normal file
@@ -0,0 +1,40 @@
|
||||
https://github.com/mesonbuild/meson/pull/4324
|
||||
|
||||
From 068f0b3bc7becab6762ada45ecdd5dc601ee2473 Mon Sep 17 00:00:00 2001
|
||||
From: Ting-Wei Lan <lantw@src.gnome.org>
|
||||
Date: Thu, 4 Oct 2018 23:03:30 +0800
|
||||
Subject: [PATCH] backends: Use raw_link_args to check for the need of RPATH
|
||||
|
||||
Function rpaths_for_bundled_shared_libraries assumes it needs RPATH when
|
||||
linking arguments of an external dependency has exactly one argument and
|
||||
the only argument is an absolute path to a library file. This was mostly
|
||||
fine because almost all .pc files use a -L -l pair instead of the full
|
||||
path of the library, which means pkg-config dependencies almost always
|
||||
have at least two arguments. However, there are patches landed in the
|
||||
meson 0.47 cycle which convert -L -l pair returned by pkg-config to the
|
||||
absolute path of library. If the output of pkg-config includes exactly
|
||||
one -L argument and one -l argument, it will be converted to exactly one
|
||||
absolute path by meson and rpaths_for_bundled_shared_libraries will
|
||||
assume it needs RPATH. Since meson passes both -rpath and -rpath-link to
|
||||
the linker and -rpath-link has precedence over LD_LIBRARY_PATH, it
|
||||
changes the search order of dependent libraries in an unexpected way and
|
||||
it causes a lot of linking troubles in JHBuild environments on FreeBSD.
|
||||
|
||||
To make the method behave like the old way of using -L -l pairs and
|
||||
avoid library path order problems, we use raw_link_args instead of
|
||||
link_args here. raw_link_args stores the unmodified output of pkg-config
|
||||
and it is much less likely to accidentally match the rule currently used
|
||||
by the method.
|
||||
|
||||
Works around https://github.com/mesonbuild/meson/issues/4270.
|
||||
--- mesonbuild/backend/backends.py.orig 2018-09-22 13:22:03 UTC
|
||||
+++ mesonbuild/backend/backends.py
|
||||
@@ -371,7 +371,7 @@ class Backend:
|
||||
for dep in target.external_deps:
|
||||
if not isinstance(dep, (dependencies.ExternalLibrary, dependencies.PkgConfigDependency)):
|
||||
continue
|
||||
- la = dep.link_args
|
||||
+ la = dep.get_link_args(raw=True)
|
||||
if len(la) != 1 or not os.path.isabs(la[0]):
|
||||
continue
|
||||
# The only link argument is an absolute path to a library file.
|
||||
13
devel/meson/files/patch-run__unittests.py
Normal file
13
devel/meson/files/patch-run__unittests.py
Normal file
@@ -0,0 +1,13 @@
|
||||
https://github.com/mesonbuild/meson/pull/4324
|
||||
|
||||
--- run_unittests.py.orig 2021-05-02 09:37:39 UTC
|
||||
+++ run_unittests.py
|
||||
@@ -7840,7 +7840,7 @@ class LinuxlikeTests(BasePlatformTests):
|
||||
# Test that installed libraries works
|
||||
self.new_builddir()
|
||||
self.prefix = oldprefix
|
||||
- meson_args = [f'-Dc_link_args=-L{libdir}',
|
||||
+ meson_args = [f'-Dc_link_args=-L{libdir} -Wl,-rpath,{libdir}',
|
||||
'--fatal-meson-warnings']
|
||||
testdir = os.path.join(self.unit_test_dir, '67 static link')
|
||||
env = {'PKG_CONFIG_LIBDIR': os.path.join(libdir, 'pkgconfig')}
|
||||
11
devel/meson/files/patch-setup.py
Normal file
11
devel/meson/files/patch-setup.py
Normal file
@@ -0,0 +1,11 @@
|
||||
--- setup.py.orig 2018-09-22 13:22:03 UTC
|
||||
+++ setup.py
|
||||
@@ -38,7 +38,7 @@ packages = ['mesonbuild',
|
||||
data_files = []
|
||||
if sys.platform != 'win32':
|
||||
# Only useful on UNIX-like systems
|
||||
- data_files = [('share/man/man1', ['man/meson.1']),
|
||||
+ data_files = [('man/man1', ['man/meson.1']),
|
||||
('share/polkit-1/actions', ['data/com.mesonbuild.install.policy'])]
|
||||
|
||||
if __name__ == '__main__':
|
||||
11
devel/meson/files/patch-x-mesonbuild-modules-pkgconfig.py
Normal file
11
devel/meson/files/patch-x-mesonbuild-modules-pkgconfig.py
Normal file
@@ -0,0 +1,11 @@
|
||||
--- ./mesonbuild/modules/pkgconfig.py.orig 2021-06-07 19:35:31.000000000 +0200
|
||||
+++ ./mesonbuild/modules/pkgconfig.py 2021-07-29 14:56:28.019384000 +0200
|
||||
@@ -540,7 +540,7 @@
|
||||
pkgroot = kwargs.get('install_dir', default_install_dir)
|
||||
if pkgroot is None:
|
||||
if mesonlib.is_freebsd():
|
||||
- pkgroot = os.path.join(state.environment.coredata.get_option(mesonlib.OptionKey('prefix')), 'libdata', 'pkgconfig')
|
||||
+ pkgroot = os.path.join(state.environment.coredata.get_option(mesonlib.OptionKey('prefix')), 'lib', 'pkgconfig')
|
||||
else:
|
||||
pkgroot = os.path.join(state.environment.coredata.get_option(mesonlib.OptionKey('libdir')), 'pkgconfig')
|
||||
if not isinstance(pkgroot, str):
|
||||
9
devel/meson/pkg-descr
Normal file
9
devel/meson/pkg-descr
Normal file
@@ -0,0 +1,9 @@
|
||||
Meson is a cross-platform build system designed to be both as fast and as
|
||||
user friendly as possible. It supports many languages and compilers, including
|
||||
GCC, Clang and Visual Studio. Its build definitions are written in a simple
|
||||
non-turing complete DSL. The main design point of Meson is that every moment
|
||||
a developer spends writing or debugging build definitions is a second wasted.
|
||||
So is every second spent waiting for the build system to actually start
|
||||
compiling code.
|
||||
|
||||
WWW: https://mesonbuild.com/
|
||||
Reference in New Issue
Block a user