X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkConfigurationFile.cxx;h=c8d66306891ec1f210ff704e67a2c51c2581d884;hb=8ba18df584ba0a409fb042663be9fa76ccb0e0b0;hp=0fe498342befac96364994ca44483a2216efb39e;hpb=71a82f376d593f291d2d0ac6d9514b5367f2c845;p=bbtk.git diff --git a/kernel/src/bbtkConfigurationFile.cxx b/kernel/src/bbtkConfigurationFile.cxx index 0fe4983..c8d6630 100644 --- a/kernel/src/bbtkConfigurationFile.cxx +++ b/kernel/src/bbtkConfigurationFile.cxx @@ -1,32 +1,39 @@ +/* + # --------------------------------------------------------------------- + # + # 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. + # ------------------------------------------------------------------------ */ + + /*========================================================================= Program: bbtk Module: $RCSfile: bbtkConfigurationFile.cxx,v $ Language: C++ - Date: $Date: 2010/10/18 08:33:57 $ - Version: $Revision: 1.33 $ + Date: $Date: 2012/11/16 08:49:01 $ + Version: $Revision: 1.38 $ =========================================================================*/ -/* --------------------------------------------------------------------- - -* 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 @@ -38,30 +45,26 @@ #include "bbtkXML.h" #include "bbtkUtilities.h" +#include "creaSystem.h" + #if defined(WIN32) # include // for getcwd # include #endif - - namespace bbtk { - //==================================================================== /// Constructor ConfigurationFile::ConfigurationFile() { - - mFile_separator = VALID_FILE_SEPARATOR; + mFile_separator = VALID_FILE_SEPARATOR; // ==> Set system paths mBin_path = Utilities::GetExecutablePath(); - - /* EED 23 Mars 2009 #ifdef MACOSX mInstall_path = mBin_path + "/../../../.."; @@ -70,7 +73,6 @@ namespace bbtk #endif */ #ifdef MACOSX - std::string macPath("Contents/MacOS"); int sbp = mBin_path.length(); int smp = macPath.length(); @@ -78,12 +80,11 @@ namespace bbtk { mBin_path = mBin_path + "/../../.."; } - - #endif - mInstall_path = mBin_path + "/.."; +///\TODO : better use ?? + mInstall_path = mBin_path + "/.."; // The relative path to the doc folder (=BBTK_DOC_REL_PATH) // mDoc_rel_path = BBTK_STRINGIFY_SYMBOL(BBTK_DOC_REL_PATH); @@ -122,9 +123,6 @@ namespace bbtk bbtkMessage("config",1," ==> bbs : '"< data : '"< Then we look for bbtk_config.xml in ".bbtk" - else - { - configXmlFullPathName = Utilities::MakeUserSettingsFullFileName("bbtk_config.xml"); - if (!Utilities::FileExists( configXmlFullPathName )) - { - // ==> Nothing found, we create bbtk_config.xml in ".bbtk" - InstallPath (); - } - } + { + bbtkMessage("config",1, "ConfigurationFile : [" << configXmlFullPathName << + "] found in current directory" << std::endl); + //Read(configXmlFullPathName.c_str()); + // traiter le fichier local + } else { // ==> Then we look for bbtk_config.xml in ".bbtk" + configXmlFullPathName = Utilities::MakeUserSettingsFullFileName("bbtk_config.xml"); + if (!Utilities::FileExists( configXmlFullPathName )) + { + // ==> Nothing found, we create bbtk_config.xml in ".bbtk" + InstallPath (); + } + } // In any case, deal with bbtk_config.xml! Read(configXmlFullPathName.c_str()); + } //========================================================================= @@ -230,6 +229,7 @@ namespace bbtk if (!Utilities::FileExists(mDot_bbtk_path)) mDot_bbtk_is_new = true; Utilities::CreateDirectoryIfNeeded(mDot_bbtk_path); + mDoc_path = Utilities::MakeUserSettingsFullFileName("doc"); Utilities::CreateDirectoryIfNeeded(mDoc_path); @@ -248,7 +248,6 @@ namespace bbtk + BBTK_STRINGIFY_SYMBOL(BBTK_DOC_REL_PATH) + "/"; Utilities::MakeValidFileName(doc_path); - std::ofstream f; f.open(filename.c_str(), std::ios::out ); f << "error != eXMLErrorNone ) + if ( res->error != eXMLErrorNone ) { std::string mess = GetErrorMessage(res,Get_config_xml_full_path()); delete res; @@ -546,53 +560,89 @@ namespace bbtk } delete res; + std::string bbs_path; #ifdef _WIN32 - std::string bbs_path = path + "/bbs"; + bbs_path = path + "/bbs"; + 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); #else - std::string bbs_path = path + "/share/bbtk/bbs" ; -#endif + bbs_path = path + "/share/bbtk/bbs" ; 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 ; + bbs_path = path + "/../../share/bbtk/bbs" ; + 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); + #endif + + std::string pack_path; +#ifdef _WIN32 + pack_path = path; 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 + "/RelWithDebInfo"; + pack_path = path + "/bin"; 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 + "/Debug"; - PACKPATH = BB.addChild((XMLCSTR)"package_path"); + +// pack_path = path + "/RelWithDebInfo"; +// 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 + "/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); +#else + pack_path = path ; + 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); - pack_path = path + "/Release"; + + #ifdef MACOSX + pack_path = path+"/../../lib/creatools" ; + #else + pack_path = path+"/../../lib64/creatools" ; + #endif 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 +#ifdef _WIN32 +#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); - } - + { + std::string mess = GetErrorMessage(res,Get_config_xml_full_path()); + bbtkDebugMessage("config",1,mess<< std::endl); + bbtkError(mess); + } // if err return true; } //=========================================================================