Blob Blame History Raw
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