"Build the bbtk package ${BBTK_PACKAGE_NAME} ?" OFF)
SWITCH_ON_IF_BUILD_ALL(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
#-----------------------------------------------------------------------------
+
+#-----------------------------------------------------------------------------
+# Package dependencies
+#IF(UNIX)
+SET(${BBTK_PACKAGE_NAME}_DEPS bb${BBTK_PACKAGE_NAME})
+#${EXECUTABLE_OUTPUT_PATH}/libbb${BBTK_PACKAGE_NAME}.so)
+#ELSE(UNIX)
+#SET(${BBTK_PACKAGE_NAME}_DEPS ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}.bbs)
+#ENDIF(UNIX)
+STRING(REGEX MATCH "${${BBTK_PACKAGE_NAME}_DEPS}"
+ ${BBTK_PACKAGE_NAME}_IN_DEPS
+ "${BBTK_PACKAGES_DEPS}")
+ENDIF(UNIX)
+#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# IF THE USER HAS CHOSEN TO BUILD THE PACKAGE
IF(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
#---------------------------------------------------------------------------
+ #---------------------------------------------------------------------------
+ # If package deps not in global deps : add them
+ IF(NOT ${BBTK_PACKAGE_NAME}_IN_DEPS)
+ SET(BBTK_PACKAGES_DEPS "${${BBTK_PACKAGE_NAME}_DEPS};${BBTK_PACKAGES_DEPS}"
+ CACHE INTERNAL "bbtk packages dependencies" FORCE)
+ ENDIF(NOT ${BBTK_PACKAGE_NAME}_IN_DEPS)
+ #---------------------------------------------------------------------------
+
#---------------------------------------------------------------------------
# Package dependencies
IF(${BBTK_PACKAGE_NAME}_USE_VTK)
SUBDIRS(bbs)
#---------------------------------------------------------------------------
-
+#---------------------------------------------------------------------------
+ELSE(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
+ #-------------------------------------------------------------------------
+
+ #-----------------------------------------------------------------------
+ # If package deps in global deps : remove them
+ IF(${BBTK_PACKAGE_NAME}_IN_DEPS)
+ STRING(REPLACE "${${BBTK_PACKAGE_NAME}_DEPS};"
+ "" TEMP
+ ${BBTK_PACKAGES_DEPS})
+
+ SET(BBTK_PACKAGES_DEPS ${TEMP}
+ CACHE INTERNAL "bbtk packages dependencies" FORCE)
+ ENDIF(${BBTK_PACKAGE_NAME}_IN_DEPS)
+ #-----------------------------------------------------------------------
+
#---------------------------------------------------------------------------
ENDIF(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME})
Program: bbtk
Module: $RCSfile: bbtkInterpreter.cxx,v $ $
Language: C++
- Date: $Date: 2008/02/04 13:51:30 $
- Version: $Revision: 1.19 $
+ Date: $Date: 2008/02/05 08:25:22 $
+ Version: $Revision: 1.20 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
*/
Interpreter::Interpreter()
:
- mCommandLine(false), verbose(false)
+ mCommandLine(false)
{
bbtk::MessageManager::RegisterMessageType("Echo","Level>0 : Prints the 'echo' commands of the user.\n\tLevel>1 : Prints the command being interpreted",1);
bbtk::MessageManager::RegisterMessageType("Interpreter","Messages of the interpreter",0);
info.keyword = "config"; // JPR
info.argmin = 0;
- info.argmax = 1;
+ info.argmax = 0;
info.code = cConfig;
- info.syntax = "config [<verbose>|<v>]";
+ info.syntax = "config";
info.help = "Prints the value of all configuration parameters";
mCommandDict[info.keyword] = info;
delete mExecuter;
//delete mFactory;
- // std::cout <<"EO Interpreter::~Interpreter()"<<std::endl;
bbtkDebugDecTab("Interpreter",9);
}
//=======================================================================
/**
*
*/
- void Interpreter::InterpretFile( const std::string& filename, bool use_configuration_file, bool verbose)
+ void Interpreter::InterpretFile( const std::string& filename,
+ bool use_configuration_file)
{
bbtkDebugMessageInc("Interpreter",9,"Interpreter::InterpretFile(\""<<filename<<"\")"<<std::endl);
try
{
- SwitchToFile(filename, use_configuration_file, verbose);
+ SwitchToFile(filename, use_configuration_file);
bool insideComment = false; // for multiline comment
while (mFile.size()>0)
{
break;
case cConfig :
- if (words.size()>1) // any param for config means verbose = true
- verbose = true;
- else
- verbose = false;
- Config(verbose);
+ Config();
break;
case cReset : // EED
case cInclude :
if (mCommandLine)
{
- InterpretFile(words[1], true, verbose); // true : better pass use_config_file
+ InterpretFile(words[1], true ); // true : better pass use_config_file
}
else
{
- SwitchToFile(words[1], true, verbose); // true : better pass use_config_file
+ SwitchToFile(words[1], true ); // true : better pass use_config_file
}
break;
case cLoad:
- LoadPackage(words[1], true, verbose); // true : better pass use_config_file
+ LoadPackage(words[1], true ); // true : better pass use_config_file
break;
case cUnload:
// Replaces substrings "\\n" by a real carriage return "\n"
void SubsBackslashN ( std::string& s )
{
- // std::cout << "BEFORE=["<<s<<"]"<<std::endl;
std::string ss("\\n");
std::string::size_type pos = 0;
pos = s.find(ss,0);
char* cr = "\n";
while ( pos != std::string::npos )
{
- // std::cout << "*** find one "<<std::endl;
s.replace(pos,2,cr,1);
pos = s.find(ss, pos-1);
}
- // std::cout << "AFTER=["<<s<<"]"<<std::endl;
}
//=======================================================================
{
// Found a text token, add it to the vector.
chains.push_back(str.substr(lastPos, pos - lastPos));
- // std::cout << "text='"<<chains.back()<<"'"<<std::endl;
}
else
{
tok = str.substr(lastPos, pos - lastPos);
Utilities::SplitAroundFirstDot(tok,box,output);
chains.push_back( mExecuter->Get(box,output) );
- // std::cout << "outp='"<<chains.back()<<"'"<<std::endl;
}
// Skip delimiters. Note the "not_of"
lastPos = str.find_first_not_of(delimiters, pos);
//
is_text = !is_text;
}
- // std::cout << "nb="<<chains.size()<<std::endl;
std::vector<std::string>::iterator i;
for (i= chains.begin(); i!=chains.end(); ++i)
{
// ===================================================================================
void Interpreter::SwitchToFile( const std::string& name,
- bool use_configuration_file, bool verbose)
+ bool use_configuration_file )
{
// Note : in the following :
// name : the user supplied name
bbtkDebugMessageInc("Interpreter",9,"Interpreter::SwitchToFile( \""
<<name<<"\")"<<std::endl);
-// to be removed in final version
-// use : Config v
-//verbose = true;
std::vector<std::string> script_paths;
std::string fullPathScriptName; // full path script name
std::string pkgname; // e.g. <scriptname>.bbs
// The following is *NOT* a debug time message :
// It's a user intended message.
// Please don't remove it.
- if (verbose)
- std::cout << "look for : [" << name << "] (use_configuration_file == TRUE)" << std::endl;
+ bbtkMessage("Interpreter",1,
+ "look for : [" << name
+ << "] (use_configuration_file == TRUE)" << std::endl);
script_paths = ConfigurationFile::GetInstance().Get_bbs_paths();
}
std::string upath;
pkgname = Utilities::ExtractScriptName(name,upath);
-//std::cout <<"name [" << name << "] pkgname [" << pkgname << "] upath [" << upath << "]" << std::endl;
+
bool fullnameGiven = false;
bool foundFile = false;
nbBssFiles++;
}
if (nbBssFiles==0)
- if (verbose)
- std::cout << "WARNING : No '.bbs' file found in [" << upath << "]" << std::endl;
+ bbtkMessage("Interpreter",2,
+ "WARNING : No '.bbs' file found in ["
+ << upath << "]" << std::endl);
return;
}
}
fullDirectoryName = Utilities::MakePkgnameFromPath(path, upath, false);
-//std::cout <<"fullpath [" << fullDirectoryName << "]" <<std::endl;
-// std::cout << "== "<<fullDirectoryName<<" =="<<std::endl;
-
// Check if library exists
if ( ! Utilities::IsDirectory(fullDirectoryName) )
// The following is *NOT* a debug time message :
// It's a user intended message.
// Please don't remove it.
- if (verbose)
- std::cout <<" [" <<fullDirectoryName <<"] : doesn't exist" <<std::endl;
+ bbtkMessage("Interpreter",1," [" <<fullDirectoryName
+ <<"] : doesn't exist" <<std::endl);
continue; // try next path
}
foundFile = true;
int nbFiles = Utilities::Explore(fullDirectoryName, false, Filenames);
-// std::cout << "=================nbFiles " << nbFiles << std::endl;
+
nbBssFiles = 0;
for (std::vector<std::string>::iterator i = Filenames.begin(); i!= Filenames.end(); ++i)
{
- // std::cout << "=== "<<*i<<" =="<<std::endl;
+
if ((*i).substr((*i).size()-4, 4) != ".bbs")
continue; // ignore non .bbs files
LoadScript(*i);
nbBssFiles++;
}
if (nbBssFiles==0)
- if (verbose)
- std::cout << "WARNING : No '.bbs' file found in [" << fullDirectoryName << "]" << std::endl;
+ bbtkMessage("Interpreter",1,
+ "WARNING : No '.bbs' file found in ["
+ << fullDirectoryName << "]" << std::endl);
//break; // a directory was found; we stop iterating
// LG : No! We want all files included !
// ===========================================================check user supplied location
fullnameGiven = true;
- fullPathScriptName = Utilities::ExpandLibName(name, verbose);
+
+ fullPathScriptName = Utilities::ExpandLibName(name, false);
// allow user to always forget ".bbs"
int l = fullPathScriptName.size();
// fullPathScriptName = Utilities::MakePkgnameFromPath(path, name, true); //pkgname);
fullPathScriptName = Utilities::MakePkgnameFromPath(path, name, true);
-//std::cout << "FULL PATH = "<<fullPathScriptName<<std::endl;
+
// Check if library exists
if ( ! Utilities::FileExists(fullPathScriptName) )
// The following is *NOT* a debug time message :
// It's a user intended message.
// Please don't remove it.
- if (verbose)
- std::cout <<" [" <<fullPathScriptName <<"] : doesn't exist" <<std::endl;
+ bbtkMessage("Interpreter",1,
+ " [" <<fullPathScriptName <<"] : doesn't exist"
+ <<std::endl);
continue; // try next path
}
- if (verbose)
- std::cout <<" [" <<fullPathScriptName <<"] : found" <<std::endl;
+ bbtkMessage("Interpreter",1,
+ " [" <<fullPathScriptName
+ <<"] : found" <<std::endl);
foundFile = true;
break; // a script was found; we stop iterating
if (find(mFileName.begin(),mFileName.end(),fullPathScriptName)
!=mFileName.end())
{
- bbtkMessage("Interpreter",1,"file '"<<fullPathScriptName<<"' already open : do not open it once more to prevent recursive inclusion"<<std::endl);
+ bbtkMessage("Interpreter",1,
+ "file '"<<fullPathScriptName
+ <<"' already open : do not open it once more to prevent recursive inclusion"<<std::endl);
return;
}
return;
}
- //if (verbose)
- std::cout << " -->[" << fullPathScriptName << "] found" << std::endl;
+ bbtkMessage("Interpreter",1," -->[" << fullPathScriptName
+ << "] found" << std::endl);
mFile.push_back(s);
mFileName.push_back(fullPathScriptName);
//===================================================================
/// Displays the Configuration
- void Interpreter::Config( bool verbose ) const
+ void Interpreter::Config() const
{
bbtkDebugMessageInc("Core",9,"Factory::Config"<<std::endl);