3 ms·
So far, the closest buildsystem I've seen to that model is Mozilla's build system (https://firefox-source-docs.mozilla.org/build/buildsystem/build-overview.html
by jcranmer 3y ago
So far, the closest buildsystem I've seen to that model is Mozilla's build system (https://firefox-source-docs.mozilla.org/build/buildsystem/build-overview.html https://firefox-source-docs.mozilla.org/build/buildsystem/bu...), the core of which is a set of python files that basically describe the build graph given the feature context. A simple file might be:
SOURCES += ['a.cpp', 'b.cpp']
if CONFIG['OS'] == 'WINNT':
SOURCES += ['win.cpp']
elif CONFIG['OS'] == 'OSX':
SOURCES += ['osx.cpp']
else:
SOURCES += ['unix.cpp']
I like that it uses the Python language rather than coming up with its own DSL for handling conditionality or things where you need to do loops, and by splitting up the steps in the way that it does, it keeps the build system fairly declarative. But don't look under the hood, because the things under the hood are fiendishly complex and it's way too complicated to be usable for a simple project.
- jamesfinlayson 3y agoInteresting - a current (or maybe former) Firefox dev does Half-Life 2 plugin stuff in his spare time and created something similar called ambuild which his projects use.