
2014-01-26 Johan Engelen <jbc.engelen@...2592...>:
Thanks for the clarification.
I'm trying to use it on Windows now.
- Extra dependency = perl (installed ActivePerl, is free)
Perl is a dependency of intltool-merge. AFAIK we don't need to use intltool-merge on Windows, because we don't build a desktop file there, so it's a question of further tweaking the build script. (Note that I didn't do any testing on Windows yet, so I don't expect it to work.)
- It finds MSVC first, but I can tell it not to do that (how to set the
default? CXX env var does not work, as it still thinks that is MSVC...)
We can set the variable waflib.compiler_cxx.cxx_compiler to set the compiler priority, e.g. add this before the functions: from Tools import compiler_cxx compiler_cxx.cxx_compiler['win32'] = ['g++', 'clang++']
I also thought about adding some magic code that detects what compiler did you specify in the CXX variable and picks the appropriate Waf tool, but I'm not sure whether this is generic enough to warrant
- It creates /build. Does it do out-of-source build automatically? That'd be
great.
Yes, you can tweak the output directory by using --out at config time or changing the 'out' variable in the wscript.
- Now it errors because it cannot find 'glib-mkenums' (indeed, the
executable is not in our devlibs)
This is loaded by the tool "glib2" by default, but we don't use it, so it's the same as with Perl - some tweaking is necessary.
- I really hope we can set all defaults correctly on Windows, so we can
build from a new checkout with the same amount of effort as we do now (almost zero).
In the earlier system, I did get to the point where saying "./waf dist" created the installation directory exactly like btool. I think this time around I'll be able to achieve that state much quicker.
2014-01-26 Vinícius dos Santos Oliveira <vini.ipsmaker@...400...>
Does it track include files as well? I did a simple test seconds ago and CMake was able to track include files too.
Use case: You change a header file included by some two implementation files. The implementation files are not changed, but the header file is changed. The implementation files including this header file should be recompiled.
Yes, it does track include files. I used Waf for some other projects before and never had an issue on that front.
2014-01-26 Martin Owens <doctormo@...400...>:
But maybe if waf can compile things in a smarter way. Every time I edited document.h, I has to wait a long time for the compile because it currently compiles every included file (and I understand why it might need to) but perhaps some kind of manual command to say `make document.o only and relink`
If you edit document.h, you must rebuild every file that includes document.h - there is no way around that, in any build system in existence. It is theoretically possible to check whether the edits change API/ABI and only recompile then, but this would be incredibly complex to implement; I don't even know whether this is possible at all.
Regards, Krzysztof