# A list of macros to define when compiling the source files.
defines: [BS_THREAD_POOL_TEST_IMPORT_MODULE, BS_THREAD_POOL_IMPORT_STD, BS_THREAD_POOL_NATIVE_EXTENSIONS]
# A list of dependencies, such as header files or libraries. All source files compiled using this script will be recompiled if any of these files change. (Note that this is not used for C++20 modules, which have their own dependencies, listed in the modules map.)
deps: [include/BS_thread_pool.hpp]
# Whether to disable exceptions.
disable_exceptions: false
# A map of flags to pass to each compiler. The compiler should be one of [cl, clang++, g++]. The flags should be a list of strings.
flags:
  cl: [/W4, /D_CRT_SECURE_NO_WARNINGS]
  clang++: [-Wall, -Wextra, -Wconversion, -Wsign-conversion, -Wpedantic, -Wshadow, -Weffc++, -Wdocumentation, -march=native, -fcolor-diagnostics, -fansi-escape-codes, -stdlib=libc++]
  g++: [-Wall, -Wextra, -Wconversion, -Wsign-conversion, -Wpedantic, -Wshadow, -Wuseless-cast, -march=native, -fdiagnostics-color=always, -Wnrvo]
# A list of include folders.
includes: [include]
# A map of C++20 modules in the format "module_name: [module_path, dependencies, ...]". Will only be used in C++20 or C++23 mode. The dependencies are any files that the module depends on, and are only used to determine whether the module needs to be recompiled.
modules:
  BS.thread_pool: [modules/BS.thread_pool.cppm, include/BS_thread_pool.hpp]
# The output folder for the compiled files.
output: build/
# A list of arguments to pass to the program if running it after compilation.
pass_args: []
# A map of paths to the standard library modules for each OS and compiler combination (C++23 only). The OS should be one of [Darwin, Linux, Windows]. Use "auto" to determine the path automatically if possible.
std_module:
  Darwin:
    clang++: auto
  Linux:
    clang++: auto
    g++: auto
  Windows:
    cl: auto
    clang++: auto
    g++: auto
