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_TreeView.set_model(m_refTreeModel);
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);
int row_id = 0;
Gtk::TreeModel::Row row;
@ -77,8 +77,9 @@ int Directories::Controller::count(const std::string path) {
if (path[i] == '/') count++;
return count;
}
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_var;
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::string line;
while (std::getline(ifs, line)) {
if (line.find("project(", 0) != std::string::npos
|| line.find("project (", 0) != std::string::npos ) {
if (line.find(command_name+"(", 0) != std::string::npos
|| line.find(command_name+" (", 0) != std::string::npos ) {
size_t variabel_start = line.find("{", 0);
size_t variabel_end = line.find("}", variabel_start);
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 list_dirs(const boost::filesystem::path& dir_path,
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);
// Child widgets:

4
juci/window.cc

@ -50,7 +50,7 @@ Window::Window() :
[this]() {
terminal_.
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);
});
@ -61,7 +61,7 @@ Window::Window() :
[this]() {
terminal_.
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);
});

Loading…
Cancel
Save