mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-22 03:30:05 +02:00
meson: bump to 1.0.0, set default Haiku install paths (#7792)
This commit is contained in:
@@ -4,9 +4,9 @@ build system."
|
||||
HOMEPAGE="https://mesonbuild.com/"
|
||||
COPYRIGHT="2013-2020 The Meson development team"
|
||||
LICENSE="Apache v2"
|
||||
REVISION="2"
|
||||
REVISION="1"
|
||||
SOURCE_URI="https://github.com/mesonbuild/meson/releases/download/$portVersion/meson-$portVersion.tar.gz"
|
||||
CHECKSUM_SHA256="16222f17ef76be0542c91c07994f9676ae879f46fc21c0c786a21ef2cb518bbf"
|
||||
CHECKSUM_SHA256="aa50a4ba4557c25e7d48446abfde857957dcdf58385fffbe670ba0e8efacce05"
|
||||
PATCHES="meson-$portVersion.patchset"
|
||||
PYTHON_VERSION="3.9"
|
||||
|
||||
@@ -1,76 +0,0 @@
|
||||
From 1c85cc5b4a5c3bf2f1857ff44a7eb0332d7969d0 Mon Sep 17 00:00:00 2001
|
||||
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
||||
Date: Mon, 3 Aug 2020 11:56:45 +0200
|
||||
Subject: Fix include path for boost
|
||||
|
||||
|
||||
diff --git a/mesonbuild/dependencies/boost.py b/mesonbuild/dependencies/boost.py
|
||||
index cb432a3..ace605a 100644
|
||||
--- a/mesonbuild/dependencies/boost.py
|
||||
+++ b/mesonbuild/dependencies/boost.py
|
||||
@@ -523,10 +523,11 @@ class BoostDependency(SystemDependency):
|
||||
|
||||
def detect_inc_dirs(self, root: Path) -> T.List[BoostIncludeDir]:
|
||||
candidates = [] # type: T.List[Path]
|
||||
- inc_root = root / 'include'
|
||||
+ inc_root = root / 'headers'
|
||||
|
||||
candidates += [root / 'boost']
|
||||
candidates += [inc_root / 'boost']
|
||||
+ candidates += [inc_root / 'x86' / 'boost']
|
||||
if inc_root.is_dir():
|
||||
for i in inc_root.iterdir():
|
||||
if not i.is_dir() or not i.name.startswith('boost-'):
|
||||
--
|
||||
2.30.2
|
||||
|
||||
|
||||
From f11c4d8f38cbce8d0cc0ac78552e063caefc7f50 Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Duval <jerome.duval@gmail.com>
|
||||
Date: Fri, 26 Nov 2021 11:39:48 +0100
|
||||
Subject: add support for gcc 2.95.3
|
||||
|
||||
|
||||
diff --git a/mesonbuild/compilers/detect.py b/mesonbuild/compilers/detect.py
|
||||
index f4afa77..084b544 100644
|
||||
--- a/mesonbuild/compilers/detect.py
|
||||
+++ b/mesonbuild/compilers/detect.py
|
||||
@@ -435,7 +435,7 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin
|
||||
version = search_version(out)
|
||||
|
||||
guess_gcc_or_lcc: T.Optional[str] = None
|
||||
- if 'Free Software Foundation' in out or 'xt-' in out:
|
||||
+ if 'Free Software Foundation' in out or 'xt-' in out or '2.95.3' in out:
|
||||
guess_gcc_or_lcc = 'gcc'
|
||||
if 'e2k' in out and 'lcc' in out:
|
||||
guess_gcc_or_lcc = 'lcc'
|
||||
diff --git a/mesonbuild/compilers/mixins/gnu.py b/mesonbuild/compilers/mixins/gnu.py
|
||||
index 1b1e8a1..73d4753 100644
|
||||
--- a/mesonbuild/compilers/mixins/gnu.py
|
||||
+++ b/mesonbuild/compilers/mixins/gnu.py
|
||||
@@ -275,7 +275,7 @@ class GnuLikeCompiler(Compiler, metaclass=abc.ABCMeta):
|
||||
stdo = self._get_search_dirs(env)
|
||||
for line in stdo.split('\n'):
|
||||
if line.startswith(name + ':'):
|
||||
- return self._split_fetch_real_dirs(line.split('=', 1)[1])
|
||||
+ return self._split_fetch_real_dirs(line.split('=', 1)[1] if '=' in line else line)
|
||||
return []
|
||||
|
||||
def get_lto_compile_args(self, *, threads: int = 0, mode: str = 'default') -> T.List[str]:
|
||||
@@ -397,3 +397,13 @@ class GnuCompiler(GnuLikeCompiler):
|
||||
if linker == 'mold' and mesonlib.version_compare(version, '>=12.0.1'):
|
||||
return ['-fuse-ld=mold']
|
||||
return super().use_linker_args(linker, version)
|
||||
+
|
||||
+ def gnu_symbol_visibility_args(self, vistype: str) -> T.List[str]:
|
||||
+ if mesonlib.version_compare(self.version, '< 4'):
|
||||
+ vistype = ''
|
||||
+ return super().gnu_symbol_visibility_args(vistype)
|
||||
+
|
||||
+ def get_dependency_gen_args(self, outtarget: str, outfile: str) -> T.List[str]:
|
||||
+ if mesonlib.version_compare(self.version, '< 4'):
|
||||
+ return []
|
||||
+ return super().get_dependency_gen_args(outtarget, outfile)
|
||||
--
|
||||
2.30.2
|
||||
|
||||
330
dev-util/meson/patches/meson-1.0.0.patchset
Normal file
330
dev-util/meson/patches/meson-1.0.0.patchset
Normal file
@@ -0,0 +1,330 @@
|
||||
From 8d3f34603c2424a16a1c99ed7a654ac328871868 Mon Sep 17 00:00:00 2001
|
||||
From: Eli Schwartz <eschwartz@archlinux.org>
|
||||
Date: Thu, 19 Jan 2023 15:46:05 -0500
|
||||
Subject: remove dead code
|
||||
|
||||
We shouldn't be hardcoding library dirs anyway. And we usually get this
|
||||
from the compiler.
|
||||
|
||||
This function has been unused since its users were moved to use the
|
||||
compiler method, in the following commits:
|
||||
- a1a4f66e6d915c1f6aae2ead02cf5631b10c76f1
|
||||
- a3856be1d50eaefe32fee5d3347d55d934d15b50
|
||||
- 08224dafcba1b694fb624553e7d84deb565aae22
|
||||
---
|
||||
mesonbuild/utils/universal.py | 47 -----------------------------------
|
||||
1 file changed, 47 deletions(-)
|
||||
|
||||
diff --git a/mesonbuild/utils/universal.py b/mesonbuild/utils/universal.py
|
||||
index a78ca7fd9..9fa0d5167 100644
|
||||
--- a/mesonbuild/utils/universal.py
|
||||
+++ b/mesonbuild/utils/universal.py
|
||||
@@ -94,7 +94,6 @@ __all__ = [
|
||||
'generate_list',
|
||||
'get_compiler_for_source',
|
||||
'get_filenames_templates_dict',
|
||||
- 'get_library_dirs',
|
||||
'get_variable_regex',
|
||||
'get_wine_shortpath',
|
||||
'git',
|
||||
@@ -986,52 +985,6 @@ def default_prefix() -> str:
|
||||
return 'c:/' if is_windows() else '/usr/local'
|
||||
|
||||
|
||||
-def get_library_dirs() -> T.List[str]:
|
||||
- if is_windows():
|
||||
- return ['C:/mingw/lib'] # TODO: get programmatically
|
||||
- if is_osx():
|
||||
- return ['/usr/lib'] # TODO: get programmatically
|
||||
- # The following is probably Debian/Ubuntu specific.
|
||||
- # /usr/local/lib is first because it contains stuff
|
||||
- # installed by the sysadmin and is probably more up-to-date
|
||||
- # than /usr/lib. If you feel that this search order is
|
||||
- # problematic, please raise the issue on the mailing list.
|
||||
- unixdirs = ['/usr/local/lib', '/usr/lib', '/lib']
|
||||
-
|
||||
- if is_freebsd():
|
||||
- return unixdirs
|
||||
- # FIXME: this needs to be further genericized for aarch64 etc.
|
||||
- machine = platform.machine()
|
||||
- if machine in {'i386', 'i486', 'i586', 'i686'}:
|
||||
- plat = 'i386'
|
||||
- elif machine.startswith('arm'):
|
||||
- plat = 'arm'
|
||||
- else:
|
||||
- plat = ''
|
||||
-
|
||||
- # Solaris puts 32-bit libraries in the main /lib & /usr/lib directories
|
||||
- # and 64-bit libraries in platform specific subdirectories.
|
||||
- if is_sunos():
|
||||
- if machine == 'i86pc':
|
||||
- plat = 'amd64'
|
||||
- elif machine.startswith('sun4'):
|
||||
- plat = 'sparcv9'
|
||||
-
|
||||
- usr_platdir = Path('/usr/lib/') / plat
|
||||
- if usr_platdir.is_dir():
|
||||
- unixdirs += [str(x) for x in (usr_platdir).iterdir() if x.is_dir()]
|
||||
- if os.path.exists('/usr/lib64'):
|
||||
- unixdirs.append('/usr/lib64')
|
||||
-
|
||||
- lib_platdir = Path('/lib/') / plat
|
||||
- if lib_platdir.is_dir():
|
||||
- unixdirs += [str(x) for x in (lib_platdir).iterdir() if x.is_dir()]
|
||||
- if os.path.exists('/lib64'):
|
||||
- unixdirs.append('/lib64')
|
||||
-
|
||||
- return unixdirs
|
||||
-
|
||||
-
|
||||
def has_path_sep(name: str, sep: str = '/\\') -> bool:
|
||||
'Checks if any of the specified @sep path separators are in @name'
|
||||
for each in sep:
|
||||
--
|
||||
2.36.1
|
||||
|
||||
|
||||
From 29771e62faba9f38d55bf34dbe40b16720170c92 Mon Sep 17 00:00:00 2001
|
||||
From: X512 <danger_mail@list.ru>
|
||||
Date: Fri, 10 Jun 2022 22:34:00 +0900
|
||||
Subject: haiku: set default prefix and library paths
|
||||
|
||||
---
|
||||
mesonbuild/coredata.py | 18 ++++++-----
|
||||
mesonbuild/utils/universal.py | 57 ++++++++++++++++++++++++++++++++++-
|
||||
2 files changed, 66 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py
|
||||
index 6d63625f2..a3c5bd4f5 100644
|
||||
--- a/mesonbuild/coredata.py
|
||||
+++ b/mesonbuild/coredata.py
|
||||
@@ -22,7 +22,9 @@ from .mesonlib import (
|
||||
HoldableObject,
|
||||
MesonException, EnvironmentException, MachineChoice, PerMachine,
|
||||
PerMachineDefaultable, default_libdir, default_libexecdir,
|
||||
- default_prefix, split_args, OptionKey, OptionType, stringlistify,
|
||||
+ default_prefix, default_datadir, default_includedir, default_infodir,
|
||||
+ default_localedir, default_mandir, default_sbindir, default_sysconfdir,
|
||||
+ split_args, OptionKey, OptionType, stringlistify,
|
||||
pickle_load, replace_if_different
|
||||
)
|
||||
from .wrap import WrapMode
|
||||
@@ -1193,17 +1195,17 @@ class BuiltinOption(T.Generic[_T, _U]):
|
||||
BUILTIN_DIR_OPTIONS: 'MutableKeyedOptionDictType' = OrderedDict([
|
||||
(OptionKey('prefix'), BuiltinOption(UserStringOption, 'Installation prefix', default_prefix())),
|
||||
(OptionKey('bindir'), BuiltinOption(UserStringOption, 'Executable directory', 'bin')),
|
||||
- (OptionKey('datadir'), BuiltinOption(UserStringOption, 'Data file directory', 'share')),
|
||||
- (OptionKey('includedir'), BuiltinOption(UserStringOption, 'Header file directory', 'include')),
|
||||
- (OptionKey('infodir'), BuiltinOption(UserStringOption, 'Info page directory', 'share/info')),
|
||||
+ (OptionKey('datadir'), BuiltinOption(UserStringOption, 'Data file directory', default_datadir())),
|
||||
+ (OptionKey('includedir'), BuiltinOption(UserStringOption, 'Header file directory', default_includedir())),
|
||||
+ (OptionKey('infodir'), BuiltinOption(UserStringOption, 'Info page directory', default_infodir())),
|
||||
(OptionKey('libdir'), BuiltinOption(UserStringOption, 'Library directory', default_libdir())),
|
||||
(OptionKey('libexecdir'), BuiltinOption(UserStringOption, 'Library executable directory', default_libexecdir())),
|
||||
- (OptionKey('localedir'), BuiltinOption(UserStringOption, 'Locale data directory', 'share/locale')),
|
||||
+ (OptionKey('localedir'), BuiltinOption(UserStringOption, 'Locale data directory', default_localedir())),
|
||||
(OptionKey('localstatedir'), BuiltinOption(UserStringOption, 'Localstate data directory', 'var')),
|
||||
- (OptionKey('mandir'), BuiltinOption(UserStringOption, 'Manual page directory', 'share/man')),
|
||||
- (OptionKey('sbindir'), BuiltinOption(UserStringOption, 'System executable directory', 'sbin')),
|
||||
+ (OptionKey('mandir'), BuiltinOption(UserStringOption, 'Manual page directory', default_mandir())),
|
||||
+ (OptionKey('sbindir'), BuiltinOption(UserStringOption, 'System executable directory', default_sbindir())),
|
||||
(OptionKey('sharedstatedir'), BuiltinOption(UserStringOption, 'Architecture-independent data directory', 'com')),
|
||||
- (OptionKey('sysconfdir'), BuiltinOption(UserStringOption, 'Sysconf data directory', 'etc')),
|
||||
+ (OptionKey('sysconfdir'), BuiltinOption(UserStringOption, 'Sysconf data directory', default_sysconfdir())),
|
||||
])
|
||||
|
||||
BUILTIN_CORE_OPTIONS: 'MutableKeyedOptionDictType' = OrderedDict([
|
||||
diff --git a/mesonbuild/utils/universal.py b/mesonbuild/utils/universal.py
|
||||
index 9fa0d5167..4efe93bdd 100644
|
||||
--- a/mesonbuild/utils/universal.py
|
||||
+++ b/mesonbuild/utils/universal.py
|
||||
@@ -82,6 +82,13 @@ __all__ = [
|
||||
'default_libdir',
|
||||
'default_libexecdir',
|
||||
'default_prefix',
|
||||
+ 'default_datadir',
|
||||
+ 'default_includedir',
|
||||
+ 'default_infodir',
|
||||
+ 'default_localedir',
|
||||
+ 'default_mandir',
|
||||
+ 'default_sbindir',
|
||||
+ 'default_sysconfdir',
|
||||
'detect_subprojects',
|
||||
'detect_vcs',
|
||||
'do_conf_file',
|
||||
@@ -977,12 +984,60 @@ def default_libdir() -> str:
|
||||
|
||||
|
||||
def default_libexecdir() -> str:
|
||||
+ if is_haiku():
|
||||
+ return 'lib'
|
||||
# There is no way to auto-detect this, so it must be set at build time
|
||||
return 'libexec'
|
||||
|
||||
|
||||
def default_prefix() -> str:
|
||||
- return 'c:/' if is_windows() else '/usr/local'
|
||||
+ if is_windows():
|
||||
+ return 'c:/'
|
||||
+ if is_haiku():
|
||||
+ return '/boot/system/non-packaged'
|
||||
+ return '/usr/local'
|
||||
+
|
||||
+
|
||||
+def default_datadir() -> str:
|
||||
+ if is_haiku():
|
||||
+ return 'data'
|
||||
+ return 'share'
|
||||
+
|
||||
+
|
||||
+def default_includedir() -> str:
|
||||
+ if is_haiku():
|
||||
+ return 'develop/headers'
|
||||
+ return 'include'
|
||||
+
|
||||
+
|
||||
+def default_infodir() -> str:
|
||||
+ if is_haiku():
|
||||
+ return 'documentation/info'
|
||||
+ return 'share/info'
|
||||
+
|
||||
+
|
||||
+def default_localedir() -> str:
|
||||
+ if is_haiku():
|
||||
+ return 'data/locale'
|
||||
+ return 'share/locale'
|
||||
+
|
||||
+
|
||||
+def default_mandir() -> str:
|
||||
+ if is_haiku():
|
||||
+ return 'documentation/man'
|
||||
+ return 'share/man'
|
||||
+
|
||||
+
|
||||
+def default_sbindir() -> str:
|
||||
+ if is_haiku():
|
||||
+ return 'bin'
|
||||
+ return 'sbin'
|
||||
+
|
||||
+
|
||||
+def default_sysconfdir() -> str:
|
||||
+ if is_haiku():
|
||||
+ return 'settings'
|
||||
+ return 'etc'
|
||||
|
||||
|
||||
def has_path_sep(name: str, sep: str = '/\\') -> bool:
|
||||
--
|
||||
2.36.1
|
||||
|
||||
|
||||
From 696fea28044e99a6f5609910e20db625f6580aac Mon Sep 17 00:00:00 2001
|
||||
From: X512 <danger_mail@list.ru>
|
||||
Date: Sat, 5 Nov 2022 07:55:32 +0900
|
||||
Subject: Haiku pkgconfig directory layout support
|
||||
|
||||
---
|
||||
mesonbuild/modules/pkgconfig.py | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py
|
||||
index d475618ba..af8467c08 100644
|
||||
--- a/mesonbuild/modules/pkgconfig.py
|
||||
+++ b/mesonbuild/modules/pkgconfig.py
|
||||
@@ -699,6 +699,9 @@ class PkgConfigModule(NewExtensionModule):
|
||||
if mesonlib.is_freebsd():
|
||||
pkgroot = os.path.join(_as_str(state.environment.coredata.get_option(mesonlib.OptionKey('prefix'))), 'libdata', 'pkgconfig')
|
||||
pkgroot_name = os.path.join('{prefix}', 'libdata', 'pkgconfig')
|
||||
+ elif mesonlib.is_haiku():
|
||||
+ pkgroot = os.path.join(_as_str(state.environment.coredata.get_option(mesonlib.OptionKey('prefix'))), 'develop', 'lib', 'pkgconfig')
|
||||
+ pkgroot_name = os.path.join('{prefix}', 'develop', 'lib', 'pkgconfig')
|
||||
else:
|
||||
pkgroot = os.path.join(_as_str(state.environment.coredata.get_option(mesonlib.OptionKey('libdir'))), 'pkgconfig')
|
||||
pkgroot_name = os.path.join('{libdir}', 'pkgconfig')
|
||||
--
|
||||
2.36.1
|
||||
|
||||
|
||||
From 623f7c7c8cfd17d9123f052af7b9b16871496f11 Mon Sep 17 00:00:00 2001
|
||||
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
||||
Date: Mon, 3 Aug 2020 11:56:45 +0200
|
||||
Subject: Fix include path for boost
|
||||
|
||||
---
|
||||
mesonbuild/dependencies/boost.py | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/mesonbuild/dependencies/boost.py b/mesonbuild/dependencies/boost.py
|
||||
index 4ebd88d7b..e3a159266 100644
|
||||
--- a/mesonbuild/dependencies/boost.py
|
||||
+++ b/mesonbuild/dependencies/boost.py
|
||||
@@ -523,10 +523,11 @@ class BoostDependency(SystemDependency):
|
||||
|
||||
def detect_inc_dirs(self, root: Path) -> T.List[BoostIncludeDir]:
|
||||
candidates = [] # type: T.List[Path]
|
||||
- inc_root = root / 'include'
|
||||
+ inc_root = root / 'headers'
|
||||
|
||||
candidates += [root / 'boost']
|
||||
candidates += [inc_root / 'boost']
|
||||
+ candidates += [inc_root / 'x86' / 'boost']
|
||||
if inc_root.is_dir():
|
||||
for i in inc_root.iterdir():
|
||||
if not i.is_dir() or not i.name.startswith('boost-'):
|
||||
--
|
||||
2.36.1
|
||||
|
||||
|
||||
From a656d8af6b595a680c5827389c5b4405fdac9754 Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Duval <jerome.duval@gmail.com>
|
||||
Date: Fri, 26 Nov 2021 11:39:48 +0100
|
||||
Subject: add support for gcc 2.95.3
|
||||
|
||||
---
|
||||
mesonbuild/compilers/detect.py | 2 +-
|
||||
mesonbuild/compilers/mixins/gnu.py | 12 +++++++++++-
|
||||
2 files changed, 12 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/mesonbuild/compilers/detect.py b/mesonbuild/compilers/detect.py
|
||||
index 367bcf915..9682ae7c4 100644
|
||||
--- a/mesonbuild/compilers/detect.py
|
||||
+++ b/mesonbuild/compilers/detect.py
|
||||
@@ -331,7 +331,7 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin
|
||||
version = search_version(out)
|
||||
|
||||
guess_gcc_or_lcc: T.Optional[str] = None
|
||||
- if 'Free Software Foundation' in out or 'xt-' in out:
|
||||
+ if 'Free Software Foundation' in out or 'xt-' in out or '2.95.3' in out:
|
||||
guess_gcc_or_lcc = 'gcc'
|
||||
if 'e2k' in out and 'lcc' in out:
|
||||
guess_gcc_or_lcc = 'lcc'
|
||||
diff --git a/mesonbuild/compilers/mixins/gnu.py b/mesonbuild/compilers/mixins/gnu.py
|
||||
index 8152b2538..ee061f82b 100644
|
||||
--- a/mesonbuild/compilers/mixins/gnu.py
|
||||
+++ b/mesonbuild/compilers/mixins/gnu.py
|
||||
@@ -508,7 +508,7 @@ class GnuLikeCompiler(Compiler, metaclass=abc.ABCMeta):
|
||||
stdo = self._get_search_dirs(env)
|
||||
for line in stdo.split('\n'):
|
||||
if line.startswith(name + ':'):
|
||||
- return self._split_fetch_real_dirs(line.split('=', 1)[1])
|
||||
+ return self._split_fetch_real_dirs(line.split('=', 1)[1] if '=' in line else line)
|
||||
return []
|
||||
|
||||
def get_lto_compile_args(self, *, threads: int = 0, mode: str = 'default') -> T.List[str]:
|
||||
@@ -643,3 +643,13 @@ class GnuCompiler(GnuLikeCompiler):
|
||||
if linker == 'mold' and mesonlib.version_compare(version, '>=12.0.1'):
|
||||
return ['-fuse-ld=mold']
|
||||
return super().use_linker_args(linker, version)
|
||||
+
|
||||
+ def gnu_symbol_visibility_args(self, vistype: str) -> T.List[str]:
|
||||
+ if mesonlib.version_compare(self.version, '< 4'):
|
||||
+ vistype = ''
|
||||
+ return super().gnu_symbol_visibility_args(vistype)
|
||||
+
|
||||
+ def get_dependency_gen_args(self, outtarget: str, outfile: str) -> T.List[str]:
|
||||
+ if mesonlib.version_compare(self.version, '< 4'):
|
||||
+ return []
|
||||
+ return super().get_dependency_gen_args(outtarget, outfile)
|
||||
--
|
||||
2.36.1
|
||||
|
||||
Reference in New Issue
Block a user