Discussion:
[E-devel] Builds
Mike Blumenkrantz
2017-07-18 22:13:30 UTC
Permalink
Hi,

I've spent some time over the past couple days investigating ways to
improve efficiency during development. I came across the meson build system
(http://mesonbuild.com/), and the time comparisons to autotools made meson
seem staggeringly fast. Additionally, it seems to be quite flexible and
have cross-compilation support.

A fully functional meson build system for enlightenment can now be found in
my "meson" branch. My current benchmarks with it:

meson:
meson . build 2.05s user 0.64s system 103% cpu 2.607 total
ninja 379.02s user 60.36s system 347% cpu 2:06.31 total
sudo ninja install 2.36s user 0.35s system 98% cpu 2.746 total

autotools:
( autoreconf -fi && ./configure --prefix=/usr --libdir=/usr/lib64 ) 16.46s
user 2.74s system 96% cpu 19.830 total
make -j16 536.93s user 145.03s system 349% cpu 3:15.22 total
sudo make -j16 install 11.75s user 2.16s system 165% cpu 8.427 total


As seen above, this saves me over a minute for each rebuild, and I will
likely merge it into the main tree soon if no major issues are reported.


Known (unfixable) issue:
* If you have a configured source directory (ie. you have run ./configure),
the build may error due to inclusion of conflicting headers generated from
autotools and headers generated from meson. make clean will not delete
these headers; they require manual deletion or maintainer-clean.


To use after pulling meson branch:
1. <Install meson+ninja>
2. cd enlightenment
3. meson . build && cd build
3.5. [optional] mesonconf -D[option]=[value] (most options are now, instead
of --enable-option, -Doption=true; all options listed when running
mesonconf with no params)
4. ninja
5. sudo ninja install
Mike Blumenkrantz
2017-07-18 22:29:05 UTC
Permalink
I forgot to mention some code statistics:

meson:
3769 total lines of code
95387 characters

autotools:
4826 total lines of code
160933 characters

On Tue, Jul 18, 2017 at 6:13 PM Mike Blumenkrantz <
Post by Mike Blumenkrantz
Hi,
I've spent some time over the past couple days investigating ways to
improve efficiency during development. I came across the meson build system
(http://mesonbuild.com/), and the time comparisons to autotools made
meson seem staggeringly fast. Additionally, it seems to be quite flexible
and have cross-compilation support.
A fully functional meson build system for enlightenment can now be found
meson . build 2.05s user 0.64s system 103% cpu 2.607 total
ninja 379.02s user 60.36s system 347% cpu 2:06.31 total
sudo ninja install 2.36s user 0.35s system 98% cpu 2.746 total
( autoreconf -fi && ./configure --prefix=/usr --libdir=/usr/lib64 )
16.46s user 2.74s system 96% cpu 19.830 total
make -j16 536.93s user 145.03s system 349% cpu 3:15.22 total
sudo make -j16 install 11.75s user 2.16s system 165% cpu 8.427 total
As seen above, this saves me over a minute for each rebuild, and I will
likely merge it into the main tree soon if no major issues are reported.
* If you have a configured source directory (ie. you have run
./configure), the build may error due to inclusion of conflicting headers
generated from autotools and headers generated from meson. make clean will
not delete these headers; they require manual deletion or maintainer-clean.
1. <Install meson+ninja>
2. cd enlightenment
3. meson . build && cd build
3.5. [optional] mesonconf -D[option]=[value] (most options are now,
instead of --enable-option, -Doption=true; all options listed when running
mesonconf with no params)
4. ninja
5. sudo ninja install
Carsten Haitzler (The Rasterman)
2017-07-18 23:47:39 UTC
Permalink
On Tue, 18 Jul 2017 22:13:30 +0000 Mike Blumenkrantz
Post by Mike Blumenkrantz
Hi,
I've spent some time over the past couple days investigating ways to
improve efficiency during development. I came across the meson build system
(http://mesonbuild.com/), and the time comparisons to autotools made meson
seem staggeringly fast. Additionally, it seems to be quite flexible and
have cross-compilation support.
A fully functional meson build system for enlightenment can now be found in
oh. so here it is.
Post by Mike Blumenkrantz
meson . build 2.05s user 0.64s system 103% cpu 2.607 total
ninja 379.02s user 60.36s system 347% cpu 2:06.31 total
sudo ninja install 2.36s user 0.35s system 98% cpu 2.746 total
( autoreconf -fi && ./configure --prefix=/usr --libdir=/usr/lib64 ) 16.46s
user 2.74s system 96% cpu 19.830 total
make -j16 536.93s user 145.03s system 349% cpu 3:15.22 total
sudo make -j16 install 11.75s user 2.16s system 165% cpu 8.427 total
As seen above, this saves me over a minute for each rebuild, and I will
likely merge it into the main tree soon if no major issues are reported.
more strategically... shouldn't we discuss this also for efl? i'd like us to
keep the same build systems for both efl and e. they are our 2 major core
flagship projects. i do not think they should diverge.

i think it's cool to experiment and look into build systems. there was work
with cmake for efl. you're looking at meson for e.
Post by Mike Blumenkrantz
* If you have a configured source directory (ie. you have run ./configure),
the build may error due to inclusion of conflicting headers generated from
autotools and headers generated from meson. make clean will not delete
these headers; they require manual deletion or maintainer-clean.
1. <Install meson+ninja>
2. cd enlightenment
3. meson . build && cd build
3.5. [optional] mesonconf -D[option]=[value] (most options are now, instead
of --enable-option, -Doption=true; all options listed when running
mesonconf with no params)
4. ninja
5. sudo ninja install
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
--
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler) ***@rasterman.com
Cedric BAIL
2017-07-19 00:23:08 UTC
Permalink
Hi,

On Jul 18, 2017 16:47, "Carsten Haitzler" <***@rasterman.com> wrote:

On Tue, 18 Jul 2017 22:13:30 +0000 Mike Blumenkrantz
Post by Mike Blumenkrantz
Hi,
I've spent some time over the past couple days investigating ways to
improve efficiency during development. I came across the meson build system
(http://mesonbuild.com/), and the time comparisons to autotools made meson
seem staggeringly fast. Additionally, it seems to be quite flexible and
have cross-compilation support.
A fully functional meson build system for enlightenment can now be found in
oh. so here it is.
Post by Mike Blumenkrantz
meson . build 2.05s user 0.64s system 103% cpu 2.607 total
ninja 379.02s user 60.36s system 347% cpu 2:06.31 total
sudo ninja install 2.36s user 0.35s system 98% cpu 2.746 total
( autoreconf -fi && ./configure --prefix=/usr --libdir=/usr/lib64 )
16.46s
Post by Mike Blumenkrantz
user 2.74s system 96% cpu 19.830 total
make -j16 536.93s user 145.03s system 349% cpu 3:15.22 total
sudo make -j16 install 11.75s user 2.16s system 165% cpu 8.427 total
As seen above, this saves me over a minute for each rebuild, and I will
likely merge it into the main tree soon if no major issues are reported.
more strategically... shouldn't we discuss this also for efl? i'd like us to
keep the same build systems for both efl and e. they are our 2 major core
flagship projects. i do not think they should diverge.


Migrating simpler project like e is easier. It does also give a very good
view of what problem we could run in.


i think it's cool to experiment and look into build systems. there was work
with cmake for efl. you're looking at meson for e.


Moving efl to any new build system, even a simple one like meson, will take
month of full time work just to make sure we do support all the platform we
do, have proper tests in place, have proper cross compilation and so on.
Let's say we shouldn't limit what we improve in other project due to the
size of work in efl.

Cmake was only a proof of concept and there are a lot of work to be done
with it to say it's done.

I also dislike cmake for its syntax and its limited support for cross
compilation. Also none of our dependencies have managed to move to cmake,
while the one who tried meson managed in no time. Give a look at
enlightenment meson files and at efl cmake file to make your own opinion
there. My opinion here is that meson is on track to be the replacement of
autotools in the open source community.

Cedric
Post by Mike Blumenkrantz
* If you have a configured source directory (ie. you have run
./configure),
Post by Mike Blumenkrantz
the build may error due to inclusion of conflicting headers generated from
autotools and headers generated from meson. make clean will not delete
these headers; they require manual deletion or maintainer-clean.
1. <Install meson+ninja>
2. cd enlightenment
3. meson . build && cd build
3.5. [optional] mesonconf -D[option]=[value] (most options are now, instead
of --enable-option, -Doption=true; all options listed when running
mesonconf with no params)
4. ninja
5. sudo ninja install
------------------------------------------------------------
------------------
Post by Mike Blumenkrantz
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
--
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler) ***@rasterman.com


------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
enlightenment-***@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Simon Lees
2017-07-19 00:40:54 UTC
Permalink
Post by Cedric BAIL
I also dislike cmake for its syntax and its limited support for cross
compilation. Also none of our dependencies have managed to move to cmake,
while the one who tried meson managed in no time. Give a look at
enlightenment meson files and at efl cmake file to make your own opinion
there. My opinion here is that meson is on track to be the replacement of
autotools in the open source community.
Cedric
As someone who spent 5 years using cmake to cross compile for a range of
arm and android targets your going to have a tough time convincing me it
has limited support for cross compiling. Its also worth stating that the
majority of Qt/KDE based projects are all using cmake and have been
doing so for a long time so saying that Meson is on track to be the one
replacement probably isn't fair Until many of the cmake projects start
migrating as well.

* Disclaimer, i'm currently one of the cmake maintainers for openSUSE. I
also don't mind if we go to meson or cmake as long as its done consistently.
--
Simon Lees (Simotek) http://simotek.net

Emergency Update Team keybase.io/simotek
SUSE Linux Adelaide Australia, UTC+10:30
GPG Fingerprint: 5B87 DB9D 88DC F606 E489 CEC5 0922 C246 02F0 014B
Carsten Haitzler (The Rasterman)
2017-07-19 02:57:20 UTC
Permalink
Post by Simon Lees
Post by Cedric BAIL
I also dislike cmake for its syntax and its limited support for cross
compilation. Also none of our dependencies have managed to move to cmake,
while the one who tried meson managed in no time. Give a look at
enlightenment meson files and at efl cmake file to make your own opinion
there. My opinion here is that meson is on track to be the replacement of
autotools in the open source community.
Cedric
As someone who spent 5 years using cmake to cross compile for a range of
arm and android targets your going to have a tough time convincing me it
has limited support for cross compiling. Its also worth stating that the
majority of Qt/KDE based projects are all using cmake and have been
doing so for a long time so saying that Meson is on track to be the one
replacement probably isn't fair Until many of the cmake projects start
migrating as well.
i agree with you here.
Post by Simon Lees
* Disclaimer, i'm currently one of the cmake maintainers for openSUSE. I
also don't mind if we go to meson or cmake as long as its done consistently.
i also agree. i'm not fussed cmake vs meson. i really don't know which would
ultimately be better. i think cmake probably will have far better and more
mature support for cross compilation, windows, mac etc. than meson would just
due to age and history. but it doesn't mean meson won't get there too...

but i'd like there to be some kind of consistent strategy here. we move to the
same thing.

i think efl is more easily moved than cedric says. it can be done in stages.
just have the core build work with default + commonly enabled options only.
forget examples, tests, docs etc. ... THEN add in these bit by bit until it is
fully featured.

i havent looked yet at the meson branch for e. i have been fixing bugs.
--
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler) ***@rasterman.com
Cedric BAIL
2017-07-19 05:01:29 UTC
Permalink
Post by Carsten Haitzler (The Rasterman)
Post by Simon Lees
Post by Cedric BAIL
I also dislike cmake for its syntax and its limited support for cross
compilation. Also none of our dependencies have managed to move to cmake,
while the one who tried meson managed in no time. Give a look at
enlightenment meson files and at efl cmake file to make your own opinion
there. My opinion here is that meson is on track to be the replacement of
autotools in the open source community.
As someone who spent 5 years using cmake to cross compile for a range of
arm and android targets your going to have a tough time convincing me it
has limited support for cross compiling. Its also worth stating that the
majority of Qt/KDE based projects are all using cmake and have been
doing so for a long time so saying that Meson is on track to be the one
replacement probably isn't fair Until many of the cmake projects start
migrating as well.
i agree with you here.
It is fair because I am not talking of the application layer, but of
the infratructure here, where most of the complexity of portability is
hidden from application. Gstreamer, wayland, libinput, Xorg, systemd
to name a few are migrating. If they can, I am much more confident
that we can, than if you point me to a few application that managed
too.

Feedback from people that migrated to cmake a few years ago and have
now been exposed to meson, is that they would have migrated to meson
if it existed at the time. Some project, like VLC, attempted to
migrate to cmake and the task was much more complex than expected
leading to staying on autotools.
Post by Carsten Haitzler (The Rasterman)
Post by Simon Lees
* Disclaimer, i'm currently one of the cmake maintainers for openSUSE. I
also don't mind if we go to meson or cmake as long as its done consistently.
i also agree. i'm not fussed cmake vs meson. i really don't know which would
ultimately be better. i think cmake probably will have far better and more
mature support for cross compilation, windows, mac etc. than meson would just
due to age and history. but it doesn't mean meson won't get there too...
In this case history is what I would call technical debt. cmake wasn't
build for cross compilation please have a look and compare :
https://cmake.org/Wiki/CMake_Cross_Compiling
http://mesonbuild.com/Cross-compilation.html

I guess cmake as pass maturity point here ;-) More seriously have a
look inside efl/cmake directory to see what I mean by history. Like
("${s}" STREQUAL "stuff"), seriously, how much better is that compare
to shell ("x$s" = "xstuff") ? Aren't we in 2017, can we just agree
that (s == stuff) is a going to be easier to read ? I am just taking
one example of the syntax of cmake here, but there is plenty to have
fun with. Meson is already there.

That what I meant when I said cmake had a bad syntax and limited
support for cross compilation. There are serious pain inflicted on the
maintenance that I would prefer to avoid. If I have to learn something
new, meson is nice, does the job and is picked up by a growing number
of our dependencies, cmake is not near that achievement and won't.
Post by Carsten Haitzler (The Rasterman)
but i'd like there to be some kind of consistent strategy here. we move to the
same thing.
i think efl is more easily moved than cedric says. it can be done in stages.
just have the core build work with default + commonly enabled options only.
forget examples, tests, docs etc. ... THEN add in these bit by bit until it is
fully featured.
I disagree with this view completely. It will never be finished and we
won't ever have all our needs addressed. People and most dev will stay
on autotools and won't ever be moving. It needs to be done in two
release. First we do side by side feature equivalent and deprecate
autotools, then for the next release we phase out autotools
completely. Any other approach will lead to failure in my opinion.
Post by Carsten Haitzler (The Rasterman)
i havent looked yet at the meson branch for e. i have been fixing bugs.
Please have a look and maybe try converting rage to meson. You will
see it will take you maybe an afternoon and that will be the end of
it. I have converted some of my pet project with module and dep in
that amount of time, I am sure it will be as easy for you.
--
Cedric BAIL
Jean-Philippe André
2017-07-19 05:25:56 UTC
Permalink
Just one comment.
[...]
Post by Carsten Haitzler (The Rasterman)
Post by Carsten Haitzler (The Rasterman)
i think efl is more easily moved than cedric says. it can be done in
stages.
Post by Carsten Haitzler (The Rasterman)
just have the core build work with default + commonly enabled options
only.
Post by Carsten Haitzler (The Rasterman)
forget examples, tests, docs etc. ... THEN add in these bit by bit until
it is
Post by Carsten Haitzler (The Rasterman)
fully featured.
I disagree with this view completely. It will never be finished and we
won't ever have all our needs addressed. People and most dev will stay
on autotools and won't ever be moving. It needs to be done in two
release. First we do side by side feature equivalent and deprecate
autotools, then for the next release we phase out autotools
completely. Any other approach will lead to failure in my opinion.
We saw what happened with the dual main Makefile + per directory Makefile.
Even those of us who wanted it the most forgot about it quickly and just
let those Makefiles rot.

So, yeah. :)

[...]
--
Jean-Philippe André
Carsten Haitzler (The Rasterman)
2017-07-19 06:21:40 UTC
Permalink
Post by Jean-Philippe André
Just one comment.
[...]
Post by Carsten Haitzler (The Rasterman)
Post by Carsten Haitzler (The Rasterman)
i think efl is more easily moved than cedric says. it can be done in
stages.
Post by Carsten Haitzler (The Rasterman)
just have the core build work with default + commonly enabled options
only.
Post by Carsten Haitzler (The Rasterman)
forget examples, tests, docs etc. ... THEN add in these bit by bit until
it is
Post by Carsten Haitzler (The Rasterman)
fully featured.
I disagree with this view completely. It will never be finished and we
won't ever have all our needs addressed. People and most dev will stay
on autotools and won't ever be moving. It needs to be done in two
release. First we do side by side feature equivalent and deprecate
autotools, then for the next release we phase out autotools
completely. Any other approach will lead to failure in my opinion.
We saw what happened with the dual main Makefile + per directory Makefile.
Even those of us who wanted it the most forgot about it quickly and just
let those Makefiles rot.
So, yeah. :)
no way we maintain 2 build systems long term. there has to be a switch-over
where one is built in parallel to the other, once it gets to the point of
"works for me" so to speak then switch over as the default and the old one is
left for reference and then features added in to it. there is no way it can be
done in a day. but i don't think it has to be a fully 100% done with every
possible feature all singing and dancing build to get the the point of
usability and able to functionally day to day replace autofoo.
--
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler) ***@rasterman.com
Carsten Haitzler (The Rasterman)
2017-07-19 06:19:15 UTC
Permalink
Post by Cedric BAIL
Post by Carsten Haitzler (The Rasterman)
Post by Simon Lees
Post by Cedric BAIL
I also dislike cmake for its syntax and its limited support for cross
compilation. Also none of our dependencies have managed to move to cmake,
while the one who tried meson managed in no time. Give a look at
enlightenment meson files and at efl cmake file to make your own opinion
there. My opinion here is that meson is on track to be the replacement of
autotools in the open source community.
As someone who spent 5 years using cmake to cross compile for a range of
arm and android targets your going to have a tough time convincing me it
has limited support for cross compiling. Its also worth stating that the
majority of Qt/KDE based projects are all using cmake and have been
doing so for a long time so saying that Meson is on track to be the one
replacement probably isn't fair Until many of the cmake projects start
migrating as well.
i agree with you here.
It is fair because I am not talking of the application layer, but of
the infratructure here, where most of the complexity of portability is
hidden from application. Gstreamer, wayland, libinput, Xorg, systemd
to name a few are migrating. If they can, I am much more confident
that we can, than if you point me to a few application that managed
too.
what about windows and osx support?
Post by Cedric BAIL
Feedback from people that migrated to cmake a few years ago and have
now been exposed to meson, is that they would have migrated to meson
if it existed at the time. Some project, like VLC, attempted to
migrate to cmake and the task was much more complex than expected
leading to staying on autotools.
sure. this is valuable. and it's the position we find ourselves in now. we get
to choose. i really don't know what is better. cmake is definitely more mature.
do you have any feedback you can quote or point links to as to why they think
meson would be better than cmake?
Post by Cedric BAIL
Post by Carsten Haitzler (The Rasterman)
Post by Simon Lees
* Disclaimer, i'm currently one of the cmake maintainers for openSUSE. I
also don't mind if we go to meson or cmake as long as its done consistently.
i also agree. i'm not fussed cmake vs meson. i really don't know which would
ultimately be better. i think cmake probably will have far better and more
mature support for cross compilation, windows, mac etc. than meson would
just due to age and history. but it doesn't mean meson won't get there
too...
In this case history is what I would call technical debt. cmake wasn't
https://cmake.org/Wiki/CMake_Cross_Compiling
http://mesonbuild.com/Cross-compilation.html
I guess cmake as pass maturity point here ;-) More seriously have a
look inside efl/cmake directory to see what I mean by history. Like
("${s}" STREQUAL "stuff"), seriously, how much better is that compare
to shell ("x$s" = "xstuff") ? Aren't we in 2017, can we just agree
that (s == stuff) is a going to be easier to read ? I am just taking
one example of the syntax of cmake here, but there is plenty to have
fun with. Meson is already there.
meh here. can we do subtree builds sanely without triggering full tree rebuilds
and so on. thats what matters. it seems the meson stuff for e allows me to
build specific binaries and .so's. that's good. i dont know about the context
of efl where if you ninja src/lib/eina/libeina.so ... does it go around
relinking everything that links to eina? i hope not. if i want that ... i'll
rebuild cleanly.

meson is fast (the configure stage) and the ninja build is also fast. it is
clean enough from what i see. i've figured out how to build specific targets.
that's good.
Post by Cedric BAIL
That what I meant when I said cmake had a bad syntax and limited
support for cross compilation. There are serious pain inflicted on the
maintenance that I would prefer to avoid. If I have to learn something
new, meson is nice, does the job and is picked up by a growing number
of our dependencies, cmake is not near that achievement and won't.
Post by Carsten Haitzler (The Rasterman)
but i'd like there to be some kind of consistent strategy here. we move to
the same thing.
i think efl is more easily moved than cedric says. it can be done in stages.
just have the core build work with default + commonly enabled options only.
forget examples, tests, docs etc. ... THEN add in these bit by bit until it
is fully featured.
I disagree with this view completely. It will never be finished and we
won't ever have all our needs addressed. People and most dev will stay
on autotools and won't ever be moving. It needs to be done in two
release. First we do side by side feature equivalent and deprecate
autotools, then for the next release we phase out autotools
completely. Any other approach will lead to failure in my opinion.
well of course you do it side by side. you add the meson build files and have it
build stuff... then it builds enough to make efl functional. at that point it
can be used by default by developers instead of autofoo. we then can fill in
the bits that are not ESSENTIAL. once meson (or cmake) could build everything
that most devs use/need day to day then it's got to critical mass and things
would move fast from there.
Post by Cedric BAIL
Post by Carsten Haitzler (The Rasterman)
i havent looked yet at the meson branch for e. i have been fixing bugs.
Please have a look and maybe try converting rage to meson. You will
see it will take you maybe an afternoon and that will be the end of
it. I have converted some of my pet project with module and dep in
that amount of time, I am sure it will be as easy for you.
i've now looked. i first don't buy what mike said about his patches making
"other build systems easier" it's actually the exact opposite. specializing
LESS is better. i've gotten a bit of a flavor of how meson works. it seems
decent to me.

i want to have this discussion though. what is meson going to be weak on. doing
e is one good thing. we have to have a go at doing at least some of efl.
something complex with dependencies (ie multiple libraries with one linking to
another etc.)

actually i'd go for merging .so's at this point... i wonder if we can do custom
install rules to add symlinks for binary compat.
Post by Cedric BAIL
--
Cedric BAIL
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
--
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler) ***@rasterman.com
Vincent Torri
2017-07-19 09:59:16 UTC
Permalink
Post by Carsten Haitzler (The Rasterman)
Post by Cedric BAIL
Post by Carsten Haitzler (The Rasterman)
Post by Simon Lees
Post by Cedric BAIL
I also dislike cmake for its syntax and its limited support for cross
compilation. Also none of our dependencies have managed to move to cmake,
while the one who tried meson managed in no time. Give a look at
enlightenment meson files and at efl cmake file to make your own opinion
there. My opinion here is that meson is on track to be the replacement of
autotools in the open source community.
As someone who spent 5 years using cmake to cross compile for a range of
arm and android targets your going to have a tough time convincing me it
has limited support for cross compiling. Its also worth stating that the
majority of Qt/KDE based projects are all using cmake and have been
doing so for a long time so saying that Meson is on track to be the one
replacement probably isn't fair Until many of the cmake projects start
migrating as well.
i agree with you here.
It is fair because I am not talking of the application layer, but of
the infratructure here, where most of the complexity of portability is
hidden from application. Gstreamer, wayland, libinput, Xorg, systemd
to name a few are migrating. If they can, I am much more confident
that we can, than if you point me to a few application that managed
too.
what about windows and osx support?
about windows, echart is only built on Windows. I even didn't try a
unix build. No problem with Windows and cross compilation as i've
already said previously

Vincent
Post by Carsten Haitzler (The Rasterman)
Post by Cedric BAIL
Feedback from people that migrated to cmake a few years ago and have
now been exposed to meson, is that they would have migrated to meson
if it existed at the time. Some project, like VLC, attempted to
migrate to cmake and the task was much more complex than expected
leading to staying on autotools.
sure. this is valuable. and it's the position we find ourselves in now. we get
to choose. i really don't know what is better. cmake is definitely more mature.
do you have any feedback you can quote or point links to as to why they think
meson would be better than cmake?
Post by Cedric BAIL
Post by Carsten Haitzler (The Rasterman)
Post by Simon Lees
* Disclaimer, i'm currently one of the cmake maintainers for openSUSE. I
also don't mind if we go to meson or cmake as long as its done consistently.
i also agree. i'm not fussed cmake vs meson. i really don't know which would
ultimately be better. i think cmake probably will have far better and more
mature support for cross compilation, windows, mac etc. than meson would
just due to age and history. but it doesn't mean meson won't get there
too...
In this case history is what I would call technical debt. cmake wasn't
https://cmake.org/Wiki/CMake_Cross_Compiling
http://mesonbuild.com/Cross-compilation.html
I guess cmake as pass maturity point here ;-) More seriously have a
look inside efl/cmake directory to see what I mean by history. Like
("${s}" STREQUAL "stuff"), seriously, how much better is that compare
to shell ("x$s" = "xstuff") ? Aren't we in 2017, can we just agree
that (s == stuff) is a going to be easier to read ? I am just taking
one example of the syntax of cmake here, but there is plenty to have
fun with. Meson is already there.
meh here. can we do subtree builds sanely without triggering full tree rebuilds
and so on. thats what matters. it seems the meson stuff for e allows me to
build specific binaries and .so's. that's good. i dont know about the context
of efl where if you ninja src/lib/eina/libeina.so ... does it go around
relinking everything that links to eina? i hope not. if i want that ... i'll
rebuild cleanly.
meson is fast (the configure stage) and the ninja build is also fast. it is
clean enough from what i see. i've figured out how to build specific targets.
that's good.
Post by Cedric BAIL
That what I meant when I said cmake had a bad syntax and limited
support for cross compilation. There are serious pain inflicted on the
maintenance that I would prefer to avoid. If I have to learn something
new, meson is nice, does the job and is picked up by a growing number
of our dependencies, cmake is not near that achievement and won't.
Post by Carsten Haitzler (The Rasterman)
but i'd like there to be some kind of consistent strategy here. we move to
the same thing.
i think efl is more easily moved than cedric says. it can be done in stages.
just have the core build work with default + commonly enabled options only.
forget examples, tests, docs etc. ... THEN add in these bit by bit until it
is fully featured.
I disagree with this view completely. It will never be finished and we
won't ever have all our needs addressed. People and most dev will stay
on autotools and won't ever be moving. It needs to be done in two
release. First we do side by side feature equivalent and deprecate
autotools, then for the next release we phase out autotools
completely. Any other approach will lead to failure in my opinion.
well of course you do it side by side. you add the meson build files and have it
build stuff... then it builds enough to make efl functional. at that point it
can be used by default by developers instead of autofoo. we then can fill in
the bits that are not ESSENTIAL. once meson (or cmake) could build everything
that most devs use/need day to day then it's got to critical mass and things
would move fast from there.
Post by Cedric BAIL
Post by Carsten Haitzler (The Rasterman)
i havent looked yet at the meson branch for e. i have been fixing bugs.
Please have a look and maybe try converting rage to meson. You will
see it will take you maybe an afternoon and that will be the end of
it. I have converted some of my pet project with module and dep in
that amount of time, I am sure it will be as easy for you.
i've now looked. i first don't buy what mike said about his patches making
"other build systems easier" it's actually the exact opposite. specializing
LESS is better. i've gotten a bit of a flavor of how meson works. it seems
decent to me.
i want to have this discussion though. what is meson going to be weak on. doing
e is one good thing. we have to have a go at doing at least some of efl.
something complex with dependencies (ie multiple libraries with one linking to
another etc.)
actually i'd go for merging .so's at this point... i wonder if we can do custom
install rules to add symlinks for binary compat.
Post by Cedric BAIL
--
Cedric BAIL
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
--
------------- Codito, ergo sum - "I code, therefore I am" --------------
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Gustavo Sverzut Barbieri
2017-07-19 14:28:55 UTC
Permalink
Hi guys,

sorry jumping in late, but as the guy that did the migration of WebKit
to CMake (for EFL port long ago) and the one that was trying to do
cmake-efl, I'm pro meson build for the reasons Cedric said.

While cmake is cleaner than autohell, it's already showing some of its
legacy and you end with many "helpers" to do some basic stuff. Meson
is cleaning some of that and as they're still "under active
development" its more likely (according to their IRC channel) to take
some patches and new ideas.
Post by Carsten Haitzler (The Rasterman)
Post by Simon Lees
Post by Cedric BAIL
I also dislike cmake for its syntax and its limited support for cross
compilation. Also none of our dependencies have managed to move to cmake,
while the one who tried meson managed in no time. Give a look at
enlightenment meson files and at efl cmake file to make your own opinion
there. My opinion here is that meson is on track to be the replacement of
autotools in the open source community.
Cedric
As someone who spent 5 years using cmake to cross compile for a range of
arm and android targets your going to have a tough time convincing me it
has limited support for cross compiling. Its also worth stating that the
majority of Qt/KDE based projects are all using cmake and have been
doing so for a long time so saying that Meson is on track to be the one
replacement probably isn't fair Until many of the cmake projects start
migrating as well.
i agree with you here.
That was my impression as well, but the key difference is that meson
understands that projects may use their own generated tools during
cross compilation. Maybe that was one of their reasons, you know, Glib
is also C and they rely on these generators as we do.

You can quickly look at http://mesonbuild.com/Cross-compilation.html
and see things like:

native_exe = executable('mygen', 'mygen.c', native : true)

that is, you generate a native build of that tool to then use...
edje_cc, eet, eolian...

You don't need to force a "-native" build, install, then use EDJE_BIN,
EET_BIN... to refer to those. At least for EFL this will be a major
win.

Is it doable "the old way"? sure, we cross compile EFL with automake
and we can with cmake, but it's not as simple.
Post by Carsten Haitzler (The Rasterman)
Post by Simon Lees
* Disclaimer, i'm currently one of the cmake maintainers for openSUSE. I
also don't mind if we go to meson or cmake as long as its done consistently.
i also agree. i'm not fussed cmake vs meson. i really don't know which would
ultimately be better. i think cmake probably will have far better and more
mature support for cross compilation, windows, mac etc. than meson would just
due to age and history. but it doesn't mean meson won't get there too...
but i'd like there to be some kind of consistent strategy here. we move to the
same thing.
me too, so as the one previously pushing cmake, I'm all for meson.

Actually my guys did a port of Terminology, which will be submitted
soon and will help that trend.
Post by Carsten Haitzler (The Rasterman)
i think efl is more easily moved than cedric says. it can be done in stages.
just have the core build work with default + commonly enabled options only.
forget examples, tests, docs etc. ... THEN add in these bit by bit until it is
fully featured.
I was experienced with cmake, got help from community and it took us
lots of time to do it, and we were very far off in the process. The
thing grew big and to avoid breaking stuff is painful... if you go
back in cmake patches you'll see that at some point we missed symbols,
modules wouldn't load, features would just disappear (ie: mempool
defaults)... and most of those errors were silent, they were not build
warnings, rather just runtime issues... so needs testing, grepping,
etc.

which is even worse given that we have other platforms such as
windows, mac, ps3...

during the process we did some cleanups, like the src/bin split,
modules reorganizing and even some uniform flags for feature
enable/disable. But that was up to the basics, we'd need to do it for
everything.
--
Gustavo Sverzut Barbieri
--------------------------------------
Mobile: +55 (16) 99354-9890
Vincent Torri
2017-07-19 04:22:59 UTC
Permalink
Post by Carsten Haitzler (The Rasterman)
Hi,
On Tue, 18 Jul 2017 22:13:30 +0000 Mike Blumenkrantz
Post by Mike Blumenkrantz
Hi,
I've spent some time over the past couple days investigating ways to
improve efficiency during development. I came across the meson build
system
Post by Mike Blumenkrantz
(http://mesonbuild.com/), and the time comparisons to autotools made meson
seem staggeringly fast. Additionally, it seems to be quite flexible and
have cross-compilation support.
A fully functional meson build system for enlightenment can now be found
in
oh. so here it is.
Post by Mike Blumenkrantz
meson . build 2.05s user 0.64s system 103% cpu 2.607 total
ninja 379.02s user 60.36s system 347% cpu 2:06.31 total
sudo ninja install 2.36s user 0.35s system 98% cpu 2.746 total
( autoreconf -fi && ./configure --prefix=/usr --libdir=/usr/lib64 )
16.46s
Post by Mike Blumenkrantz
user 2.74s system 96% cpu 19.830 total
make -j16 536.93s user 145.03s system 349% cpu 3:15.22 total
sudo make -j16 install 11.75s user 2.16s system 165% cpu 8.427 total
As seen above, this saves me over a minute for each rebuild, and I will
likely merge it into the main tree soon if no major issues are reported.
more strategically... shouldn't we discuss this also for efl? i'd like us to
keep the same build systems for both efl and e. they are our 2 major core
flagship projects. i do not think they should diverge.
big work here
Post by Carsten Haitzler (The Rasterman)
Migrating simpler project like e is easier. It does also give a very good
view of what problem we could run in.
I agree, echart is a good simple example of use of the efl with meson.

VIncent
Post by Carsten Haitzler (The Rasterman)
i think it's cool to experiment and look into build systems. there was work
with cmake for efl. you're looking at meson for e.
Moving efl to any new build system, even a simple one like meson, will take
month of full time work just to make sure we do support all the platform we
do,
have proper tests in place, have proper cross compilation and so on.
Let's say we shouldn't limit what we improve in other project due to the
size of work in efl.
Cmake was only a proof of concept and there are a lot of work to be done
with it to say it's done.
I also dislike cmake for its syntax and its limited support for cross
compilation. Also none of our dependencies have managed to move to cmake,
while the one who tried meson managed in no time. Give a look at
enlightenment meson files and at efl cmake file to make your own opinion
there. My opinion here is that meson is on track to be the replacement of
autotools in the open source community.
Cedric
Post by Mike Blumenkrantz
* If you have a configured source directory (ie. you have run
./configure),
Post by Mike Blumenkrantz
the build may error due to inclusion of conflicting headers generated from
autotools and headers generated from meson. make clean will not delete
these headers; they require manual deletion or maintainer-clean.
1. <Install meson+ninja>
2. cd enlightenment
3. meson . build && cd build
3.5. [optional] mesonconf -D[option]=[value] (most options are now,
instead
Post by Mike Blumenkrantz
of --enable-option, -Doption=true; all options listed when running
mesonconf with no params)
4. ninja
5. sudo ninja install
------------------------------------------------------------
------------------
Post by Mike Blumenkrantz
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
--
------------- Codito, ergo sum - "I code, therefore I am" --------------
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Jean-Philippe André
2017-07-19 04:36:34 UTC
Permalink
Post by Vincent Torri
Post by Carsten Haitzler (The Rasterman)
Hi,
On Tue, 18 Jul 2017 22:13:30 +0000 Mike Blumenkrantz
Post by Mike Blumenkrantz
Hi,
I've spent some time over the past couple days investigating ways to
improve efficiency during development. I came across the meson build
system
Post by Mike Blumenkrantz
(http://mesonbuild.com/), and the time comparisons to autotools made
meson
Post by Carsten Haitzler (The Rasterman)
Post by Mike Blumenkrantz
seem staggeringly fast. Additionally, it seems to be quite flexible and
have cross-compilation support.
A fully functional meson build system for enlightenment can now be found
in
oh. so here it is.
Post by Mike Blumenkrantz
meson . build 2.05s user 0.64s system 103% cpu 2.607 total
ninja 379.02s user 60.36s system 347% cpu 2:06.31 total
sudo ninja install 2.36s user 0.35s system 98% cpu 2.746 total
( autoreconf -fi && ./configure --prefix=/usr --libdir=/usr/lib64 )
16.46s
Post by Mike Blumenkrantz
user 2.74s system 96% cpu 19.830 total
make -j16 536.93s user 145.03s system 349% cpu 3:15.22 total
sudo make -j16 install 11.75s user 2.16s system 165% cpu 8.427 total
As seen above, this saves me over a minute for each rebuild, and I will
likely merge it into the main tree soon if no major issues are reported.
more strategically... shouldn't we discuss this also for efl? i'd like
us to
Post by Carsten Haitzler (The Rasterman)
keep the same build systems for both efl and e. they are our 2 major core
flagship projects. i do not think they should diverge.
big work here
Post by Carsten Haitzler (The Rasterman)
Migrating simpler project like e is easier. It does also give a very good
view of what problem we could run in.
I agree, echart is a good simple example of use of the efl with meson.
VIncent
Post by Carsten Haitzler (The Rasterman)
i think it's cool to experiment and look into build systems. there was
work
Post by Carsten Haitzler (The Rasterman)
with cmake for efl. you're looking at meson for e.
Moving efl to any new build system, even a simple one like meson, will
take
Post by Carsten Haitzler (The Rasterman)
month of full time work just to make sure we do support all the platform
we
Post by Carsten Haitzler (The Rasterman)
do,
have proper tests in place, have proper cross compilation and so on.
Let's say we shouldn't limit what we improve in other project due to the
size of work in efl.
Cmake was only a proof of concept and there are a lot of work to be done
with it to say it's done.
I also dislike cmake for its syntax and its limited support for cross
compilation. Also none of our dependencies have managed to move to cmake,
while the one who tried meson managed in no time. Give a look at
enlightenment meson files and at efl cmake file to make your own opinion
there. My opinion here is that meson is on track to be the replacement of
autotools in the open source community.
Cedric
Post by Mike Blumenkrantz
* If you have a configured source directory (ie. you have run
./configure),
Post by Mike Blumenkrantz
the build may error due to inclusion of conflicting headers generated
from
Post by Carsten Haitzler (The Rasterman)
Post by Mike Blumenkrantz
autotools and headers generated from meson. make clean will not delete
these headers; they require manual deletion or maintainer-clean.
1. <Install meson+ninja>
2. cd enlightenment
3. meson . build && cd build
3.5. [optional] mesonconf -D[option]=[value] (most options are now,
instead
Post by Mike Blumenkrantz
of --enable-option, -Doption=true; all options listed when running
mesonconf with no params)
4. ninja
5. sudo ninja install
I just tried this and I can only say I'm very impressed. It not only
configures fast, builds extremely fast, and installs like a breeze, E
actually even runs, proving that this is not just fluff.

I had tried meson for an elementary hello world project, and that required
only 3 lines of really easy code. Comparing that to cmake or autotools I
know there is good potential here. The syntax is nice, too...
--
Jean-Philippe André
Gustavo Sverzut Barbieri
2017-07-19 14:31:26 UTC
Permalink
Post by Jean-Philippe André
I just tried this and I can only say I'm very impressed. It not only
configures fast, builds extremely fast, and installs like a breeze, E
actually even runs, proving that this is not just fluff.
I had tried meson for an elementary hello world project, and that required
only 3 lines of really easy code. Comparing that to cmake or autotools I
know there is good potential here. The syntax is nice, too...
and that's without any "efl" module in meson. If we follow gnome and
guys, offering an efl module, we could automate rules from .eo ->
.eo.c/h, .edc -> .edj, eet...
--
Gustavo Sverzut Barbieri
--------------------------------------
Mobile: +55 (16) 99354-9890
Guilherme Íscaro
2017-07-19 14:54:55 UTC
Permalink
Hello,

I'm playing around with Meson for some days and I really enjoyed its
syntax. If you look the meson.build files it's noticeable that it's much
more readable when compared to Autotools and as Mike pointed out, it's much
faster as well!
Post by Jean-Philippe André
Post by Carsten Haitzler (The Rasterman)
what about windows and osx support?
Meson supports both OS X and Windows (they even generate visual studio
files), but I did not test.

I created a meson branch for Terminology (devs/iscaro/meson), please take a
look and send some feedback, if possible.

On Wed, Jul 19, 2017 at 11:31 AM, Gustavo Sverzut Barbieri <
Post by Jean-Philippe André
Post by Carsten Haitzler (The Rasterman)
I just tried this and I can only say I'm very impressed. It not only
configures fast, builds extremely fast, and installs like a breeze, E
actually even runs, proving that this is not just fluff.
I had tried meson for an elementary hello world project, and that
required
Post by Carsten Haitzler (The Rasterman)
only 3 lines of really easy code. Comparing that to cmake or autotools I
know there is good potential here. The syntax is nice, too...
and that's without any "efl" module in meson. If we follow gnome and
guys, offering an efl module, we could automate rules from .eo ->
.eo.c/h, .edc -> .edj, eet...
--
Gustavo Sverzut Barbieri
--------------------------------------
Mobile: +55 (16) 99354-9890
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Boris Faure
2017-07-19 16:13:26 UTC
Permalink
On 17-07-19 11:54, Guilherme Íscaro wrote:
[
]
Post by Guilherme Íscaro
I created a meson branch for Terminology (devs/iscaro/meson), please take a
look and send some feedback, if possible.
That's nice!

Spoiler alert!
I plan on doing a release of Terminology soon. I need to fix one more
bug and I think I'll be ready.
Once 1.1.0 is out, I'll consider merging your branch.
--
Boris Faure
Pointer Arithmetician
Cedric BAIL
2017-07-19 17:46:03 UTC
Permalink
Hello,
Post by Guilherme Íscaro
I'm playing around with Meson for some days and I really enjoyed its
syntax. If you look the meson.build files it's noticeable that it's much
more readable when compared to Autotools and as Mike pointed out, it's much
faster as well!
Post by Carsten Haitzler (The Rasterman)
what about windows and osx support?
Meson supports both OS X and Windows (they even generate visual studio
files), but I did not test.
I created a meson branch for Terminology (devs/iscaro/meson), please take a
look and send some feedback, if possible.
I just checked it and it seems it doesn't install the theme and icons
properly. Try by doing first a make uninstall of terminology before
doing a ninja install and you should see the problem.

Cedric
Bruno Dilly
2017-07-19 20:53:00 UTC
Permalink
Hey Cedric,
Post by Guilherme Íscaro
Hello,
Post by Guilherme Íscaro
I'm playing around with Meson for some days and I really enjoyed its
syntax. If you look the meson.build files it's noticeable that it's much
more readable when compared to Autotools and as Mike pointed out, it's
much
Post by Guilherme Íscaro
faster as well!
Post by Carsten Haitzler (The Rasterman)
what about windows and osx support?
Meson supports both OS X and Windows (they even generate visual studio
files), but I did not test.
I created a meson branch for Terminology (devs/iscaro/meson), please
take a
Post by Guilherme Íscaro
look and send some feedback, if possible.
I just checked it and it seems it doesn't install the theme and icons
properly. Try by doing first a make uninstall of terminology before
doing a ninja install and you should see the problem.
I wasn't able to reproduce this issue.
I've tried to install it into a new folder

$ meson --prefix=/tmp/term build

and themes are in place, in share/terminology/themes

Which meson version are you using?
I'm using 0.41 now, but I've tried an older version before and faced issues
(different from that)
Post by Guilherme Íscaro
Cedric
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
--
Bruno Dilly
ProFUSION embedded systems
http://profusion.mobi
Guilherme Íscaro
2017-07-19 21:27:13 UTC
Permalink
Hello,
Post by Bruno Dilly
I wasn't able to reproduce this issue.
Same here. I'm also using 0.41.
Cedric BAIL
2017-07-19 21:38:16 UTC
Permalink
Hi,
Post by Bruno Dilly
Post by Guilherme Íscaro
Post by Guilherme Íscaro
I'm playing around with Meson for some days and I really enjoyed its
syntax. If you look the meson.build files it's noticeable that it's much
more readable when compared to Autotools and as Mike pointed out, it's
much
Post by Guilherme Íscaro
faster as well!
Post by Carsten Haitzler (The Rasterman)
what about windows and osx support?
Meson supports both OS X and Windows (they even generate visual studio
files), but I did not test.
I created a meson branch for Terminology (devs/iscaro/meson), please
take a
Post by Guilherme Íscaro
look and send some feedback, if possible.
I just checked it and it seems it doesn't install the theme and icons
properly. Try by doing first a make uninstall of terminology before
doing a ninja install and you should see the problem.
I wasn't able to reproduce this issue.
I've tried to install it into a new folder
I removed all terminology from my system, just to make sure it
wouldn't find and use another source of data. I would then get the
following error :

ERR<24389>:terminology ../src/bin/utils.c:48 theme_apply() Could not
load any theme for group=terminology/base: File Does Not Exist
Post by Bruno Dilly
$ meson --prefix=/tmp/term build
Both with prefix set to /usr and nothing, result in the same problem.
Post by Bruno Dilly
and themes are in place, in share/terminology/themes
Which meson version are you using?
I'm using 0.41 now, but I've tried an older version before and faced issues
(different from that)
meson 0.41.1.

Cedric
Guilherme Íscaro
2017-07-19 21:58:44 UTC
Permalink
Hey cedric, I was able to reproduce the error. Thanks for the report.

I'll send a fix ASAP. I'll let you know.

thanks
Post by Cedric BAIL
Hi,
Post by Bruno Dilly
On Wed, Jul 19, 2017 at 7:54 AM, Guilherme Íscaro <
Post by Guilherme Íscaro
I'm playing around with Meson for some days and I really enjoyed its
syntax. If you look the meson.build files it's noticeable that it's
much
Post by Bruno Dilly
Post by Guilherme Íscaro
more readable when compared to Autotools and as Mike pointed out, it's
much
Post by Guilherme Íscaro
faster as well!
Post by Carsten Haitzler (The Rasterman)
what about windows and osx support?
Meson supports both OS X and Windows (they even generate visual studio
files), but I did not test.
I created a meson branch for Terminology (devs/iscaro/meson), please
take a
Post by Guilherme Íscaro
look and send some feedback, if possible.
I just checked it and it seems it doesn't install the theme and icons
properly. Try by doing first a make uninstall of terminology before
doing a ninja install and you should see the problem.
I wasn't able to reproduce this issue.
I've tried to install it into a new folder
I removed all terminology from my system, just to make sure it
wouldn't find and use another source of data. I would then get the
ERR<24389>:terminology ../src/bin/utils.c:48 theme_apply() Could not
load any theme for group=terminology/base: File Does Not Exist
Post by Bruno Dilly
$ meson --prefix=/tmp/term build
Both with prefix set to /usr and nothing, result in the same problem.
Post by Bruno Dilly
and themes are in place, in share/terminology/themes
Which meson version are you using?
I'm using 0.41 now, but I've tried an older version before and faced
issues
Post by Bruno Dilly
(different from that)
meson 0.41.1.
Cedric
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Guilherme Íscaro
2017-07-20 20:05:02 UTC
Permalink
Hello,

I've fixed the issue, please, refetch my branch when possible. (I did a
push -f)

Thanks.
Post by Guilherme Íscaro
Hey cedric, I was able to reproduce the error. Thanks for the report.
I'll send a fix ASAP. I'll let you know.
thanks
Post by Guilherme Íscaro
Hi,
Post by Bruno Dilly
On Wed, Jul 19, 2017 at 7:54 AM, Guilherme Íscaro <
Post by Guilherme Íscaro
I'm playing around with Meson for some days and I really enjoyed its
syntax. If you look the meson.build files it's noticeable that it's
much
Post by Bruno Dilly
Post by Guilherme Íscaro
more readable when compared to Autotools and as Mike pointed out,
it's
Post by Bruno Dilly
much
Post by Guilherme Íscaro
faster as well!
Post by Carsten Haitzler (The Rasterman)
what about windows and osx support?
Meson supports both OS X and Windows (they even generate visual
studio
Post by Bruno Dilly
Post by Guilherme Íscaro
files), but I did not test.
I created a meson branch for Terminology (devs/iscaro/meson), please
take a
Post by Guilherme Íscaro
look and send some feedback, if possible.
I just checked it and it seems it doesn't install the theme and icons
properly. Try by doing first a make uninstall of terminology before
doing a ninja install and you should see the problem.
I wasn't able to reproduce this issue.
I've tried to install it into a new folder
I removed all terminology from my system, just to make sure it
wouldn't find and use another source of data. I would then get the
ERR<24389>:terminology ../src/bin/utils.c:48 theme_apply() Could not
load any theme for group=terminology/base: File Does Not Exist
Post by Bruno Dilly
$ meson --prefix=/tmp/term build
Both with prefix set to /usr and nothing, result in the same problem.
Post by Bruno Dilly
and themes are in place, in share/terminology/themes
Which meson version are you using?
I'm using 0.41 now, but I've tried an older version before and faced
issues
Post by Bruno Dilly
(different from that)
meson 0.41.1.
Cedric
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Simon Lees
2017-07-18 23:58:07 UTC
Permalink
Post by Mike Blumenkrantz
Hi,
I've spent some time over the past couple days investigating ways to
improve efficiency during development. I came across the meson build system
(http://mesonbuild.com/), and the time comparisons to autotools made meson
seem staggeringly fast. Additionally, it seems to be quite flexible and
have cross-compilation support.
It would be worth looking at cmake as well, given reasonable effort has
been put into moving efl to it. While its not essential that efl and e
use the same build system using the same means there's one less thing
for a bunch of people to maintain.

As long as it doesn't have silly dependencies that are hard to package
like go or javascript it doesn't matter too much to me. Python is in the
core of almost every distro now so using it as a build system shouldn't
cause issues.
--
Simon Lees (Simotek) http://simotek.net

Emergency Update Team keybase.io/simotek
SUSE Linux Adelaide Australia, UTC+10:30
GPG Fingerprint: 5B87 DB9D 88DC F606 E489 CEC5 0922 C246 02F0 014B
Vincent Torri
2017-07-19 04:16:03 UTC
Permalink
On Wed, Jul 19, 2017 at 12:13 AM, Mike Blumenkrantz
Post by Mike Blumenkrantz
Hi,
I've spent some time over the past couple days investigating ways to
improve efficiency during development. I came across the meson build system
(http://mesonbuild.com/), and the time comparisons to autotools made meson
seem staggeringly fast. Additionally, it seems to be quite flexible and
have cross-compilation support.
i've used it for echart : read
https://github.com/vtorri/echart2/blob/master/README.md for example of
builds with cross compilation

Vincent
Post by Mike Blumenkrantz
A fully functional meson build system for enlightenment can now be found in
meson . build 2.05s user 0.64s system 103% cpu 2.607 total
ninja 379.02s user 60.36s system 347% cpu 2:06.31 total
sudo ninja install 2.36s user 0.35s system 98% cpu 2.746 total
( autoreconf -fi && ./configure --prefix=/usr --libdir=/usr/lib64 ) 16.46s
user 2.74s system 96% cpu 19.830 total
make -j16 536.93s user 145.03s system 349% cpu 3:15.22 total
sudo make -j16 install 11.75s user 2.16s system 165% cpu 8.427 total
As seen above, this saves me over a minute for each rebuild, and I will
likely merge it into the main tree soon if no major issues are reported.
* If you have a configured source directory (ie. you have run ./configure),
the build may error due to inclusion of conflicting headers generated from
autotools and headers generated from meson. make clean will not delete
these headers; they require manual deletion or maintainer-clean.
1. <Install meson+ninja>
2. cd enlightenment
3. meson . build && cd build
3.5. [optional] mesonconf -D[option]=[value] (most options are now, instead
of --enable-option, -Doption=true; all options listed when running
mesonconf with no params)
4. ninja
5. sudo ninja install
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Gustavo Sverzut Barbieri
2017-07-19 14:52:41 UTC
Permalink
On Tue, Jul 18, 2017 at 7:13 PM, Mike Blumenkrantz
Post by Mike Blumenkrantz
* If you have a configured source directory (ie. you have run ./configure),
the build may error due to inclusion of conflicting headers generated from
autotools and headers generated from meson. make clean will not delete
these headers; they require manual deletion or maintainer-clean.
while this is unfixable we can prevent that to happen before we merge
other build system to our projects.

my proposal is we forbid in-source builds, that is, in our configure
(autofoo) we check if srcdir == builddir. In that case do a fatal
error and say one must use `./build-autotools` directory, which would
be the default with `autogen.sh`

still in autotools I'd suggest we check some files (ie: Makefile or
config.h) and if they are present suggest the user to `git clean -xfd`
to avoid problems in the future.

after some days people will have "clean" trees and it will be much
easier to migrate to different build systems in the future.
--
Gustavo Sverzut Barbieri
--------------------------------------
Mobile: +55 (16) 99354-9890
Loading...