From 8926f839720471cc86fd4f7c6371d63b8f71b91d Mon Sep 17 00:00:00 2001 From: dacctal <120422854+dacctal@users.noreply.github.com> Date: Wed, 21 Jan 2026 23:56:39 -0500 Subject: initial commit --- src/build_pkg.cc | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/build_pkg.cc (limited to 'src/build_pkg.cc') diff --git a/src/build_pkg.cc b/src/build_pkg.cc new file mode 100644 index 0000000..67c67b8 --- /dev/null +++ b/src/build_pkg.cc @@ -0,0 +1,36 @@ +#include + +#include "build_systems.cc" + +const std::map> builds = { + {"bldit", bldit_build}, + {"compile.sh", compilesh_build}, + {"build.sh", buildsh_build}, + {"autogen.sh", autogen_build}, + {"configure", autotools_build}, + {"configure.ac", autotools_build}, + {"Makefile", make_build}, + {"Makefile.am", make_build}, + {"CMakeLists.txt", cmake_build}, + {"meson.build", meson_build}, + {"build.ninja", ninja_build}, + {"Cargo.toml", cargo_build}, + {"go.mod", go_build}, + {"gradle.build", gradle_build}, + {"pnpm-lock.yaml", pnpm_build}, + {"pyproject.toml", python_build}, + {"build.zig", zig_build} +}; + +void build_pkg(std::filesystem::path build_dir) { + if (build_dir != fs::current_path().string()) { + fs::current_path(build_dir); + } + for (auto const& dir_entry : fs::directory_iterator(fs::current_path().string())) { + for (auto build : builds) { + if (dir_entry.path().filename() == build.first) { + build.second(); + } + } + } +} -- cgit v1.2.3