import projects from . import options defaults = { 'generator:project': 'Unix Makefiles', 'buildflags:project': '-j1', 'upload_file_patterns:project': [ '*.tar.gz', '*.tgz', ], } os = projects.merge_config(options.os, { 'windows': { 'upload_file_patterns:project': [ '*.zip', '*.exe', ], 'generator:project': 'Ninja', }, 'osx': { 'upload_file_patterns:project': [ '*.dmg', ], }, })
# Important ones may include 'category' for putting the builds into a # category for separating the builds out in the view and 'env' for # environment variables. category='awesome' ) # the 'projects' module contains a `merge_config` function which will join two # dictionaries. For each item, it appends lists together, recursively merges # dictionary values, and replaces other types. Mismatches between the # dictionaries will trigger an error. This is useful for making more builders # which share other options which are not necessary for other builds. specialprops = projects.merge_config(defprops, { # Append an extra test to exclude 'test_excludes:builderconfig': [ 'flyingpigs', # full moon on Tuesdays ], 'slaveenv': { 'PATH': '/path/to/some/tool:${PATH}', }, }) specialbuildsets = [ { 'os': 'linux', 'libtype': 'shared', 'buildtype': 'release', 'features': ( 'special', ) }, ]