+ bool isPackage = false;
+
+ // check if cmakelists file exist in folder.
+ std::string tmppath = this->GetPath() + CDMUtilities::SLASH + stdfileName + CDMUtilities::SLASH + "CMakeLists.txt";
+ CDMUtilities::CMLFile CMfile = CDMUtilities::readCMLFile(tmppath.c_str());
+ if (CMfile.size() > 0)
+ {
+ std::cout << "-->" << stdfileName << " ::has cmakelists" << std::endl;
+ // check if cmakelists file has the SET(BBTK_PACKAGE_NAME [pkgname]) instruction.
+ for (int i = 0; !isPackage && i < CMfile.size(); ++i) {
+ if (CMfile[i].first == "command" && CMfile[i].second.size() > 1)
+ {
+ std::string cm = CMfile[i].second[0];
+
+ int pos = 1;
+ while(pos < CMfile[i].second.size()-1 && !isalpha(CMfile[i].second[pos][0]))
+ pos++;
+
+ std::string pm1 = CMfile[i].second[pos];
+
+ std::cout << cm << " " << pm1 << std::endl;
+ std::transform(cm.begin(), cm.end(), cm.begin(), ::toupper);
+ std::transform(pm1.begin(), pm1.end(), pm1.begin(), ::toupper);
+ if(cm == "SET" && pm1 == "BBTK_PACKAGE_NAME")
+ {
+ isPackage = true;
+ }
+ }
+ }
+ }
+
+ // if package, create package
+ if(isPackage)
+ {
+ std::cout << "is Package\n";
+ modelCDMPackage* package = new modelCDMPackage(this, pathFixed + CDMUtilities::SLASH + stdfileName, stdfileName, this->level + 1);
+ std::cout << "Package created\n";
+ this->packages.push_back(package);
+ this->children.push_back(package);
+ }
+ // if is an unknown folder, create folder
+ else
+ {
+ this->children.push_back(new modelCDMFolder(this, pathFixed + CDMUtilities::SLASH + stdfileName, stdfileName, this->level + 1));
+ }
+