X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=inline;f=kernel%2Fsrc%2FbbtkConfigurationFile.cxx;h=0b9f54b2bd8f28c6557c1c980a73b8a335017e4a;hb=4234999264604da013c2574feef3816c75b3034e;hp=eb2e31f70b45332621bff1271024d7ca90c8469f;hpb=5e6e754f059d5fb6b25b883f89f76333228ba5c4;p=bbtk.git diff --git a/kernel/src/bbtkConfigurationFile.cxx b/kernel/src/bbtkConfigurationFile.cxx index eb2e31f..0b9f54b 100644 --- a/kernel/src/bbtkConfigurationFile.cxx +++ b/kernel/src/bbtkConfigurationFile.cxx @@ -1,20 +1,33 @@ -/*========================================================================= - +/*========================================================================= Program: bbtk Module: $RCSfile: bbtkConfigurationFile.cxx,v $ Language: C++ - Date: $Date: 2008/03/10 06:24:12 $ - Version: $Revision: 1.13 $ - - Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de - l'Image). All rights reserved. See doc/license.txt or - http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details. - - This software is distributed WITHOUT ANY WARRANTY; without even - the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. See the above copyright notices for more information. - + Date: $Date: 2008/11/03 15:53:31 $ + Version: $Revision: 1.20 $ =========================================================================*/ + +/* --------------------------------------------------------------------- + +* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale) +* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux +* +* 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. +* ------------------------------------------------------------------------ */ + /** *\file *\brief Class bbtk::ConfigurationFile @@ -91,14 +104,18 @@ namespace bbtk std::string toolsappli_rel_path("/"); //EED toolsappli_rel_path += "toolsbbtk" + mFile_separator + "appli"; toolsappli_rel_path += "toolsbbtk/appli"; - mBbs_paths.push_back(mBbs_path + toolsappli_rel_path); - - int iStrVec,sizeStrVec; - - sizeStrVec = mBbs_paths.size(); - for (iStrVec=0;iStrVec Then we look for bbtk_config.xml in ".bbtk" else { -#if defined(__GNUC__) - std::string str_home(getenv("HOME")); -#elif defined(_WIN32) - std::string str_home(getenv("USERPROFILE")); -#endif -//EED configXmlFullPathName = str_home + mFile_separator + ".bbtk/bbtk_config.xml"; - configXmlFullPathName = str_home + "/.bbtk/bbtk_config.xml"; - Utilities::replace( configXmlFullPathName , INVALID_FILE_SEPARATOR , VALID_FILE_SEPARATOR); - + configXmlFullPathName = Utilities::MakeUserSettingsFullFileName("bbtk_config.xml"); if (!Utilities::FileExists( configXmlFullPathName )) { // ==> Nothing found, we create bbtk_config.xml in ".bbtk" @@ -190,24 +199,15 @@ namespace bbtk FILE *fp; char configXml[250]; sprintf (configXml , "%s/bbtk_config.xml", rootDirectory); - bbtkMessage("Config",1, "in CreateConfigXML[" << configXml << "]" << std::endl); + bbtkDebugMessage("Config",1, "in CreateConfigXML[" << configXml << "]" << std::endl); fp = fopen (configXml, "w"); fprintf(fp, "\n"); - // fprintf(fp, "\n"); fprintf(fp, "\n"); - fprintf(fp, " \n"); - // fprintf(fp, " http://www.creatis.insa-lyon.fr/software/bbtk \n"); - // fprintf(fp, " \n"); fprintf(fp, " \n"); - // fprintf(fp, " \n"); fprintf(fp, " \n"); - fprintf(fp, " \n");//, BBTK_DATA_PATH); - /// \todo find a decent default value ! - ///fprintf(fp, " %s \n", " "); - // when $ will be found, default_temp_dir value will be replaced - fprintf(fp, " $\n"); - fprintf(fp, "\n"); - fclose(fp); + fprintf(fp, " $ \n"); + fprintf(fp, "\n"); + fclose(fp); } //========================================================================= @@ -473,6 +473,72 @@ namespace bbtk } //========================================================================= + //========================================================================= + bool ConfigurationFile::AddPackagePathsAndWrite( const std::string& path ) + { + bbtkDebugMessageInc("Config",9, + "ConfigurationFile::AddPackagePathsAndWrite(" + <error != eXMLErrorNone ) + { + std::string mess = GetErrorMessage(res,Get_config_xml_full_path()); + delete res; + bbtkDebugMessage("Config",1,mess<< std::endl); + bbtkError(mess); + } + delete res; + +#ifdef _WIN32 + std::string bbs_path = path + "/bbs"; +#else + std::string bbs_path = path + "/share/bbtk/bbs" ; +#endif + XMLNode BBSPATH = BB.addChild((XMLCSTR)"bbs_path"); + BBSPATH.addText((XMLCSTR)bbs_path.c_str()); + Utilities::replace(bbs_path, INVALID_FILE_SEPARATOR, VALID_FILE_SEPARATOR); + mBbs_paths.push_back(bbs_path); + +#ifdef _WIN32 + std::string pack_path = path + "/bin"; +#else + std::string pack_path = path ; +#endif + XMLNode PACKPATH = BB.addChild((XMLCSTR)"package_path"); + PACKPATH.addText((XMLCSTR)pack_path.c_str()); + Utilities::replace(pack_path,INVALID_FILE_SEPARATOR,VALID_FILE_SEPARATOR); + mPackage_paths.push_back(pack_path); + +#ifdef _WIN32 + pack_path = path + "/Debug"; + PACKPATH = BB.addChild((XMLCSTR)"package_path"); + PACKPATH.addText((XMLCSTR)pack_path.c_str()); + Utilities::replace(pack_path,INVALID_FILE_SEPARATOR,VALID_FILE_SEPARATOR); + mPackage_paths.push_back(pack_path); + pack_path = path + "/Release"; + PACKPATH = BB.addChild((XMLCSTR)"package_path"); + PACKPATH.addText((XMLCSTR)pack_path.c_str()); + Utilities::replace(pack_path,INVALID_FILE_SEPARATOR,VALID_FILE_SEPARATOR); + mPackage_paths.push_back(pack_path); +#endif + + + XMLError err = BB.writeToFile((XMLCSTR)Get_config_xml_full_path().c_str()); + if ( err != eXMLErrorNone ) + { + std::string mess = GetErrorMessage(res,Get_config_xml_full_path()); + bbtkDebugMessage("Config",1,mess<< std::endl); + bbtkError(mess); + } + + return true; + } + //========================================================================= //========================================================================= void ConfigurationFile::GetHelp(int level) const