Ninjutsu is a small Ninja build generator for Clang based projects
from Ninjutsu.ninjutsu import Ninjutsu
ninjutsu = Ninjutsu() #extends ninja.Writer
# Compile all source files in a directory
compiler_flags = ["-Wall -Werror"]
app_objs = ninjutsu.make_objs(source_path="src", extension_name="cc", flags=compiler_flags)
my_lib_objs = ninjutsu.make_objs(source_path="src/Core", extension_name="cc", flags=compiler_flags, recurse=True)
# Create targets
my_dynamic_lib = ninjutsu.as_target(target_t="dylib", name="MyLib", objs=my_lib_objs)
app = ninjutsu.as_target(target_t="exe", name="App", objs=app_objs,
depends_on=[my_dynamic_lib])
target_t | Description |
---|---|
exe | Executable |
dylib | Dynamic Library |
lib | Static Library |
./build.ninja <- Generated ninja file
./build/ <- Build output goes here
./build/bin <- Targets go here
./build/obj <- Object files go here