From 922412f5dc975b423757c1e248eac2813e48acb2 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Sun, 10 Oct 2021 18:57:13 +0200 Subject: Move some common functions to util.cc --- src/task_cc.cc | 108 +-------------------------------------------------------- 1 file changed, 1 insertion(+), 107 deletions(-) (limited to 'src/task_cc.cc') diff --git a/src/task_cc.cc b/src/task_cc.cc index dfda75d..73297f2 100644 --- a/src/task_cc.cc +++ b/src/task_cc.cc @@ -10,113 +10,7 @@ #include "libctor.h" #include "settings.h" #include "execute.h" - -namespace -{ -std::string readFile(const std::string &fileName) -{ - std::ifstream ifs(fileName.c_str(), std::ios::in | std::ios::binary | std::ios::ate); - - std::ifstream::pos_type fileSize = ifs.tellg(); - ifs.seekg(0, std::ios::beg); - - std::vector bytes(fileSize); - ifs.read(bytes.data(), fileSize); - - return std::string(bytes.data(), fileSize); -} - -std::vector readDeps(const std::string& depFile) -{ - if(!std::filesystem::exists(depFile)) - { - return {}; - } - - auto str = readFile(depFile); - - std::vector output; - std::string tmp; - bool start{false}; - bool in_whitespace{false}; - for(const auto& c : str) - { - if(c == '\\' || c == '\n') - { - continue; - } - - if(c == ':') - { - start = true; - continue; - } - - if(!start) - { - continue; - } - - if(c == ' ' || c == '\t') - { - if(in_whitespace) - { - continue; - } - - if(!tmp.empty()) - { - output.push_back(tmp); - } - tmp.clear(); - in_whitespace = true; - } - else - { - in_whitespace = false; - tmp += c; - } - } - - if(!tmp.empty()) - { - output.push_back(tmp); - } - - return output; -} - -Language languageFromExtension(const std::filesystem::path& file) -{ - auto ext = file.extension().string(); - if(ext == ".c") - { - return Language::C; - } - - if(ext == ".C" || - ext == ".cc" || - ext == ".cpp" || - ext == ".CPP" || - ext == ".c++" || - ext == ".cp" || - ext == ".cxx") - { - return Language::Cpp; - } - - if(ext == ".s" || - ext == ".S" || - ext == ".asm") - { - return Language::Asm; - } - - std::cerr << "Could not deduce language from " << file.string() << "\n"; - exit(1); - return {}; -} -} // namespace :: +#include "util.h" TaskCC::TaskCC(const BuildConfiguration& config, const Settings& settings, const std::string& sourceDir, const Source& source) -- cgit v1.2.3