diff options
author | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2018-08-12 15:26:29 +0200 |
---|---|---|
committer | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2018-10-02 17:22:50 +0200 |
commit | 46d464e5bfc10398461a33a2256c1c58d509dd1a (patch) | |
tree | 8c1a9272c05f14033a4430bc122632461bd73608 /scripts | |
parent | 70ecf1056bb4be5a68b63044f938ccc2fe0a58c0 (diff) |
here comes meson
a new shiny buildtool that currently completes in the total of ~ 4 min..
1 min. conf time
2:30 min. build time
Where autotools takes:
1:50 min. conf time
3:40 min. build time.
meson was taken because it went quite good for enlightenment, and is a traction gaining system that is also used by other mayor projects. Additionally, the DSL that is defined my meson makes the configuration of the builds a lot easier to read.
Further informations can be gathered from the README.meson
Right now, bindings & windows support are missing.
It is highly recommented to use meson 0.48 due to optimizations in meson
that reduced the time the meson call would need.
Co-authored-by: Mike Blumenkrantz <zmike@samsung.com>
Differential Revision: https://phab.enlightenment.org/D7012
Depends on D7011
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/check_options.sh | 10 | ||||
-rw-r--r-- | scripts/create_all_options.lua | 52 |
2 files changed, 62 insertions, 0 deletions
diff --git a/scripts/check_options.sh b/scripts/check_options.sh new file mode 100755 index 0000000000..d6b3c3e48f --- /dev/null +++ b/scripts/check_options.sh | |||
@@ -0,0 +1,10 @@ | |||
1 | #!/bin/bash | ||
2 | |||
3 | BUILD_DIR=`mktemp -d` | ||
4 | INSTALL_DIR=`mktemp -d` | ||
5 | |||
6 | meson $@ --prefix ${INSTALL_DIR} ${BUILD_DIR} | ||
7 | |||
8 | ninja -C ${BUILD_DIR} all | ||
9 | ninja -C ${BUILD_DIR} install | ||
10 | #ninja -C ${BUILD_DIR} test \ No newline at end of file | ||
diff --git a/scripts/create_all_options.lua b/scripts/create_all_options.lua new file mode 100644 index 0000000000..3bbc748742 --- /dev/null +++ b/scripts/create_all_options.lua | |||
@@ -0,0 +1,52 @@ | |||
1 | options = { | ||
2 | {"-Dopengl=", "full", "none", "es-egl"}, | ||
3 | {"--buildtype ", "plain", "debug", "release"}, | ||
4 | {"-Devas-modules ", "shared", "static"}, | ||
5 | } | ||
6 | |||
7 | concated_options = {} | ||
8 | |||
9 | for i,v in pairs(options) do | ||
10 | tmp_options = {} | ||
11 | |||
12 | option_name = v[1] | ||
13 | |||
14 | for i=2, #v do | ||
15 | table.insert(tmp_options, option_name..v[i]) | ||
16 | end | ||
17 | |||
18 | table.insert(concated_options, tmp_options) | ||
19 | end | ||
20 | |||
21 | function permutate(values) | ||
22 | local permutater = {table.unpack(values[1])} | ||
23 | |||
24 | if #values == 1 then | ||
25 | return {table.unpack(values[1])} | ||
26 | else | ||
27 | local result = {} | ||
28 | table.remove(values, 1) | ||
29 | local list_to_complete = permutate(values) | ||
30 | |||
31 | for k,v in pairs(list_to_complete) do | ||
32 | for k_perm,v_perm in pairs(permutater) do | ||
33 | table.insert(result, v_perm.." "..v) | ||
34 | end | ||
35 | end | ||
36 | return result | ||
37 | end | ||
38 | end | ||
39 | |||
40 | all_options = permutate(concated_options) | ||
41 | |||
42 | print("GOING TO BUILD ALOT OF EFL") | ||
43 | |||
44 | for k,v in pairs(all_options) do | ||
45 | cmd = "sh ./scripts/check_options.sh "..v.." "..arg[1] | ||
46 | exitcode = os.execute(cmd) | ||
47 | if exitcode ~= true then | ||
48 | print("command "..cmd.." failed. ") | ||
49 | print(exitcode) | ||
50 | os.exit(-1) | ||
51 | end | ||
52 | end | ||