diff options
| author | Amlal EL Mahrouss <amlalelmahrouss@icloud.com> | 2024-10-08 19:07:32 +0200 |
|---|---|---|
| committer | Amlal EL Mahrouss <amlalelmahrouss@icloud.com> | 2024-10-08 19:07:32 +0200 |
| commit | 518a6da50bfb86e938b2bbf850e3740fa824e832 (patch) | |
| tree | 98612164a291377083e59c14c5d4e60776e484f7 /cli/AppMain.cxx | |
| parent | c48b12c8c5513e8ec808a40da8f79bb1f1368531 (diff) | |
IMP: Working on TOML support for the build system.
Signed-off-by: Amlal EL Mahrouss <amlalelmahrouss@icloud.com>
Diffstat (limited to 'cli/AppMain.cxx')
| -rw-r--r-- | cli/AppMain.cxx | 34 |
1 files changed, 13 insertions, 21 deletions
diff --git a/cli/AppMain.cxx b/cli/AppMain.cxx index 975ada5..0546aab 100644 --- a/cli/AppMain.cxx +++ b/cli/AppMain.cxx @@ -7,10 +7,8 @@ #include <iostream> #include <thread> -int cJobIndex = 0; -bool cFailed = false; - -static IManifestBuilder* cBuilder = nullptr; +static int cJobIndex = 0; +static bool cFailed = false; int main(int argc, char** argv) { @@ -40,22 +38,16 @@ int main(int argc, char** argv) return 0; } - std::thread job([](std::string index_path) -> void { + std::thread job_build_thread([](std::string index_path) -> void { + IManifestBuilder* builder = nullptr; + if (index_path.ends_with(".json")) { - delete cBuilder; - cBuilder = nullptr; - - if (!cBuilder) - cBuilder = new JSONManifestBuilder(); + builder = new JSONManifestBuilder(); } else if (index_path.ends_with(".toml")) { - delete cBuilder; - cBuilder = nullptr; - - if (!cBuilder) - cBuilder = new TOMLManifestBuilder(); + builder = new TOMLManifestBuilder(); } else { @@ -65,16 +57,18 @@ int main(int argc, char** argv) std::cout << "btb: Building: " << index_path << std::endl; - if (!cBuilder->Build(index_path.size(), index_path.c_str())) + if (builder && !builder->Build(index_path.size(), index_path.c_str())) { cFailed = true; } + delete builder; + --cJobIndex; }, - index_path); + index_path); - job.detach(); + job_build_thread.detach(); } // wait for completion of all jobs. @@ -82,12 +76,10 @@ int main(int argc, char** argv) { if (cFailed) { - std::cout << "btb: Build failed." << std::endl; + std::cout << "btb: build failed: " << errno << "." << std::endl; return EXIT_FAILURE; } } - delete cBuilder; - return cFailed ? EXIT_FAILURE : EXIT_SUCCESS; } |
