follow up: I've tried getting started with cmake and vim. I ran into two problems:
P1 if_config.py and if_config3.py require different C flags to be compiled with. P2 configure has many "magic" I don't want to rewrite (not at all using cmake) Solutions to P1) 1) set_property (sucks, because I don't know how to pass many flags as list of arguments, which I cannot imagine being portable) However I've filed a bug report to find out whether its my understanding being wrong: http://public.kitware.com/Bug/view.php?id=14182 2) create static libraries for py and py3, then link agains them Except that there are many additional "configuration" tests - which why I think rewrititing the whole configuration setup is a bad idea, unless there is significant value in doing so. So why would rewriting make sense? - speedup parallel execution of tests such as test whether PY_NO_RTLD_GLOBAL should be set. This is often basically running gcc with some header files and test for failure. And this is done a lot in practise. - target other make systems. Reasons: other operating systems, eg nmake, IDE files etc. - cmakes configuration language is not that nice. Eg read the big endian test with ships with cmake, and then you'll know that even a simple task such as running gcc looks "bloated". Thinking about it little more had the impression that being perfect is not what I want, because it leads to less readable code. What I really want is nice configure like syntax, allowing me to define order easily but run some tasks in threads and wait till they are finished. A dead simple ruby implementation would look liket this: # SlowValue: using a worker pool a computation waits till its finished # the great thing: because everything in ruby is an object, you can # catch and forward all calls (even == <= operators are just methods) # which can be forwarded to "wait till computation has finshed" and # then be run on the yielded object. Thus a laziy value does not # require any special treatment from user point of view. # simple not that well tested sample implementation: http://dpaste.com/1206087/ slow_big_endian_test = SlowValue.new do sleep 3 # this simulates running gcc "#define HAS_BIG_ENDIAN" end.compute has_header_x = SlowValue.new do sleep 3 "#define HAS_HEADER_X" end.compute config_h = [] config_h << slow_big_endian_test config_h << has_header_x # now while trying to read the lines ruby will wait till computation has # finished: puts config_h This developers would be able to write code close to what they already know. They'd be able to use a powerful scripting language (ruby) The actualy "make" process should be forwarded to specialized tools such as make, nmake, tup, ninja etc. I don't want to reinvent the wheel. However after struggling with cmake again for simple reasos I feel reiventing the wheel does make sense. Does such a configuration system already exist? I know that big projects like blender, kde, ... switched to using cmake even though its not perfect. Eg big projects like blender already used scons, then switched to cmake (mostly). So using a scripting language for the build process too, seems wrong. Yes, I am aware that configuring only takes the smaller amount of time when writing patches. Marc Weber -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
