vsgene/vs_json.h
2024-03-08 12:00:42 +08:00

27 lines
800 B
C++

#pragma once
#include <json/json.h>
#include "vs_generate.h"
class JsonCommand {
public:
JsonCommand();
~JsonCommand();
public:
bool generate(const std::vector<ProjectInfo>& projs);
void set_expect(const std::string& exp);
void set_out(const std::string& out);
private:
std::string expect_{"expect"};
std::string out_{"compile_commands.json" };
std::string get_command(const ProjectInfo* proj, const std::vector<ProjectInfo>& projs);
static std::vector<std::string> get_cpp_paths(const std::string& parent_path);
static std::vector<std::string> split(const std::string& source,
const std::string& sep);
static void replaceAll(std::string& str, const std::string& from,
const std::string& to);
};