Fix FTBFS (RHBZ #1385042)

Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
This commit is contained in:
Igor Gnatenko 2016-11-20 14:14:40 +01:00
commit 1b61464d87
2 changed files with 158 additions and 67 deletions

View file

@ -1,76 +1,168 @@
diff -uNr angelscript-2.31.1.orig/sdk/angelscript/projects/meson/detect_ver.py angelscript-2.31.1/sdk/angelscript/projects/meson/detect_ver.py
--- angelscript-2.31.1.orig/sdk/angelscript/projects/meson/detect_ver.py 2015-05-21 23:01:38.000000000 +0200
+++ angelscript-2.31.1/sdk/angelscript/projects/meson/detect_ver.py 2016-06-27 10:39:52.288537225 +0200
@@ -1,5 +1,17 @@
+import argparse
+import os
import re
+++ angelscript-2.31.1/sdk/angelscript/projects/meson/detect_ver.py 2016-11-20 14:14:03.213827982 +0100
@@ -1,5 +1,28 @@
-import re
-with open('../../include/angelscript.h') as f:
- for l in f.readlines():
- if l.startswith('#define ANGELSCRIPT_VERSION_STRING'):
- print(re.search('[\d]+\.[\d]+\.[\d]+', l).group(0))
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--major", action="store_true")
+ args = parser.parse_args()
+ hdr = os.path.join(os.path.dirname(os.path.abspath(__file__)),
+ "..", "..", "include", "angelscript.h")
+ count = 2 if args.major else 3
+ regex = re.compile(r"\.".join(count * [r"[\d]+"]))
+ with open(hdr, "r") as f:
+ for l in f.readlines():
+ if l.startswith('#define ANGELSCRIPT_VERSION_STRING'):
+ print(re.search(regex, l).group(0))
+ break
+import argparse
+import os
+import re
+
+HEADER = os.path.join(os.path.dirname(os.path.abspath(__file__)),
+ "..", "..", "include", "angelscript.h")
+
+def main():
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--num", action="store_true", help="Print numeric version")
+ args = parser.parse_args()
+
+ if args.num:
+ regex = re.compile(r'^#define ANGELSCRIPT_VERSION\s+(\d+)')
+ else:
+ regex = re.compile(r'^#define ANGELSCRIPT_VERSION_STRING\s+"(\d+\.\d+\.\d+.*)"')
+
+ with open(HEADER, "r") as fobj:
+ for l in fobj:
+ match = re.match(regex, l)
+ if match is not None:
+ print(match.group(1))
+ return
+
+ assert False, "Can't find version"
+
+if __name__ == "__main__":
+ main()
diff -uNr angelscript-2.31.1.orig/sdk/angelscript/projects/meson/meson.build angelscript-2.31.1/sdk/angelscript/projects/meson/meson.build
--- angelscript-2.31.1.orig/sdk/angelscript/projects/meson/meson.build 2015-05-21 23:02:54.000000000 +0200
+++ angelscript-2.31.1/sdk/angelscript/projects/meson/meson.build 2016-06-27 10:39:52.293537384 +0200
@@ -1,9 +1,13 @@
+++ angelscript-2.31.1/sdk/angelscript/projects/meson/meson.build 2016-11-20 14:14:03.214828011 +0100
@@ -1,59 +1,68 @@
-project('angelscript', 'cpp', 'c')
+project('angelscript', 'cpp', 'c',
+ version : run_command(find_program('python3'), 'detect_ver.py').stdout().strip(),
+ meson_version : '>0.28.0',
+ license : 'zlib')
arch = run_command('uname', '-p').stdout().strip()
-
-arch = run_command('uname', '-p').stdout().strip()
-version = run_command(find_program('python3'), 'detect_ver.py').stdout().strip()
+major_version = run_command(find_program('python3'), 'detect_ver.py', '--major').stdout().strip()
+threads = dependency('threads')
-
-srcs = [
+angel_srcs = [
'../../source/as_atomic.cpp',
'../../source/as_builder.cpp',
'../../source/as_bytecode.cpp',
@@ -42,18 +46,21 @@
'../../source/as_variablescope.cpp',
]
if arch == 'armv7l'
- '../../source/as_atomic.cpp',
- '../../source/as_builder.cpp',
- '../../source/as_bytecode.cpp',
- '../../source/as_callfunc.cpp',
- '../../source/as_callfunc_arm.cpp',
- '../../source/as_callfunc_mips.cpp',
- '../../source/as_callfunc_ppc.cpp',
- '../../source/as_callfunc_ppc_64.cpp',
- '../../source/as_callfunc_sh4.cpp',
- '../../source/as_callfunc_x86.cpp',
- '../../source/as_callfunc_x64_gcc.cpp',
- '../../source/as_callfunc_x64_mingw.cpp',
- '../../source/as_compiler.cpp',
- '../../source/as_context.cpp',
- '../../source/as_configgroup.cpp',
- '../../source/as_datatype.cpp',
- '../../source/as_generic.cpp',
- '../../source/as_gc.cpp',
- '../../source/as_globalproperty.cpp',
- '../../source/as_memory.cpp',
- '../../source/as_module.cpp',
- '../../source/as_objecttype.cpp',
- '../../source/as_outputbuffer.cpp',
- '../../source/as_parser.cpp',
- '../../source/as_restore.cpp',
- '../../source/as_scriptcode.cpp',
- '../../source/as_scriptengine.cpp',
- '../../source/as_scriptfunction.cpp',
- '../../source/as_scriptnode.cpp',
- '../../source/as_scriptobject.cpp',
- '../../source/as_string.cpp',
- '../../source/as_string_util.cpp',
- '../../source/as_thread.cpp',
- '../../source/as_tokenizer.cpp',
- '../../source/as_typeinfo.cpp',
- '../../source/as_variablescope.cpp',
-]
-if arch == 'armv7l'
- srcs = srcs + [
- '../../source/as_callfunc_arm.cpp',
- '../../source/as_callfunc_arm_gcc.S'
- ]
+ angel_srcs += ['../../source/as_callfunc_arm_gcc.S']
endif
+angelscript_inc = include_directories('../../include/')
-endif
-
-shared_library(
- 'angelscript',
- sources : srcs,
+angelscript_lib = library('angelscript', angel_srcs,
+ dependencies : threads,
install : true,
- install : true,
- soversion : '0',
- version : version,
+ soversion : major_version,
+ version : meson.project_version()
)
install_headers('../../include/angelscript.h')
+
+angelscript_dep = declare_dependency(
+ link_with : angelscript_lib,
+ include_directories : angelscript_inc,
+ version : meson.project_version()
+)
-)
-
-install_headers('../../include/angelscript.h')
+project('angelscript', 'cpp',
+ version : run_command(find_program('python3'), 'detect_ver.py').stdout().strip(),
+ meson_version : '>=0.28.0',
+ license : 'zlib')
+
+threads = dependency('threads')
+
+angel_srcs = [
+ '../../source/as_atomic.cpp',
+ '../../source/as_builder.cpp',
+ '../../source/as_bytecode.cpp',
+ '../../source/as_callfunc.cpp',
+ '../../source/as_callfunc_mips.cpp',
+ '../../source/as_callfunc_ppc.cpp',
+ '../../source/as_callfunc_ppc_64.cpp',
+ '../../source/as_callfunc_sh4.cpp',
+ '../../source/as_callfunc_x86.cpp',
+ '../../source/as_callfunc_x64_gcc.cpp',
+ '../../source/as_callfunc_x64_mingw.cpp',
+ '../../source/as_compiler.cpp',
+ '../../source/as_context.cpp',
+ '../../source/as_configgroup.cpp',
+ '../../source/as_datatype.cpp',
+ '../../source/as_generic.cpp',
+ '../../source/as_gc.cpp',
+ '../../source/as_globalproperty.cpp',
+ '../../source/as_memory.cpp',
+ '../../source/as_module.cpp',
+ '../../source/as_objecttype.cpp',
+ '../../source/as_outputbuffer.cpp',
+ '../../source/as_parser.cpp',
+ '../../source/as_restore.cpp',
+ '../../source/as_scriptcode.cpp',
+ '../../source/as_scriptengine.cpp',
+ '../../source/as_scriptfunction.cpp',
+ '../../source/as_scriptnode.cpp',
+ '../../source/as_scriptobject.cpp',
+ '../../source/as_string.cpp',
+ '../../source/as_string_util.cpp',
+ '../../source/as_thread.cpp',
+ '../../source/as_tokenizer.cpp',
+ '../../source/as_typeinfo.cpp',
+ '../../source/as_variablescope.cpp',
+]
+if host_machine.cpu_family() == 'arm'
+ add_languages('c')
+ angel_scrs += [
+ '../../source/as_callfunc_arm.cpp',
+ '../../source/as_callfunc_arm_gcc.S',
+ ]
+endif
+
+angelscript_version_num = run_command(find_program('python3'), 'detect_ver.py', '--num').stdout().strip()
+angelscript_lib = library(
+ 'angelscript',
+ sources : angel_srcs,
+ dependencies : threads,
+ version : angelscript_version_num,
+ install : true,
+)
+angelscript_inc = include_directories('../../include')
+angelscript_dep = declare_dependency(
+ link_with : angelscript_lib,
+ include_directories : angelscript_inc,
+ version : meson.project_version(),
+)
+
+install_headers('../../include/angelscript.h')

View file

@ -1,8 +1,10 @@
%global optflags %(echo %{optflags} -fno-strict-aliasing)
%global __sourcedir sdk/%{name}/projects/meson/
Name: angelscript
Version: 2.31.1
Release: 1%{?dist}
Release: 2%{?dist}
Summary: Flexible cross-platform scripting library
License: zlib
@ -12,7 +14,7 @@ Source0: %{url}/sdk/files/%{name}_%{version}.zip
# Sent upstream via mail
Patch0: angelscript-2.31.1-meson.diff
BuildRequires: meson >= 0.23.0-3
BuildRequires: meson
ExclusiveArch: x86_64 %{ix86} %{arm}
@ -34,21 +36,15 @@ developing applications that use %{name}.
%prep
%autosetup -c -p1
mkdir build
%build
pushd build
%meson ../sdk/%{name}/projects/meson/
ninja-build -v
popd
%meson
%meson_build
%install
pushd build
DESTDIR=%{buildroot} ninja-build -v install
popd
%meson_install
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
@ -61,6 +57,9 @@ popd
%{_includedir}/%{name}.h
%changelog
* Sun Nov 20 2016 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.31.1-2
- Fix FTBFS (RHBZ #1385042)
* Mon Jun 27 2016 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.31.1-1
- Update to 2.31.1 (RHBZ #1350286)