in autotools we always define that symbol in config.h (thus now done
in common.cmake), while the Efl_Config.h that is generated never have
it, what's left is to enable/disable the legacy and beta APIs.
This fixes building eldbus_suite with cmake.
there is currently a bug in the testsuite which needs to change,
otherwise modules cannot be loaded. The code acutally runs when its
installed and EFL_RUN_IN_TREE is not set.
So EOLIAN_BIN had no type, which resulted in BOOL and thus ON/OFF. It
should be labeled as FILEPATH and then we can remove the special case
in EflMacros.cmake.
Add emile and with that EFL_OPTION_BACKEND() to support choosing among
different backends for something, in emile's case it's crypto backend
(gnutls, openssl or none).
pkg-config names can be encoded with a version requirement, such as
zlib>=1.2.3, thus we need to remove that from the variable.
with autotools we used HAVE_XXX and ENABLED_XXX to instruct such
optional library was present, then define that just for the user
target by adding that to its CFLAGS.
This allows us to remove some defines that matches the name, only
leave those that translate from original pkg-config name, such as
libsystemd->systemd.
This is now used by ENABLE_SYSTEMD and ENABLE_VALGRIND, which moves to
"common.cmake" since they are shared among multiple libraries.
With that I found that LINK_FLAGS is indeed a string, not a CMake List
(space separated, not ";"), then fix that so compilation actually works.
Since the macros were moved to EflMacros.cmake, there is no reason to
keep CommonHeaderChecks.cmake anymore, put them all in
config/common.cmake
Keep the checks sorted so they're easy to organize.
Add missing check for prctl() and iconv() (which we were checking
iconv.h, but the code used '#if HAVE_ICONV').
make FUNC_CHECK(), TYPE_CHECK() and HEADER_CHECK() more general and
they can be set to a scope, like "eina", then all symbols are prefixed
with that. The scope is created with CHECK_INIT(), and
EFL_HEADER_CHECKS_FINALIZE() will finish that.
This makes it possible for cmake/config/eina.cmake +
cmake/post/eina.cmake to add stuff to the generated file, better than
hand edit the template.
CHECK_APPEND_DEFINE(name val) is now the base to add symbols to the
generated file in the current scope.
Then convert cmake/config/eina.cmake to use that and match the
autotools values (were a bit off).
This exposed enabling valgrind was broken due incorrect pkg-config
usage with cmake (it's not obvious), it was using just the libraries,
while LDFLAGS are needed to get -L/usr/lib/valgrind. Then also convert
to CFLAGS provided by pkg-config and make that automatic for
PKG_CONFIG_REQUIRES and PKG_CONFIG_REQUIRES_PRIVATE.
Also, eina-mempool modules use valgrind and must use that now that's
propagating correctly.
we can't check the options in config/eina.cmake as they were not
created at that point, instead we must have a "post" file that is
included after everything else is processed, options/targets all
exist and can be modified.
This brings in the checks for all the headers and function that are
required in eina. With this commit only a few other checks are missing.
This is NOT tested on windows or mac os i can just verify that it runs
here on a arch linux system.
Stick to one target per directory and remove prefix from variables,
makes it cleaner and easier to use.
Document variables used and use a more consistent name that matches
CMake properties.