A word of warning, this post contains quite a bit of profanity after the jump break
After being up until well past 0400 last night, setting up a decent SCons build set on FreeBSD, for testing— its usefulness to this project. I started setting up the required config tweaks today on the Windows machine.
When suddenly, I found a odd difference between how the same SCons versions behave on FreeBSD/unix and Windows, in fact, this kind of thing is why I've given up on the more popular CMake.
lib = os.path.join('#', outdir) # # For some really mother fucking stupid reason, Glob('*.$OBJSUFFIX') works # on FreeBSD scons 1.2.0_20091224 but not on the Win32 scons 1.2.0_d20091224 # from the installer. So we have to use this fucking method, which will require # us to wrap it in exceptions in case OBJSUFFIX is None or missing totally on
# platform X.Y.Z. from fucking hell -- I fucking hate software build tools. # src = None try: src = os.path.join('#', outdir, '*'+str(env['OBJSUFFIX'])) except: print("Fatal error: I can't make libs from object files without a file " + "extension. TERMINATING THIS SCONSCRIPT") import sys sys.exit(127) env.StaticLibrary(lib, Glob(src))# edit: an explanation of why subst() isn't used in place of the [] look up: once you violate the consistency part, I'm not going to trust that there will be an $OBJSUFFIX to subst() on.
I was going to make most of this code a simple library function for the sake of code reuse, instead of having a virtual copy/paste of the same few SConscript files between all my games source modules—after this, I'll stick to having one of those comment blocks in each source modules SConscript file as appropriate.
Generally I like SCons, it's rather similar to what I've invisioned as the "Perfect build tool", even though SCons still requires about 3 x the amount of work for Stargellas build system then tmk should. However, SCons is here today, tmk won't be for a long time. What annoys me, is that SCons is still just as bad as all the other build tools out there.
For crying out loud people, it is the year twenty first fscking century.... and asking some consistency of our modern build tools, still demands limiting ourselves to the 1970s era make tool from PWB/UNIX.
No comments:
Post a Comment