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.
Generate to a temporary location and avoid touching the original file
if it's unchanged. This way we play nicer with build system that
regenerate objects based on file timestamps.
'make test' wouldn't build the test, which is annoying.
There is no way to add dependencies to reserved target 'test'. The
test is also executed by another tool (ctest), not cmake itself, then
we must create a test '-build' that is actually calling back cmake to
compile the test suite and make it a dependency for the test itself.
Nasty but improves usability.
this will generate eo.h eo.c rules for SOURCES and public eo files.
This also installes the eo.h files from the public eo files into the
include directory, and installes the eo files into the correct location
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.
For one-source directories, be smart and just define SOURCES to that,
will reduce the number of too-simplistic CMakeLists.txt in our tree.
This also fixes problems with libraries, they should be private, not
public. So specify both kinds as different variables.
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.
Macros do not start a new scope and can leave leftovers, then use
functions. However to set and append to global scope is cumbersome,
add functions to aid that.