Commit Graph

50 Commits

Author SHA1 Message Date
Marcel Hollerbach 4f5b3b95fb meson: add docs
Summary:
this here brings one new top level target which is doc. It is not build
by default, and does rerun everything on every call.

ninja doc will create previews and run the doxygen command. After this
is done, a tarbal of the html & man will be created, latex is not added
for now, due to the unability to compile the resulting .tex files.

Nothing of the documentation is installed for now, if this would be
enabled, then every single ninja install would regenerate the whole
documentation again, which is quite a lot, and quite a pain (and
sometimes crashes)

While porting this over, i encountered a problem with *convert* the bug
report is linked in the comment.

fix T7781

Depends on D8690

Reviewers: zmike, segfaultxavi, cedric

Reviewed By: segfaultxavi

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7781

Differential Revision: https://phab.enlightenment.org/D8561
2019-04-30 12:17:00 +02:00
Marcel Hollerbach bb6c7c6782 meson: make it possible to link our engines against evas
Summary:
it FINALLY happend! With this python bindings should be able to work
again with a meson build, you can also enable b_lundef right now. And it
appears to work, with this we can also get another step closer to a
windows build.
Depends on D8669

Reviewers: zmike, stefan_schmidt, cedric, vtorri

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8670
2019-04-19 14:39:31 -04:00
Mike Blumenkrantz e35503ab8d back to dev mode 2019-04-05 20:13:54 -04:00
Vincent Torri 1066e5be60 Windows, meson build : use posix *printf family function
Summary: the Windows libc has different format flags for the *printf functions, fix this by using the posix version provided with mingw

Test Plan: compilation

Reviewers: zmike, raster, q66

Reviewed By: q66

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8432
2019-03-21 11:26:15 +01:00
Daniel Kolesa 58b8a3d163 efl: remove EFL_EO_API_SUPPORT macro
Summary:
Since we're now going to be shipping some eo classes as stable,
there is no point in keeping the eo api behind a macro, and it
should be enabled by default. Another case is beta classes, but
those are behind the EFL_BETA_API_SUPPORT guard.

This also changes includes around the place where things are
clearly broken (such as an included header needing something
from another header but that other header being guarded, notably
efl_ui_widget.h needing focus manager but focus manager being
behind beta in Elementary.h)

Reviewers: zmike, cedric, bu5hm4n, stefan_schmidt, segfaultxavi

Reviewed By: cedric, segfaultxavi

Subscribers: segfaultxavi, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8322
2019-03-18 12:13:59 +01:00
Marcel Hollerbach 68a0bfda51 meson: be a bit more helpfull when it comes to bindings
Summary:
for now meson would have just used the order that you pass in via
-Dbindings=mono,cxx. However this leads to bugs, as cxx for example must
be declared before mono can be declared. This fixes this error by
forcing a order.

Reviewers: zmike, segfaultxavi

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8341
2019-03-14 14:26:21 -04:00
Stefan Schmidt a25c0d7137 release: Update NEWS and bump version for 1.22.0-alpha1 release 2019-02-28 15:51:57 +01:00
Wonki Kim 56a91961ce meson: add a option for selecting lua interpreter
this patch is for selecting lua interpreter such as luajit, lua51
and in addition, little more changes to unify lua dependency over efl

Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D7564
2019-02-21 20:49:00 +01:00
Marcel Hollerbach 2c259edd9f meson: add the elementary examples to the build 2019-02-21 08:56:13 +01:00
Marcel Hollerbach ac60610573 build: add a option to bootstrap eolian
this is here in order to make cross compiling easier, and we can just
provide the *all the time changing* eolian_gen binary.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D7929
2019-02-14 13:00:56 +01:00
Marcel Hollerbach 06160466e8 Revert "Revert the env object because it's broken portability - please redo"
This reverts commit d6294fa22b.
2019-02-12 21:34:27 +01:00
Carsten Haitzler d6294fa22b Revert the env object because it's broken portability - please redo
setenv and unsetenv are not portable. i explained to you at fosdem
there are issues and it's why i used putenv in the original
implementation and even though it's a pain (the string tou pass to
putenv is a pointer used literallt from there on in and you get it
from getenv, thus making ownership a pain -this is a libc issue we
can't readily solve). use putenv like the original code. then put it
back in. vtorri now has windows porting issues with the setenv use. i
knew there was a reason that still existed...

in addition your in_sync stuff is broken.  psuedocode:

// assuming BLAGH env is not set to anything here
c = efl_core_env_get(global_env, "BLAH");
...
putenv("BLAH=10");
...
c = efl_core_env_Get(global_env, "BLAH");

i will get NULL in both cases for c ... but i should get "10" for the
2nd in reality. reality is lots of code across application code and
libraries will at times mess with the environment. it has to work with
this. the prior implementation did work with this.

Revert "ecore: here comes a env object"
  This reverts commit 2373d5db5b.

Revert "efl_task: remove env from this object"
  This reverts commit c3d69f66a6.
2019-02-12 20:22:28 +00:00
Marcel Hollerbach 2373d5db5b ecore: here comes a env object
the env object can be used to alter and edit the content of environment
variables. Additionally, the class efl.core.env can be used to to setup
a not applied set of environment variables, which then can be applied
later (in the future) to set it directly to a spawned process for
example, or as a general key/data storage. A efl.core.env object can
also be forked off, which makes it easy to customize predefined objects.

ref T7514

Differential Revision: https://phab.enlightenment.org/D7510
2019-02-12 11:19:28 +01:00
Wonki Kim 15620ecc7c meson: define HAVE_TSLIB once tslib option is set
Nowhere refers to the tslib option
This patch provides a way to set HAVE_TSLIB
Differential Revision: https://phab.enlightenment.org/D7582
2019-01-10 19:44:01 +01:00
Wonki Kim 8d58ef48bd meson: modify options for enabling the bindings
bindings are added as subdir by foreaching a array defined in meson.build at root.
then meson checks a option which has the same name of the binding.
this patch appends a new option for selecting bindings to build.

[howto]
*as-is
meson build.asis/ -Dmono=false -Dcxx=true
ninja -C build.asis/

*to-be
menson build.tobe/ -Dbindings=luajit,cxx
ninja -C build.tobe/

it is imposibble to use this wrongly because meson raise a error if arguments are not in a predefined list that described in meson_options.txt.
for more information, refer to https://mesonbuild.com/Build-options.html and also take a look at meson_options.txt please.
Differential Revision: https://phab.enlightenment.org/D7563
2019-01-10 10:57:42 +01:00
Marcel Hollerbach 9c256beb2e meson: support cmakeconfigs
this was forgotten, but its required from Ecrire Clouseau etc.

fixes T7540.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7541
2019-01-04 11:03:36 -08:00
Marcel Hollerbach a975f037c3 meson: warn on unused parameters like on autotools
this mirrors the behaviour of autotools.
2019-01-03 16:21:11 +01:00
Vincent Torri e142bf796d Add support of Windows 8, 8.1 and 10
Reviewers: raster, bu5hm4n

Reviewed By: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7528
2019-01-02 10:34:47 +01:00
Carsten Haitzler b03c818b1c meson - dont install eina bench cmp and use install_mode 2018-12-27 17:17:13 +00:00
Carsten Haitzler f532be51bc meosn - fix install of scripts and bins and their timestamps and modes
i was comparing the bindir results of aurtofoo vs meson and some
things were missing/poking out at me. this makes them be in sync -
install the ewl_wl+test obnaries, ensure to chmod +x+r etc. scritps
AND install them
2018-12-27 15:24:08 +00:00
Lauro Moura 95069a3038 meson: Enable dev flags for cpp
Had to add a pragma around CityHash64 to make it work with
-f-visibility=hidden

Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D7466
2018-12-17 16:38:40 +01:00
Marcel Hollerbach 28f155a5c6 build: add warnings and compiler flags to meson
this moves meson and autotools closer to each other. The flags are
selected in order to keep the amount of warnings low.

Differential Revision: https://phab.enlightenment.org/D7429
2018-12-17 09:11:18 +01:00
Daniel Kolesa 6e11153ef7 meson: fix build on power/ppc targets with altivec enabled 2018-12-14 11:18:15 +01:00
Marcel Hollerbach 500a36ba3d meson: add inital support for windows compilation
Differential Revision: https://phab.enlightenment.org/D7416
2018-12-07 13:05:31 +01:00
Marcel Hollerbach 2197b8eb24 meson: remove DATADIR as it is not used
and further more, on windows this causes un-understandable compiler
errors.

Differential Revision: https://phab.enlightenment.org/D7417
2018-12-06 15:49:17 +01:00
Marcel Hollerbach 48ca7a2f33 elementary: add a benchmark for focus widget tree interation
The benchmark checks how long it takes to move focus through a few
nested scrollers.

Differential Revision: https://phab.enlightenment.org/D7363
2018-12-03 20:23:05 +01:00
Carsten Haitzler 9934b783c4 meson - add micro version to pkgconfig files 2018-11-17 11:19:41 +00:00
Carsten Haitzler 3750dac503 meson - fix build on non-intel and correct cross compilation
don't set -msse3 unconditionally - set the correct flags based on
architecture. now it builds on arm, aarch64 again as well as x86. sorry -
can't test ppc as i have no such hardware.

also use host_machine not target_machine. target is wrong that's only
for cross compilers (if we were compiling a cross compiler and the kind of
binary they may produce, not what they run on - that's host).
2018-11-16 21:14:52 +00:00
Marcel Hollerbach 65de934dcf meson: correct the BIGENDIAN and ENVIRON check
we already have the compiler object, there is no need to fetch it again,
further more, we are probebly interested in BIGENDIAN on the
target_machine, not the host_machine.
2018-11-16 17:32:01 +01:00
Marcel Hollerbach 46422187d8 meson: cleanup the native-cpu optimization build code
you were not able to disable the header checks, so if the header was not
there it indicated that you could turn it of. However, the option check
was in the has_header if not outside of it. Further more, header checks
are done in the subdirectory that is done for header checks,
unneccessary cpu_**** flags are removed, global optimization options are
added to the global_arguments instead of just the package_c_args, which
leads to the fact that also all binaries etc. are build by default with
those optimization flags.

This also reduces the amount of options to a minimum of 1 option, to
just control if there should be the optimization or not.

This also changes from host_maschine to target_mschine, since we
probebly want to enable the optimization for the target maschine, not
the host.

Differential Revision: https://phab.enlightenment.org/D7296
2018-11-16 17:29:05 +01:00
Carsten Haitzler b9225fd710 ector - fix meson build with sse3 on ix86 (32bit) 2018-11-16 00:08:47 +00:00
Carsten Haitzler e6c7521f5d meson - move static libs sraw sse2 inot sse3 build options set
this fixes builds when sse3 is enabled by building with sse3 opts...
2018-11-12 16:42:17 +00:00
Daniel Kolesa ac95f38d1b cxx: explicitly require c++11 and fix tests to conform
We weren't setting a C++ version for build previously, which would
result in compiler specific default being used, most likely C++11
with GNU extensions on modern compilers and C++03 with GNU exts
on old compilers. This is bad because it potentially breaks build
on older toolchains that don't default to a modern C++.

Now we enable pure C++11 without GNU exts; this resulted in some
of the build breaking because of use of typeof() GNU C/C++ ext
in tests code, so fix that to use standard decltype() from C++11.

@fix
2018-11-12 15:43:13 +01:00
Carsten Haitzler f92bf3d8cd meson - define WORDS_BIGENDIAN if on big endian 2018-11-11 09:15:14 +00:00
Carsten Haitzler 1dda6461be meson - make having asm headers errors requiring explicit disables 2018-11-10 15:52:51 +00:00
Carsten Haitzler a6f9a1b4f6 meson - set sloppy spec define as default for efreet
matches autofoo build now
2018-11-09 12:37:14 +00:00
Carsten Haitzler c1ad0879a1 meson - add checks/options for mmx, sse3, neon, altivec
so we can build our assembly fast-paths again.... - also clean up the
code a bit to match...
2018-11-09 11:43:59 +00:00
Carsten Haitzler 3a18900441 meson build - fix build to check for environ like autofoo did 2018-11-09 11:43:59 +00:00
Marcel Hollerbach 1c9c8beb40 meson: generate .pc files for efl-core efl-ui efl-net
they simply redirect to the projects of elementary / ecore,efl,emile /
ecore,ecore-con,emile. The resuling flags are the same.

fix T7447
2018-11-02 13:28:28 +01:00
Marcel Hollerbach 2579733515 meson: allow setting of custom pc variables
this brings the theme directory to the elementary .pc file.

Differential Revision: https://phab.enlightenment.org/D7224
2018-10-31 18:26:24 +01:00
Carsten Haitzler 6eb608b9cc meson - ethumb - fix build and install of service files for ethumb 2018-10-31 15:33:58 +00:00
Marcel Hollerbach 852dd60cdb meson: do not add cs as required compiler
Summary: its only required when having mono

Reviewers: q66, netstar, jeyzu

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7213
2018-10-25 23:40:31 +02:00
Marcel Hollerbach 6f9761ff54 meson: time for the c-sharp build
The tests are added and build. For running C# code please see the wiki.

you can enable -Dmono=true

Differential Revision: https://phab.enlightenment.org/D7203
2018-10-24 12:05:58 +02:00
Marcel Hollerbach e85311c992 meson: here comes cxx bindings
this commits is bringing cxx bindings.
You can enable / disable them with the cxx option.

Differential Revision: https://phab.enlightenment.org/D7181
2018-10-24 12:05:58 +02:00
Marcel Hollerbach e19d239147 meson: prepare general build for the bindings
for bindings we needed a system that could be used to find all special
directories of every subsystem, for eo files headers etc.
The mechanism is documented in the root meson.build

Differential Revision: https://phab.enlightenment.org/D7180
2018-10-24 12:05:58 +02:00
Marcel Hollerbach 52e0b8440b Revert "meson: add cxx bindings"
This reverts commit 5aaf2cbb5d.

The cxx bindings were accidently merged. Things are missing (like .eot.h
files)
2018-10-18 16:12:13 +02:00
Marcel Hollerbach 5aaf2cbb5d meson: add cxx bindings
this commit adds cxx bindings to meson.

Differential Revision: https://phab.enlightenment.org/D7169
2018-10-18 16:01:07 +02:00
Marcel Hollerbach 347dc66ba9 meson: unify system properties
this unifies the system types into 4 boolean flags
This fixes the fact that meson changed the system string accross
versions.

Differential Revision: https://phab.enlightenment.org/D7144
2018-10-05 13:40:29 +02:00
Marcel Hollerbach 22d7cd1243 meson: install compat ethumb_client.pc file
in autotools this was not having the same naming convetion than in meson
right now. This installs a duplicated .pc file, so the one with the
different name can be dropped at some point.

Fix terminology compilation.

Differential Revision: https://phab.enlightenment.org/D7132
2018-10-03 18:07:44 +02:00
Marcel Hollerbach 46d464e5bf 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
2018-10-02 17:22:50 +02:00