std::map<std::string, bool> modelCDMPackage::Get3rdPartyLibraries()
{
+ std::map<std::string, std::string> correspondence;
+ correspondence["${BBTK_PACKAGE_NAME}_USE_VTKON"] = "VTK";
+ correspondence["${BBTK_PACKAGE_NAME}_USE_ITKON"] = "ITK";
+ correspondence["${BBTK_PACKAGE_NAME}_USE_GDCMON"] = "GDCM";
+ correspondence["${BBTK_PACKAGE_NAME}_USE_GDCM_VTKON"] = "GDCM_VTK";
+ correspondence["${BBTK_PACKAGE_NAME}_USE_GSMISON"] = "GSMIS";
+ correspondence["${BBTK_PACKAGE_NAME}_USE_WXWIDGETSON"] = "WxWidgets";
+ correspondence["${BBTK_PACKAGE_NAME}_USE_KWWIDGETSON"] = "KWWidgets";
std::map<std::string, bool> res;
- res["Test"] = false;
+ res["VTK"] = false;
+ res["ITK"] = false;
+ res["GDCM"] = false;
+ res["GDCM_VTK"] = false;
+ res["GSMIS"] = false;
+ res["WxWidgets"] = false;
+ res["KWWidgets"] = false;
+
+ if(this->HasCMakeLists())
+ {
+ std::ifstream CMFile(this->CMakeLists->GetPath().c_str());
+ if (CMFile.is_open())
+ {
+ std::string line;
+ while(!CMFile.eof())
+ {
+ std::getline(CMFile, line, '(');
+
+ std::vector<std::string> lineSeg;
+ CDMUtilities::splitter::split(lineSeg,line,"\n",CDMUtilities::splitter::no_empties);
+ for(int i = 0; lineSeg.size() > 0 && i < lineSeg[lineSeg.size()-1].size(); ++i)
+ if (lineSeg[lineSeg.size()-1][i] == ' ')
+ {
+ lineSeg[lineSeg.size()-1].erase(i,1);
+ --i;
+ }
+ if(lineSeg.size() > 0 && lineSeg[lineSeg.size()-1][0]!='#' && lineSeg[lineSeg.size()-1] == "SET")
+ {
+ std::getline(CMFile, line, ')');
+ CDMUtilities::splitter::split(lineSeg,line,"\t\n",CDMUtilities::splitter::no_empties);
+ if(lineSeg.size() > 0)
+ {
+ for(int i = 0; i < lineSeg[0].size(); ++i)
+ if (lineSeg[0][i] == ' ')
+ {
+ lineSeg[0].erase(i,1);
+ --i;
+ }
+
+ if(lineSeg[0].size() > 0 && lineSeg[0][0] == '$' && correspondence.find(lineSeg[0]) != correspondence.end())
+ {
+ res[correspondence[lineSeg[0]]] = true;
+ }
+ }
+ }
+ }
+ CMFile.close();
+ }
+ }
return res;
}