]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkConfigurationFile.cxx
#3392 BBTK Bug New Normal - Initial widget size box LayoutLine
[bbtk.git] / kernel / src / bbtkConfigurationFile.cxx
index c79747c0378f512cd63f36182cab6a074831618e..e5b852945184c23a50ca9cd2aaa0b1e76b6af827 100644 (file)
@@ -64,6 +64,7 @@ namespace bbtk
     // ==> Set system paths
     mBin_path = Utilities::GetExecutablePath();
 
+
 /*     EED 23 Mars 2009
 #ifdef MACOSX
     mInstall_path = mBin_path + "/../../../..";
@@ -81,6 +82,7 @@ namespace bbtk
          }
 #endif
 
+
 ///\TODO : better use ??
          mInstall_path = mBin_path + "/..";
 
@@ -144,7 +146,6 @@ namespace bbtk
       Utilities::replace( mBbs_paths[iStrVec] , INVALID_FILE_SEPARATOR , VALID_FILE_SEPARATOR);
     }
 
-
     // always add "." (current working directory) at the begining
     mPackage_paths.push_back(".");
     // add system bin path (for build tree / standalone folder install)
@@ -212,6 +213,7 @@ namespace bbtk
 
     // In any case, deal with bbtk_config.xml!
     Read(configXmlFullPathName.c_str());
+       
   }
   //=========================================================================
 
@@ -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);
 
@@ -293,6 +296,7 @@ namespace bbtk
     mTemp_path = Utilities::MakeUserSettingsFullFileName("tmp");
     Utilities::CreateDirectoryIfNeeded(mTemp_path);
 
+
   }
   //=========================================================================
 
@@ -338,101 +342,114 @@ namespace bbtk
 
 
     // -----------------------------------------------------------------
-#if defined(__GNUC__)
+#if defined(WIN32)
 
-    // ------------------ create some usefull strings ----------------
     // installed bbtk_path
-    char bbtk_path[1000];
-    strcpy(bbtk_path, Utilities::GetExecutablePath().c_str());  // JPR
-    //strcpy(bbtk_path, "/usr/local/bin");
+    char bbtk_path[100];
+    strcpy(bbtk_path, "\"c:\\Program Files\\BBTK\\bin\"");
+    char bbtk_path2[100];
+    strcpy(bbtk_path2, "c:\\Program Files\\BBTK\\bin");
 
     // rootDirectory
     char rootDirectory[200];
-    sprintf( rootDirectory,  "%s/.bbtk", getenv("HOME"));
+    sprintf(rootDirectory, "%s\\.bbtk",getenv("USERPROFILE"));
+    //  std::cout << "[" << rootDirectory << "]" << std::endl;
 
     // configPath
     char configPath[200];
-    sprintf(configPath, "%s/bbtk_config.xml",rootDirectory);
+    sprintf(configPath, "%s\\bbtk_config.xml",rootDirectory);
+
+    // makeDir
+    char makeDir[250];
+    sprintf( makeDir, "mkdir \"%s\" ", rootDirectory);
 
     // configXmlTmp
     char configXmlTmp[250];
-    sprintf(configXmlTmp, "%s/bbtk_config.xml.tmp", bbtk_path);
+    sprintf(configXmlTmp, "%s\\bbtk_config.xml.tmp", bbtk_path2);
 
     // copyFile
     char copyFile[250];
 
-    if (!Utilities::FileExists(configXmlTmp)) // bbtk_config.xml.tmp not found (not installed)
+    if (!Utilities::FileExists(configXmlTmp)) // bbtk_config.xml.tmp not found
       {
        // if "bbtk_path/bbtk_config.xml.tmp" doesn't exist, hard-create a minimum version in .bbtk
        CreateConfigXML( rootDirectory );// create .bbtk
+       return;
       }
-    else
-      {
-       sprintf(copyFile,"cp %s  %s/bbtk_config.xml ",configXmlTmp,rootDirectory );
-       if (!Utilities::FileExists(configPath))
-         {
-           system(copyFile);
-         }
-      }
-    return;
 
+    sprintf(copyFile,"copy %s\\bbtk_config.xml.tmp \"%s\"\\bbtk_config.xml ",bbtk_path,rootDirectory );
+
+       WCHAR    rootDirectory2[200];
+       MultiByteToWideChar( 0,0, rootDirectory, 200, rootDirectory2, 6);
+       LPCWSTR rootDirectory3 = rootDirectory2;
+       int attribs = GetFileAttributes (rootDirectory3);
+//    int attribs = GetFileAttributes (rootDirectory3);
+       
+       
+    bbtkMessage("config",1,std::hex << attribs << " " << FILE_ATTRIBUTE_DIRECTORY << std::endl);
+    if ( attribs != 0xFFFFFFFF)
+    {
+               if ((attribs & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY ) /// \TODO : check !
+               {       
+                       WCHAR    configPath2[200];
+                       MultiByteToWideChar( 0,0, configPath, 200, configPath2, 6);
+                       LPCWSTR configPath3 = configPath2;
+                       if ( GetFileAttributes( configPath3 ) == 0xFFFFFFFF)
+                       //if ( GetFileAttributes( configPath ) == 0xFFFFFFFF)
+                       {
+                               system(copyFile);
+                       }
+               }
+    } else {
+               system(makeDir);
+               system(copyFile);
+       }
+  return;
     // ------------------------------------------------------------------
-#elif defined(WIN32)
+#elif defined(__GNUC__)
+    // ------------------ create some usefull strings ----------------
+    // installed bbtk_path
+    char bbtk_path[1000];
+    strcpy(bbtk_path, Utilities::GetExecutablePath().c_str());  // JPR
+    //strcpy(bbtk_path, "/usr/local/bin");
 
 
-    // installed bbtk_path
-    char bbtk_path[100];
-    strcpy(bbtk_path, "\"c:\\Program Files\\BBTK\\bin\"");
-    char bbtk_path2[100];
-    strcpy(bbtk_path2, "c:\\Program Files\\BBTK\\bin");
+    std::string str_home=Utilities::GetEnvHome();
+
+       #if defined(WIN32)      
+               str_home="C:"+str_home;
+       #endif
 
     // rootDirectory
     char rootDirectory[200];
-    sprintf(rootDirectory, "%s\\.bbtk",getenv("USERPROFILE"));
-    //  std::cout << "[" << rootDirectory << "]" << std::endl;
+    sprintf( rootDirectory,  "%s/.bbtk", str_home.c_str());
 
     // configPath
     char configPath[200];
-    sprintf(configPath, "%s\\bbtk_config.xml",rootDirectory);
-
-    // makeDir
-    char makeDir[250];
-    sprintf( makeDir, "mkdir \"%s\" ", rootDirectory);
+    sprintf(configPath, "%s/bbtk_config.xml",rootDirectory);
 
     // configXmlTmp
     char configXmlTmp[250];
-    sprintf(configXmlTmp, "%s\\bbtk_config.xml.tmp", bbtk_path2);
+    sprintf(configXmlTmp, "%s/bbtk_config.xml.tmp", bbtk_path);
 
     // copyFile
     char copyFile[250];
 
-    if (!Utilities::FileExists(configXmlTmp)) // bbtk_config.xml.tmp not found
+    if (!Utilities::FileExists(configXmlTmp)) // bbtk_config.xml.tmp not found (not installed)
       {
        // if "bbtk_path/bbtk_config.xml.tmp" doesn't exist, hard-create a minimum version in .bbtk
        CreateConfigXML( rootDirectory );// create .bbtk
-       return;
       }
-
-    sprintf(copyFile,"copy %s\\bbtk_config.xml.tmp \"%s\"\\bbtk_config.xml ",bbtk_path,rootDirectory );
-
-    int attribs = GetFileAttributes (rootDirectory);
-    bbtkMessage("config",1,std::hex << attribs << " " << FILE_ATTRIBUTE_DIRECTORY << std::endl);
-    if ( attribs != 0xFFFFFFFF)
+    else
       {
-       if ((attribs & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY ) /// \TODO : check !
+       sprintf(copyFile,"cp %s  %s/bbtk_config.xml ",configXmlTmp,rootDirectory );
+       if (!Utilities::FileExists(configPath))
          {
-           if ( GetFileAttributes( configPath ) == 0xFFFFFFFF)
-             {
-               system(copyFile);
-             }
+           system(copyFile);
          }
       }
-    else
-      {
-       system(makeDir);
-       system(copyFile);
-      }
     return;
+
     // ------------------------------------------------------------------
 #else
 /// \todo  ConfigurationFile::InstallPath() : exit when for not WIN32 and not__GNUC__