From b3a1fa7b884ea8f1ba63a55237c8c773050a185e Mon Sep 17 00:00:00 2001
From: angelcode <angelcode@404ce1b2-830e-0410-a2e2-b09542c77caf>
Date: Mon, 21 Nov 2016 23:28:50 +0000
Subject: [PATCH 2/3] Changes to meson project files
git-svn-id: http://svn.code.sf.net/p/angelscript/code/trunk@2361 404ce1b2-830e-0410-a2e2-b09542c77caf
(cherry picked from commit 602584f835ef007463bb7d798cf4baeee4d37f2b)
---
sdk/angelscript/projects/meson/detect_ver.py | 31 ++++++++++++++++++++++----
sdk/angelscript/projects/meson/meson.build | 33 ++++++++++++++++++----------
2 files changed, 48 insertions(+), 16 deletions(-)
diff --git a/sdk/angelscript/projects/meson/detect_ver.py b/sdk/angelscript/projects/meson/detect_ver.py
index d7ae8a5..2e05ddf 100644
--- a/sdk/angelscript/projects/meson/detect_ver.py
+++ b/sdk/angelscript/projects/meson/detect_ver.py
@@ -1,5 +1,28 @@
+import argparse
+import os
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))
+
+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()
\ No newline at end of file
diff --git a/sdk/angelscript/projects/meson/meson.build b/sdk/angelscript/projects/meson/meson.build
index 891e8c2..9dea003 100644
--- a/sdk/angelscript/projects/meson/meson.build
+++ b/sdk/angelscript/projects/meson/meson.build
@@ -1,14 +1,15 @@
-project('angelscript', 'cpp', 'c')
+project('angelscript', 'cpp',
+ 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()
-version = run_command(find_program('python3'), 'detect_ver.py').stdout().strip()
+threads = dependency('threads')
-srcs = [
+angel_srcs = [
'../../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',
@@ -41,19 +42,27 @@ srcs = [
'../../source/as_typeinfo.cpp',
'../../source/as_variablescope.cpp',
]
-if arch == 'armv7l'
- srcs = srcs + [
+if host_machine.cpu_family() == 'arm'
+ add_languages('c')
+ angel_srcs += [
'../../source/as_callfunc_arm.cpp',
- '../../source/as_callfunc_arm_gcc.S'
+ '../../source/as_callfunc_arm_gcc.S',
]
endif
-shared_library(
+angelscript_version_num = run_command(find_program('python3'), 'detect_ver.py', '--num').stdout().strip()
+angelscript_lib = library(
'angelscript',
- sources : srcs,
+ sources : angel_srcs,
+ dependencies : threads,
+ version : angelscript_version_num,
install : true,
- soversion : '0',
- version : version,
+)
+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')
--
2.10.2