#include "build.h"

API Reference

Complete documentation of IncludeBuild functions.

Core Functions

ib_init

Initializes IncludeBuild with default settings.

void ib_init(void);

ib_build

Builds the project. Automatically finds source files, resolves dependencies, and compiles what's needed.

bool ib_build(void);

ib_add_target

Adds a specific build target with a main source file.

void ib_add_target(const char* name, const char* main_source);

Configuration

ib_set_build_mode

Sets the build mode (IB_MODE_DEBUG or IB_MODE_RELEASE).

void ib_set_build_mode(ib_build_mode mode);

ib_set_debug_flags / ib_set_release_flags

Sets the C and C++ flags for specific build modes.

void ib_set_debug_flags(const char* cflags, const char* cxxflags);
void ib_set_release_flags(const char* cflags, const char* cxxflags);

ib_set_cflags / ib_set_cxxflags / ib_set_linker_flags

Sets the global compiler/linker flags (overwriting defaults).

void ib_set_cflags(const char* flags);
void ib_set_cxxflags(const char* flags);
void ib_set_linker_flags(const char* flags);

ib_add_cflags / ib_add_cxxflags / ib_add_linker_flags

Appends to the global compiler/linker flags.

void ib_add_cflags(const char* flags);
void ib_add_cxxflags(const char* flags);
void ib_add_linker_flags(const char* flags);

ib_target_add_cflags / ..._cxxflags / ..._linker_flags

Appends flags to a specific target.

void ib_target_add_cflags(const char* target, const char* flags);
void ib_target_add_cxxflags(const char* target, const char* flags);
void ib_target_add_linker_flags(const char* target, const char* flags);

ib_generate_compile_commands

Generates a compile_commands.json file.

void ib_generate_compile_commands(void);

ib_allow_recursive_scanning

Enables or disables recursive source file scanning (default: true).

void ib_allow_recursive_scanning(bool allow);

ib_add_include_dir

Adds a directory to the include search path.

void ib_add_include_dir(const char* dir);

ib_exclude_file

Excludes a file or pattern from the build.

void ib_exclude_file(const char* file);

Libraries

ib_add_library

Adds a library to link with.

void ib_add_library(const char* library);

ib_add_libraries

Adds multiple libraries to link with in a single call. Must be NULL-terminated.

void ib_add_libraries(const char* first, ...);

ib_add_library_path

Adds a directory to search for libraries.

void ib_add_library_path(const char* path);

Logging

ib_set_log_level

Sets the logging verbosity level.

void ib_set_log_level(ib_log_level level);

ib_set_verbose

Enables or disables verbose output.

void ib_set_verbose(bool verbose);