]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkConfigurationFile.cxx
#2536 BBTK Feature New Normal wt-version Package
[bbtk.git] / kernel / src / bbtkConfigurationFile.cxx
index 5731b70dcb5bacf40fe84ab85916515284d5f589..770608440abde5f91c223b2e011f26b41724cce0 100644 (file)
@@ -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/11/02 10:15:43 $
-  Version:   $Revision: 1.34 $
+  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
 #include "bbtkXML.h"
 #include "bbtkUtilities.h"
 
+#include "creaSystem.h"
+
 #if defined(WIN32)
 # include <direct.h> // for getcwd
 # include <windows.h>
 #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    : '"<<mBbs_path<<"'"<<std::endl);
     bbtkMessage("config",1," ==> data   : '"<<mData_path<<"'"<<std::endl);
 
-
-
-
     // bbs_paths
     // always add "." (current working directory) at the begining
     mBbs_paths.push_back( "." );
@@ -155,6 +153,12 @@ namespace bbtk
     mPackage_paths.push_back(mBin_path);
     // add system lib path (for install tree)
     //EED    mPackage_paths.push_back(mInstall_path + mFile_separator + "lib");
+    
+    //mPackage_paths.push_back(mInstall_path + "/lib"); // JPR
+    //mPackage_paths.push_back(mInstall_path + "/lib64");// JPR
+    
+    ///\TODO : better use BBTK_PACKAGE_LIB_PATH  // JPR
+    
     mPackage_paths.push_back(mInstall_path + "/lib/creatools");
     mPackage_paths.push_back(mInstall_path + "/lib64/creatools");
 #ifdef WIN32
@@ -170,8 +174,6 @@ namespace bbtk
       Utilities::replace( mPackage_paths[iStrVec] , INVALID_FILE_SEPARATOR , VALID_FILE_SEPARATOR);
     }
 
-
-
     GetHelp(2);
 
     // ==> First we look for bbtk_config.xml in "."
@@ -230,6 +232,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 +251,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 << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD "
@@ -294,6 +296,7 @@ namespace bbtk
     mTemp_path = Utilities::MakeUserSettingsFullFileName("tmp");
     Utilities::CreateDirectoryIfNeeded(mTemp_path);
 
+
   }
   //=========================================================================
 
@@ -343,12 +346,17 @@ namespace bbtk
 
     // ------------------ create some usefull strings ----------------
     // installed bbtk_path
-    char bbtk_path[100];
-    strcpy(bbtk_path, "/usr/local/bin");
+    char bbtk_path[1000];
+    strcpy(bbtk_path, Utilities::GetExecutablePath().c_str());  // JPR
+    //strcpy(bbtk_path, "/usr/local/bin");
+
+
+    std::string str_home=Utilities::GetEnvHome();
+
 
     // rootDirectory
     char rootDirectory[200];
-    sprintf( rootDirectory,  "%s/.bbtk", getenv("HOME"));
+    sprintf( rootDirectory,  "%s/.bbtk", str_home.c_str());
 
     // configPath
     char configPath[200];