-- Config file generated by blmake!
-- `hooks` and `project_metadata` expect specific key-value pairs as values. Leave empty if unused.
-- All other tables expect string values. Leave empty if unused.
-- `debugging` expects a boolean value.
-- Everything else expects a string value. Use "" if unused.

Full_build = {
    compiler = "g++",                            -- The compiler to be used (e.g., "gcc", "clang")
    files = {"main.cpp", "utils.cpp"},           -- A list of source files to compile (e.g., "main.cpp", "utils.cpp")
    include_dirs = {"this", "that"},             -- Directories for include files 
    preproc_opts = {},                           -- Preprocessor options (e.g., macros, include paths)
    linker_opts = {"m"},                         -- Linker options (e.g., "m" for the math lib)
    output = "main",                             -- Output file name (optional, defaults to a.out)
    optimization = "-O0",                        -- Optimization level (e.g., "-O2", "-Os")
    debugging = true,                            -- A BOOLEAN value indicating whether to include debug info ("-g")
    warnings = {},                               -- Warning levels and options (e.g., "all", "error")
    platform_opts = {},                          -- Platform-specific options (e.g., architecture flags)
    profiling = "",                              -- Profiling options (e.g., "-pg")
    lto = "",                                    -- Link-time optimization (e.g., "-flto")
    lang_exts = {"-std=c++20"},                  -- Language standard and extensions (e.g., "-std=c11", "-fno-exceptions")
    dependencies = {},                           -- Libraries to link against, e.g. {"lib1", "lib2"}
    build_type = "",                             -- "Debug" or "Release"
    env_vars = {},                               -- e.g., {CC = "gcc", CXX = "g++"}
    src_dir = "src",                             -- Source directory
    out_dir = "build",                           -- Output directory
    hooks = {post_build = "./run.sh"},           -- e.g., {pre_build = "scripts/pre_build.sh"} 
    custom_flags = {},                           -- e.g., {"-fno-stack-protector"}
    tests = {},                                  -- e.g., {"test_suite1", "test_suite2"}
    documentation = "",                          -- Directory or command for generating docs
    project_metadata = {                         -- Optional: project name, version, author
        name = "",
        version = "",
        author = "",                             
    }                                            
}

-- Customize behavior below!
-- For example:
--[[
if Full_build.build_type == "Debug" then
    Full_build.optimization = "-O0"
end
]]