Hello,

i am sorry for the wrong minum-version number. I think 3.0.2 is enough,
since we are using LINK_PRIVATE and LINK_PUBLIC.

What error messages are you getting?

Greetings
   bu5hm4n

On Wed, Jan 25, 2017 at 12:10:38PM +0200, Andrii Kroitor wrote:
> Hello
> 
> I'm very excited to see steps towards CMake :)
> Is there any reason to limit minimum version to 3.7? Current unbuntu 
> release has cmake version 3.5.1 included.
> Looks like with 3.5 cmake step passes ok, but build fails on eo files 
> generation. I'm wondering if it is because of some missing cmake 
> features or simply because work is in progress.
> 
> 
> On 20.01.17 01:17, Gustavo Sverzut Barbieri wrote:
> > Hi all,
> >
> > Marcel Hollerbach did a nice work and started a branch 
> > devs/bu5hm4n/cmake-port
> >
> > After some review, I shared my experience with CMake and did a
> > complement trying to simplify it: devs/barbieri/cmake
> > (https://git.enlightenment.org/core/efl.git/log/?h=devs/barbieri/cmake)
> >
> > As you can see, complexities are hidden from the user using some
> > macros/functions defined in cmake/helper/EflMacros.cmake
> >
> > At the toplevel directory you simply say: EFL_LIB(eina)
> >
> > Then the macro will include whenever appropriate
> > src/{lib,bin,modules,tests}/eina and do the right action. You can see
> > from sub-CMakeLists.txt how simple they become, basically define some
> > variables (which makes it simpler for us to change to a new build
> > system next time).
> >
> > There are some restrictions in that, which I'd like to keep and
> > instead of work-around in the build system, change the code to reflect
> > that:
> >
> >   - one library per directory, offenders are efreet_mime/efreet_thrash
> > and possibly others;
> >
> >   - modules should install
> > ${libdir}/${libname}/modules/${scope}/${modname}/v-${VMAJ}.${VMIN}/module.so,
> > currently some libs miss "/modules", like ecore/system
> >
> > If you want to try it out, be aware that binaries are still not
> > handled and eina_suite still doesn't work. And I'm forcing out-of-tree
> > builds, so we fix that for once and for all:
> >
> >     mkdir -p build && cmake -H. -Bbuild && cd build && make
> >
> > To address raster's complains about hard targets and so on:
> >
> >     make eina
> >
> > builds eina checking dependencies, while:
> >
> >     make eina/fast
> >
> > doesn't check dependencies, this is in GNU Make. Ninja doesn't offer such 
> > rule.
> >
> > I'm also offering targets for modules and tests:
> >
> >     make eina-tests
> >     make eina-modules
> >
> > Everything should be placed in build/lib, build/bin and so on, so it
> > will mimic the system installation and eina_prefix should be able to
> > work (we're still missing the 'checkme' files).
> >
> > Although I know cmake from my years-ago usage, I'm not an expert that
> > works with it every day, thus review of the CMake, particularly the
> > macros is very helpful.
> >
> > >From an user (EFL developer that doesn't mess with build system) point of 
> > >view:
> >
> >    - library configuration checks and options (cmake/config/eina.cmake):
> > https://git.enlightenment.org/core/efl.git/tree/cmake/config/eina.cmake?h=devs/barbieri/cmake&id=c15eca03344e9bc1e602769c4af6e3c2ae2cc405
> >   The idea is to isolate these complexities from source/headers as very
> > few people will need to look at configure, but most developers need to
> > touch file list.
> >
> >    - library sources, headers (src/lib/eina/CMakeLists.txt):
> > https://git.enlightenment.org/core/efl.git/tree/src/lib/eina/CMakeLists.txt?h=devs/barbieri/cmake&id=c15eca03344e9bc1e602769c4af6e3c2ae2cc405
> >
> >   - library module (src/modules/eina/mp/pass_through/CMakeLists.txt):
> > https://git.enlightenment.org/core/efl.git/tree/src/modules/eina/mp/pass_through/CMakeLists.txt?h=devs/barbieri/cmake&id=c15eca03344e9bc1e602769c4af6e3c2ae2cc405
> >
> >   - library unit tests (src/tests/eina/CMakeLists.txt):
> > https://git.enlightenment.org/core/efl.git/tree/src/tests/eina/CMakeLists.txt?h=devs/barbieri/cmake&id=c15eca03344e9bc1e602769c4af6e3c2ae2cc405
> >
> > As you can see these files are very small, they basically define
> > SOURCES, HEADERS, DEPENDENCIES, LIBRARIES... variables and these are
> > used to execute CMake specific targets, set properties, etc.
> >
> > If we can settle on one-lib-per-dir, then we can even simplify those
> > and remove ${libname}_ prefix, as done by modules we could specify
> > SOURCES instead of eina_SOURCES.
> >
> >
> 
> -- 
> *Best Regards,
> Andrii Kroitor
> * Engineer, Tizen Platform Lab
> 
> Samsung R&D Institute Ukraine
> 57, Lva Tolstogo St., Kyiv 01032, Ukraine
> email: an.kroi...@samsung.com <mailto:an.kroi...@samsung.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-devel@lists.sourceforge.net
> 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
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to