# ; -*-conf-toml-*-

# This file was originally autogenerated by 'sb --init'. It was generated with a
# lot of comments and commented out examples. The intention is of course to make
# it easy to quickly set up your configuration by simply editing this file as
# needed. Feel free to either remove the comments or simply leave them for later
# reference. For reference you can find more information about simplebuild.cfg
# files on https://mctools.github.io/simplebuild/simplebuilddotcfg.html .
#
# A note about paths in this file: Any paths specified can either use absolute
# paths, or paths relative to the directory of this cfg-file. For instance, a
# path like './mypkgs' indicates a subdirectory called 'mypkgs' in the same
# directory as the cfg-file, and a path like '../otherrepo' indicates a
# directory called 'otherrepo' located next to the directory of this cfg-file.

[bundle]
  # If you wish to let other bundles use your bundle of packages, you must give
  # it a name (so they can specify it in their list "bundles" list in the
  # [depend] section below):
  #
  #   name = 'mybundlename'
  #
  # If the directory below which you keep your simplebuild packages (i.e. "the
  # package root") is not meant to be the same directory as the directory
  # containing this cfg-file, you can modify it here. If for instance, all the
  # packages are below a subdirectory called 'mypkgs', you could specify:
  #
  #   pkg_root = './mypkgs' #default is '.'
  #

[depend]
  # Here you can give a list of names of any other package bundles we depend
  # on. You will always depend implicitly on the 'core' bundle (which provides
  # just a single package: 'Core'). You could add also 'core_val' to get a few
  # more unit tests, to verify your system:
  #
  #   bundles = ['core_val']
  #
  # If for instance you have installed simple-build-dgcode, you should have two
  # more bundles available: 'dgcode' and 'dgcode_val', where the latter contains
  # unit tests for the former. So you could add for instance:
  #
  #   bundles = ['dgcode']
  #   bundles = ['dgcode_val']
  #   bundles = ['dgcode','dgcode_val']
  #   bundles = ['core_val','dgcode','dgcode_val']
  #
  # The last three of those are actually equivalent, since the dgcode_val bundle
  # itself specifies a dependency on the 'dgcode' and 'core_val' bundles.
  #
  # If working with bundles like core/core_val/dgcode/dgcode_val, they will most
  # likely have been installed as a pip or conda package, and simplebuild will
  # be able to locate them automatically. But sometimes you wish to depend on
  # other bundles of packages in local directories. Perhaps you have a custom
  # repo with a simplebuild bundle called 'myutils', cloned in
  # '../../myrepos/myutils' which you wish to use. In that case, you must add
  # 'myutils' to the bundles=[..] list above, and then setup your search path
  # by the following line:
  #
  #   search_path = [ '../../myrepos/myutils' ]

[build]
  # By default, the cache directory used for build output will be
  # './simplebuild_cache'. If for instance you would like everything to go into
  # /tmp/myname/sbcache you could use:
  #
  #   cachedir = '/scr/myname/mysbcache'
  #
  # If you want to add many more sanity checks to your code (to help debugging
  # code CORRECTNESS, at the cost of runtime performance), you can use:
  #
  #   mode = 'debug'
  #
  # If you wish to just enable debug-symbols in your build, but not otherwise
  # modify compilation options (to help debugging code SPEED), you can use:
  #
  #   mode = 'reldbg'
  #
  # If you have many packages, and would like to only consider a subset of them,
  # you can set one or more package filters. Note that this concerns packages
  # *explicitly* enabled. Any package needed by those, will be *implicitly*
  # enabled. Thus, to build a package 'MyPkg', you only need to add 'MyPkg' to
  # the list, even if 'MyPkg' itself depends on many other packages.
  #
  #   pkg_filter = ['MyPkg','MyOtherPkg']
  #
  # More about filters:
  #
  # A filter can be positive (default) or negative (those prefixed with
  # '!'). Thus, you can exclude 'MyPkg' (and any pkgs needing 'MyPkg') by:
  #
  #   pkg_filter = ['!MyPkg']
  #
  # If any positive filters are defined, a pkg must match at least one of them to pass.
  # If any negative filters are defined, a pkg must match none of them, to pass.
  #
  # You can use wildcards (fnmatch). The following matches both MyPkg and MyOtherPkg:
  #
  #   pkg_filter = ['My*']
  #
  # Filters with '/' in them are matched on the full path relative to their
  # pkg_root, otherwise matching is just based on the package name. So if MyPkg
  # is physically located at <pkgroot>/some/where/MyPkg, the string to match for
  # filters with '/' in them would be 'some/where/MyPkg'. I.e. MyPkg would be
  # enabled by:
  #
  #   pkg_filter = ['some/where/*']
  #
  # Filters can use regular expressions, simply prefix them with 'RE::'. Here is
  # an example with both a positive and a negative filter, selecting packages
  # whose names include the word 'Util', but does not include the word
  # 'test'. The '(?i)' makes the second filter case-insensitive, so
  # 'MyUtilsTests' and 'MyUtils_tests' would both be excluded by it. 'MyUtils'
  # would be accepted, but 'My_utils' would not:
  #
  #   pkg_filter = ['RE::.*Util.*','!RE::(?i).*test.*']
  #
  # Commas (,) can not be used in filters, but serve to separate filter
  # items. In fact, the two following pkg filters are identical:
  #
  #   pkg_filter = [ 'My*','!MyBrokenPkg' ]
  #   pkg_filter = [ 'My*,!MyBrokenPkg' ]
