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