diff options
| author | dacctal <120422854+dacctal@users.noreply.github.com> | 2026-01-21 23:56:39 -0500 |
|---|---|---|
| committer | dacctal <120422854+dacctal@users.noreply.github.com> | 2026-01-21 23:56:39 -0500 |
| commit | 8926f839720471cc86fd4f7c6371d63b8f71b91d (patch) | |
| tree | c14523954085f7b6c428a488f81bfb645dcd2c83 /src/build_pkg.cc | |
| parent | 8fc3b1f6cd1062e15c0aed60a110fb91143cd801 (diff) | |
initial commit
Diffstat (limited to 'src/build_pkg.cc')
| -rw-r--r-- | src/build_pkg.cc | 36 |
1 files changed, 36 insertions, 0 deletions
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 <functional> + +#include "build_systems.cc" + +const std::map<std::string, std::function<void()>> 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(); + } + } + } +} |
