Browse Source

generalized get variable from cmake

merge-requests/365/head
tedjk 11 years ago
parent
commit
be40890708
  1. 9
      juci/directories.cc
  2. 2
      juci/directories.h
  3. 4
      juci/window.cc

9
juci/directories.cc

@ -11,7 +11,7 @@ open_folder(const boost::filesystem::path& dir_path) {
m_refTreeModel = Gtk::TreeStore::create(view()); m_refTreeModel = Gtk::TreeStore::create(view());
m_TreeView.set_model(m_refTreeModel); m_TreeView.set_model(m_refTreeModel);
m_TreeView.remove_all_columns(); m_TreeView.remove_all_columns();
std::string project_name = get_project_name(dir_path); std::string project_name = GetCmakeVarValue(dir_path, "project");
m_TreeView.append_column(project_name, view().m_col_name); m_TreeView.append_column(project_name, view().m_col_name);
int row_id = 0; int row_id = 0;
Gtk::TreeModel::Row row; Gtk::TreeModel::Row row;
@ -77,8 +77,9 @@ int Directories::Controller::count(const std::string path) {
if (path[i] == '/') count++; if (path[i] == '/') count++;
return count; return count;
} }
std::string Directories::Controller:: std::string Directories::Controller::
get_project_name(const boost::filesystem::path& dir_path) { GetCmakeVarValue(const boost::filesystem::path& dir_path, std::string command_name) {
std::string project_name; std::string project_name;
std::string project_name_var; std::string project_name_var;
boost::filesystem::directory_iterator end_itr; boost::filesystem::directory_iterator end_itr;
@ -89,8 +90,8 @@ get_project_name(const boost::filesystem::path& dir_path) {
std::ifstream ifs(itr->path().string()); std::ifstream ifs(itr->path().string());
std::string line; std::string line;
while (std::getline(ifs, line)) { while (std::getline(ifs, line)) {
if (line.find("project(", 0) != std::string::npos if (line.find(command_name+"(", 0) != std::string::npos
|| line.find("project (", 0) != std::string::npos ) { || line.find(command_name+" (", 0) != std::string::npos ) {
size_t variabel_start = line.find("{", 0); size_t variabel_start = line.find("{", 0);
size_t variabel_end = line.find("}", variabel_start); size_t variabel_end = line.find("}", variabel_start);
project_name_var = line.substr(variabel_start+1, project_name_var = line.substr(variabel_start+1,

2
juci/directories.h

@ -51,7 +51,7 @@ namespace Directories {
void open_folder(const boost::filesystem::path& dir_path); void open_folder(const boost::filesystem::path& dir_path);
void list_dirs(const boost::filesystem::path& dir_path, void list_dirs(const boost::filesystem::path& dir_path,
Gtk::TreeModel::Row &row, unsigned depth); Gtk::TreeModel::Row &row, unsigned depth);
std::string get_project_name(const boost::filesystem::path& dir_path); std::string GetCmakeVarValue(const boost::filesystem::path& dir_path, std::string command_name);
int count(const std::string path); int count(const std::string path);
// Child widgets: // Child widgets:

4
juci/window.cc

@ -50,7 +50,7 @@ Window::Window() :
[this]() { [this]() {
terminal_. terminal_.
SetFolderCommand("/home/gm/ClionProjects/testi/CM.txt"); SetFolderCommand("/home/gm/ClionProjects/testi/CM.txt");
std::string p = notebook_.directories().get_project_name("/home/gm/ClionProjects/testi"); std::string p = notebook_.directories().GetCmakeVarValue("/home/gm/ClionProjects/testi", "project");
terminal_.CompileAndRun(p); terminal_.CompileAndRun(p);
}); });
@ -61,7 +61,7 @@ Window::Window() :
[this]() { [this]() {
terminal_. terminal_.
SetFolderCommand("/home/gm/ClionProjects/testi/CM.txt"); SetFolderCommand("/home/gm/ClionProjects/testi/CM.txt");
std::string p = notebook_.directories().get_project_name("/home/gm/ClionProjects/testi"); std::string p = notebook_.directories().GetCmakeVarValue("/home/gm/ClionProjects/testi", "project");
terminal_.CompileAndRun(p); terminal_.CompileAndRun(p);
}); });

Loading…
Cancel
Save