0 votes

Just curious.
It's about the SCons build files used in the source repo.

in Engine by (112 points)
edited by

2 Answers

+2 votes
Best answer

I don't know the reason for this choice, but by googling it seems to be used only in Godot an tolua++, both of which have Ariel Manzur among their founder, so I guess it's a personal choice of his :)

I think it's nice personally, as it makes it clear that the SCsub scripts can't be used by themselves. So trying to run scons in a folder with only SCsub would likely simply return that there is no SConscript file, while if there was one, it might fail with a more misleading message?

by (1,903 points)
selected by

Haha, thanks. I just gave it a try, having only SConscript also fails scons' invocation. It looks like by default SConstruct is needed.
SConstruct and SConscript are both automatically highlighted by Qt's editor in python syntax. I had to add SCsub to the highlighter def file to get proper colors.

Ah I've noticed the lack of syntax highlighting too, that's indeed a disagreement.

Knowing Ariel, the reason for the SCsub name is probably related to having had a sandwich at Subway's before setting up the buildsystem :P

+1 vote

The style of scons scripts we use was created in 2001 for an engine we were making for an MMO which eventually became "Regnum Online". I don't remember if there was a specific reason, I probably just didn't like the name "Sconscript" that was on all the documentation (it looks too much like "SConstruct"), so I used the name "SCsub" because it's like a sub-script (or something that goes on a sub directory).

The way we use scons (which is also unusual I think, I've seen very few projects using scons over the years, and they all used it in a very complicated way which failed to build most of the time) remained very similar over the years, in fact it's simpler today. We did env.Clone() a lot more, at some point we built multiple dlls, and until recently we could build multiple targets with the same command. There's still a few things we could improve about it (for example we could put all the .o files in some hidden directory, and I wish there was an easier way to distribute scons for windows), but I'm pretty happy with how it works now (although I would like to still build multiple targets with the same command :p)

by (94 points)
Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to webmaster@godotengine.org with your username.