/* # --------------------------------------------------------------------- # # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image # pour la Sant�) # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton # Previous Authors : Laurent Guigues, Jean-Pierre Roux # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil # # This software is governed by the CeCILL-B license under French law and # abiding by the rules of distribution of free software. You can use, # modify and/ or redistribute the software under the terms of the CeCILL-B # license as circulated by CEA, CNRS and INRIA at the following URL # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html # or in the file LICENSE.txt. # # As a counterpart to the access to the source code and rights to copy, # modify and redistribute granted by the license, users are provided only # with a limited warranty and the software's author, the holder of the # economic rights, and the successive licensors have only limited # liability. # # The fact that you are presently reading this means that you have had # knowledge of the CeCILL-B license and that you accept its terms. # ------------------------------------------------------------------------ */ /* * modelCDMMain.cpp * * Created on: 13/11/2012 * Author: Daniel Felipe Gonzalez Obando */ #include "modelCDMMain.h" #include #include #include #include #include "CDMUtilities.h" modelCDMMain::modelCDMMain() { //TODO: implement method } modelCDMMain::~modelCDMMain() { //TODO: implement method } const modelCDMProject* modelCDMMain::GetProject() const { //TODO: implement method return this->project; } bool modelCDMMain::CreateProject( const std::string& name, const std::string& location, std::string*& result, const std::string& author, const std::string& description) { //TODO: implement method return true; } bool modelCDMMain::OpenProject( const std::string& path, std::string*& result ) { std::cout << "Selection path: "<< path << std::endl; //get fixed path std::string pathFixed = CDMUtilities::fixPath(path); std::cout << "Fixed selection path: "<< pathFixed << std::endl; //check if its binaries' folder bool isBinary = false; std::string pathBuild = ""; //check if Makefile file exists std::string pathMakefile = pathFixed + "/Makefile"; FILE* pFile = fopen(pathMakefile.c_str(), "r"); //is the binary folder if (pFile != NULL) { fclose(pFile); std::ifstream readFile; readFile.open(pathMakefile.c_str()); std::string word; while(!isBinary && readFile >> word) { //cout << word << endl; if(word == "CMAKE_SOURCE_DIR") { readFile >> word; readFile.ignore(); getline(readFile, word, '\n'); pathBuild = pathFixed; pathFixed = word; isBinary = true; } } readFile.close(); } //check if its source's folder bool isSource = false; std::string pathSource = ""; //check if CMakeLists file exists std::string pathCMakeLists = pathFixed + "/CMakeLists.txt"; pFile = fopen(pathCMakeLists.c_str(), "r"); //is the source folder if (pFile != NULL) { fclose(pFile); std::ifstream readFile; readFile.open(pathCMakeLists.c_str()); std::string word; while(!isSource && !readFile.eof()) { std::getline(readFile,word,'\n'); int pos = word.find("PROJECT"); if(pos != std::string::npos) { pathSource = pathFixed; isSource = true; } } readFile.close(); } //if is source folder if(isSource) { std::cout << "Project sources at: " << pathSource; if(isBinary) { std::cout << ", and built in: " << pathBuild; } std::cout << std::endl; } else { result = new std::string("No source folder found. Please make sure to select either the project's build or source folder."); return false; } //TODO: create Project given the source folder return true; } bool modelCDMMain::RefreshProject( std::string*& result ) { //TODO: recreate the project using the project's path return true; } bool modelCDMMain::CloseProject( std::string*& result ) { //TODO: delete the project tree and leave it as NULL return true; }