Klaas Holwerda ha scritto:
> Francesco Montorsi wrote:
> 
>> It's not just a duplication of already existent work. It adds many new 
>> concepts and features to the build tool area which I've never seen 
>> anywhere else (but I admit I'm a bit ignorant on scons/premake side).
> 
> Just mention a few, because i am not aware of that.
currently comes to my mind the following ones:

- bake-time != compile-time. This means the makefiles are generated from 
the developer and used by the users. The users does not have to use a 
generator and then use their MAKE tool on the generated files.

Honestly this is not unique to bakefile. It was e.g. also the logic 
behind tmake, its predecessor. But AFAIK it's the only build tool to 
maintain that logic nowadays.

- native-tool integration: in this sense it's wx-like. It aims to 
produce e.g. a perfectly native build system on Unix through autoconf 
and a native build system on Windows (with makefiles & project files).

- object-oriented description language


> I only see XML, used to be more or less a programming language in combination 
> with template like definitions.
> And it is even harder to read and follow then Cmake itself, which is not so 
> easy too.
I don't think so. See below.

> I don't understand why XML was choosen, i think plain python/wxPython, would 
> have bin much better. 
shortly a new <python> tag will be added to bakefile. It will make 
possible to embed directly python code in the .bkl files. Otherwise you 
can already code function utilities etc in a separed python file (though 
AFAIK you cannot declare targets from them).

>But maybe i am just 
> missing the concept, which would explain why XML was/is just the best choice.
XML does not require the user to learn a new syntax if he knows XML.

The real logic behind the XML choice is: the build system should not be 
a program but rather an elegant description file which describes what 
should be built and how. Stop. You don't want e.g. iterative loops in 
build files, nor you should need a lot of conditionals.

The build system files should be syntethic descriptions. Ok, in practice 
I know they are not. And in particular currently they contains too many 
<if>s. Ways to avoid them are possible and in fact I think in future 
their presence will be much more limited.


> <if cond="FORMAT=='msvc' or FORMAT=='mingw' or FORMAT=='gnu' or 
> FORMAT=='autoconf'">
>      <command>( cd $(__cmddir) &amp;&amp; $(__cmdstr) )</command>
> </if>
> 
> The above is just weird to me, knowing enough about XML myself. I think 
> bakefile is parsing the "cond" parameter itself.
right. That's documented and basically one of the only two things to 
know about <if>s.

It's not weird to me. It's clear. In C++ you'd write:

if (FORMAT=='msvc' or FORMAT=='mingw' or FORMAT=='gnu' or 
FORMAT=='autoconf') {
      command( cd $(__cmddir) &amp;&amp; $(__cmdstr) );
}

is it so different ?

And I think it's much better than CMake which forces you to repeat the 
condition in the closing token of the IF. Much more redundant.

>> And that's what OSS all about after all: competition and creation of new 
>> projects in general, stimulates the diffusion, creation and ehancements 
>>   of new ideas and innovation.
> 
> Yes, but it is also confusing to choose ;-)
I'm convinced chaos is part of Open Source. That's the drawback ;)

Francesco




-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Wxart2d-users_dev mailing list
Wxart2d-users_dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wxart2d-users_dev

Reply via email to