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);