| 293 | } |
| 294 | |
| 295 | static std::vector<std::string> prioritizelib(const std::vector<std::string>& libfiles) |
| 296 | { |
| 297 | std::map<std::string, std::size_t> priorities; |
| 298 | std::size_t prio = libfiles.size(); |
| 299 | for (const auto &l : libfiles) { |
| 300 | priorities.emplace(l, prio--); |
| 301 | } |
| 302 | priorities["lib/valueflow.cpp"] = 1000; |
| 303 | priorities["lib/tokenize.cpp"] = 900; |
| 304 | priorities["lib/symboldatabase.cpp"] = 800; |
| 305 | std::vector<std::string> libfiles_prio = libfiles; |
| 306 | std::sort(libfiles_prio.begin(), libfiles_prio.end(), [&](const std::string &l1, const std::string &l2) { |
| 307 | const auto p1 = priorities.find(l1); |
| 308 | const auto p2 = priorities.find(l2); |
| 309 | return (p1 != priorities.end() ? p1->second : 0) > (p2 != priorities.end() ? p2->second : 0); |
| 310 | }); |
| 311 | return libfiles_prio; |
| 312 | } |
| 313 | |
| 314 | static void makeMatchcompiler(std::ostream& fout, const std::string& toolsPrefix, std::string args) |
| 315 | { |