| @@ -2,6 +2,6 @@ | |||
| namespace global { | |||
| bool verbose = false; | |||
| int verbose = 0; | |||
| } | |||
| @@ -2,6 +2,6 @@ | |||
| namespace global { | |||
| extern bool verbose; | |||
| extern int verbose; | |||
| } | |||
| @@ -235,7 +235,7 @@ int main(int argc, char **argv) { | |||
| return 0; | |||
| case 'v': | |||
| global::verbose = true; | |||
| global::verbose += 1; | |||
| break; | |||
| case 'o': | |||
| @@ -270,9 +270,7 @@ int main(int argc, char **argv) { | |||
| // Change directory? | |||
| if (workDir.size() > 0) { | |||
| if (global::verbose) { | |||
| fprintf(stderr, "Entering directory '%s'\n", workDir.c_str()); | |||
| } | |||
| fprintf(stderr, "Entering directory '%s'\n", workDir.c_str()); | |||
| if (chdir(workDir.c_str()) < 0) { | |||
| perror(workDir.c_str()); | |||
| @@ -304,7 +302,7 @@ int main(int argc, char **argv) { | |||
| case Action::BUILD: | |||
| // TODO: Support more types than BINARY | |||
| if (!compileAndLink(sources, outDir, jobs, target, toolchain::TargetType::BINARY)) { | |||
| logger::log("Nothing to do.\n"); | |||
| logger::log("Nothing to do."); | |||
| } | |||
| break; | |||
| @@ -9,8 +9,8 @@ | |||
| #include <sys/wait.h> | |||
| #include <stdexcept> | |||
| #include "globals.h" | |||
| #include "logger.h" | |||
| #include "globals.h" | |||
| namespace sys { | |||
| @@ -47,11 +47,11 @@ void mkdirp(const std::string &path) { | |||
| argv.push_back("mkdir"); | |||
| argv.push_back("-p"); | |||
| argv.push_back(path.c_str()); | |||
| execute(argv, nullptr); | |||
| execute(argv, nullptr, global::verbose >= 2); | |||
| } | |||
| void execute(std::vector<const char *> &args, std::string *output) { | |||
| if (global::verbose) { | |||
| void execute(std::vector<const char *> &args, std::string *output, bool print) { | |||
| if (print) { | |||
| std::string str; | |||
| for (size_t i = 0; i < args.size(); ++i) { | |||
| if (i == 0) { | |||
| @@ -14,6 +14,6 @@ struct FileInfo { | |||
| FileInfo fileInfo(const std::string &path); | |||
| bool fileExists(const std::string &path); | |||
| void mkdirp(const std::string &path); | |||
| void execute(std::vector<const char *> &args, std::string *output); | |||
| void execute(std::vector<const char *> &args, std::string *output, bool print); | |||
| } | |||
| @@ -8,6 +8,7 @@ | |||
| #include <errno.h> | |||
| #include "sys.h" | |||
| #include "globals.h" | |||
| namespace toolchain { | |||
| @@ -139,7 +140,7 @@ void getPkgConfigFlags(const std::vector<std::string> &pkgs, std::vector<std::st | |||
| // Execute $(PKG_CONFIG) --cflags $(PKGS) | |||
| std::string output; | |||
| sys::execute(argv, &output); | |||
| sys::execute(argv, &output, global::verbose >= 2); | |||
| parseWhitespaceSeparated(output, flags); | |||
| } | |||
| @@ -153,7 +154,7 @@ void getPkgConfigLDLibs(const std::vector<std::string> &pkgs, std::vector<std::s | |||
| // Execute $(PKG_CONFIG) --libs $(PKGS) | |||
| std::string output; | |||
| sys::execute(argv, &output); | |||
| sys::execute(argv, &output, global::verbose >= 2); | |||
| parseWhitespaceSeparated(output, flags); | |||
| } | |||
| @@ -181,7 +182,7 @@ void getDependencies( | |||
| // Execute $(compiler) $(flags) -MM $< | |||
| std::string output; | |||
| sys::execute(argv, &output); | |||
| sys::execute(argv, &output, global::verbose >= 2); | |||
| size_t idx = output.find(':'); | |||
| if (idx != std::string::npos) { | |||
| @@ -219,7 +220,7 @@ void compile( | |||
| argv.push_back(sourcePath.c_str()); | |||
| // Execute $(compiler) $(flags) -o $@ -c $< | |||
| sys::execute(argv, nullptr); | |||
| sys::execute(argv, nullptr, global::verbose >= 1); | |||
| } | |||
| void link( | |||
| @@ -260,7 +261,7 @@ void link( | |||
| } | |||
| // Execute $(compiler) $(ldflags) -o $@ $(objs) $(ldlibs) | |||
| sys::execute(argv, nullptr); | |||
| sys::execute(argv, nullptr, global::verbose >= 1); | |||
| } | |||
| } | |||