X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkConfigurationFile.cxx;h=e5b852945184c23a50ca9cd2aaa0b1e76b6af827;hb=ca5b2e240aa347fd3eac9a9ffa7fd743886b308a;hp=770608440abde5f91c223b2e011f26b41724cce0;hpb=87efce51877a540d943b1aa26307994b38bba55b;p=bbtk.git diff --git a/kernel/src/bbtkConfigurationFile.cxx b/kernel/src/bbtkConfigurationFile.cxx index 7706084..e5b8529 100644 --- a/kernel/src/bbtkConfigurationFile.cxx +++ b/kernel/src/bbtkConfigurationFile.cxx @@ -146,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) @@ -214,6 +213,7 @@ namespace bbtk // In any case, deal with bbtk_config.xml! Read(configXmlFullPathName.c_str()); + } //========================================================================= @@ -342,105 +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"); - - - std::string str_home=Utilities::GetEnvHome(); - + 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", str_home.c_str()); + 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__