void addstat_dircache(const char *path, MTNSTAT *st) { MTNDIR *md; MTNFS *mtnfs; mtnfs = MTNFS_CONTEXT; if(st == NULL){ return; } pthread_mutex_lock(&(mtnfs->cache_mutex)); md = mtnfs->dircache; while(md){ if(strcmp(md->path, path) == 0){ break; } md = md->next; } if(md == NULL){ md = newdir(path); if((md->next = mtnfs->dircache)){ mtnfs->dircache->prev = md; } mtnfs->dircache = md; } md->st = mgstat(md->st, st); gettimeofday(&(md->tv), NULL); pthread_mutex_unlock(&(mtnfs->cache_mutex)); }
Ut::Ut(QWidget *parent) : QDialog(parent) { qDebug() << "start Ut"; ui.setupUi(this); connect(ui.convert, SIGNAL(clicked()), this, SLOT(read_write())); connect(ui.file, SIGNAL(textChanged(QString)), this, SLOT(newfile())); connect(ui.cat, SIGNAL(textChanged(QString)), this, SLOT(newcat())); connect(ui.observatory, SIGNAL(currentIndexChanged(int)), this, SLOT(observatory(int))); connect(ui.dir, SIGNAL(textChanged(QString)), this, SLOT(newdir())); connect(ui.convert, SIGNAL(pressed()), this, SLOT(processing())); connect(ui.LT2UT, SIGNAL(clicked()), this, SLOT(inpfilename())); connect(ui.ST2UT, SIGNAL(clicked()), this, SLOT(inpfilename())); connect(ui.JD2UT, SIGNAL(clicked()), this, SLOT(inpfilename())); red.setColor(QPalette::Base,QColor(Qt::red)); white.setColor(QPalette::Base,QColor(Qt::white)); // filename = "..\\data\\" + ui.file->text() + "maindata_lt.txt"; int index = 0; read_cfg(index); newfile(); read_cat(); observatory(index); read_dst(); inpfilename(); qDebug() << "stop Ut"; }
void MakeDir( const TCHAR* const lpszDirName ) { try { iFSServices* pFSServices = iFSServices::GetInstance(); TSTRING newdir(lpszDirName); pFSServices->Mkdir( newdir ); } catch( eFSServices e ) { ASSERT( false ); } }
void Cache::CacheServiceGateway(unsigned long carId, unsigned short modId, unsigned char version, Biop::ServiceGateway &srg) { cMutexLock lock(&listenerMutex); //printf("Caching gateway %ld, %d\n", carId, modId); if (!gateway) { //not yet cached Directory::Ptr newdir(new ServiceGateway(0,0,CharArray(), (CacheListener *)this)); gateway=newdir; gateway->setVersion(version); gateway.asDirectory()->AddInfo(srg); gateway.asDirectory()->AssignChildren(&unassigned); } else if (gateway->version != version) { gateway->setVersion(version); gateway.asDirectory()->UpdateInfo(srg, &writer); } }
void ProjectManager::set_current_project_dir(const QString & path) { if (path.isEmpty()) { return; } QDir newdir(path); config().set_property("Project", "directory", newdir.canonicalPath()); QStringList list = newdir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); m_projectDirs.clear(); foreach(const QString &string, list) { m_projectDirs += path + "/" + string; }
static void updateWorkingDirectory (const char *firstArgument) { string path (firstArgument); size_t index; index = path.find_last_of ('/'); #ifdef WIN32 index = max (index, path.find_last_of ('\\')); #endif if (index != string::npos) { string newdir (path, 0, index); setcwd (newdir.c_str ()); } }
MTNSTAT *get_dircache(const char *path, int flag) { MTNFS *mtnfs; MTNDIR *md; MTNSTAT *st; struct timeval tv; mtnfs = MTNFS_CONTEXT; pthread_mutex_lock(&(mtnfs->cache_mutex)); gettimeofday(&tv, NULL); md = mtnfs->dircache; while(md){ if((tv.tv_sec - md->tv.tv_sec) > 10){ clrstat(md->st); md->st = NULL; md->flag = 0; } if((tv.tv_sec - md->tv.tv_sec) > 60){ if(md == mtnfs->dircache){ md = (mtnfs->dircache = deldir(mtnfs->dircache)); }else{ md = deldir(md); } continue; } if(strcmp(md->path, path) == 0){ break; } md = md->next; } if(md == NULL){ md = newdir(path); if((md->next = mtnfs->dircache)){ mtnfs->dircache->prev = md; } mtnfs->dircache = md; } st = (!flag || md->flag) ? cpstat(md->st) : NULL; pthread_mutex_unlock(&(mtnfs->cache_mutex)); return(st); }
void ProjectGenerator::init() { if(init_flag) return; int file_count = 0; init_flag = true; verifyCompilers(); project->read(QMakeProject::ReadFeatures); project->variables()["CONFIG"].clear(); QMap<QString, QStringList> &v = project->variables(); QString templ = Option::user_template.isEmpty() ? QString("app") : Option::user_template; if(!Option::user_template_prefix.isEmpty()) templ.prepend(Option::user_template_prefix); v["TEMPLATE_ASSIGN"] += templ; //figure out target if(Option::output.fileName() == "-") v["TARGET_ASSIGN"] = QStringList("unknown"); else v["TARGET_ASSIGN"] = QStringList(QFileInfo(Option::output).baseName()); //the scary stuff if(project->first("TEMPLATE_ASSIGN") != "subdirs") { QString builtin_regex = project_builtin_regx(); QStringList dirs = Option::projfile::project_dirs; if(Option::projfile::do_pwd) { if(!v["INCLUDEPATH"].contains(".")) v["INCLUDEPATH"] += "."; dirs.prepend(qmake_getpwd()); } for(int i = 0; i < dirs.count(); ++i) { QString dir, regex, pd = dirs.at(i); bool add_depend = false; if(exists(pd)) { QFileInfo fi(fileInfo(pd)); if(fi.isDir()) { dir = pd; add_depend = true; if(dir.right(1) != Option::dir_sep) dir += Option::dir_sep; if(Option::recursive) { QStringList files = QDir(dir).entryList(QDir::Files); for(int i = 0; i < (int)files.count(); i++) { if(files[i] != "." && files[i] != "..") dirs.append(dir + files[i] + QDir::separator() + builtin_regex); } } regex = builtin_regex; } else { QString file = pd; int s = file.lastIndexOf(Option::dir_sep); if(s != -1) dir = file.left(s+1); if(addFile(file)) { add_depend = true; file_count++; } } } else { //regexp regex = pd; } if(!regex.isEmpty()) { int s = regex.lastIndexOf(Option::dir_sep); if(s != -1) { dir = regex.left(s+1); regex = regex.right(regex.length() - (s+1)); } if(Option::recursive) { QStringList entries = QDir(dir).entryList(QDir::Dirs); for(int i = 0; i < (int)entries.count(); i++) { if(entries[i] != "." && entries[i] != "..") { dirs.append(dir + entries[i] + QDir::separator() + regex); } } } QStringList files = QDir(dir).entryList(QDir::nameFiltersFromString(regex)); for(int i = 0; i < (int)files.count(); i++) { QString file = dir + files[i]; if (addFile(file)) { add_depend = true; file_count++; } } } if(add_depend && !dir.isEmpty() && !v["DEPENDPATH"].contains(dir, Qt::CaseInsensitive)) { QFileInfo fi(fileInfo(dir)); if(fi.absoluteFilePath() != qmake_getpwd()) v["DEPENDPATH"] += fileFixify(dir); } } } if(!file_count) { //shall we try a subdir? QStringList knownDirs = Option::projfile::project_dirs; if(Option::projfile::do_pwd) knownDirs.prepend("."); const QString out_file = fileFixify(Option::output.fileName()); for(int i = 0; i < knownDirs.count(); ++i) { QString pd = knownDirs.at(i); if(exists(pd)) { QString newdir = pd; QFileInfo fi(fileInfo(newdir)); if(fi.isDir()) { newdir = fileFixify(newdir); QStringList &subdirs = v["SUBDIRS"]; if(exists(fi.filePath() + QDir::separator() + fi.fileName() + Option::pro_ext) && !subdirs.contains(newdir, Qt::CaseInsensitive)) { subdirs.append(newdir); } else { QStringList profiles = QDir(newdir).entryList(QStringList("*" + Option::pro_ext), QDir::Files); for(int i = 0; i < (int)profiles.count(); i++) { QString nd = newdir; if(nd == ".") nd = ""; else if(!nd.isEmpty() && !nd.endsWith(QString(QChar(QDir::separator())))) nd += QDir::separator(); nd += profiles[i]; fileFixify(nd); if(profiles[i] != "." && profiles[i] != ".." && !subdirs.contains(nd, Qt::CaseInsensitive) && !out_file.endsWith(nd)) subdirs.append(nd); } } if(Option::recursive) { QStringList dirs = QDir(newdir).entryList(QDir::Dirs); for(int i = 0; i < (int)dirs.count(); i++) { QString nd = fileFixify(newdir + QDir::separator() + dirs[i]); if(dirs[i] != "." && dirs[i] != ".." && !knownDirs.contains(nd, Qt::CaseInsensitive)) knownDirs.append(nd); } } } } else { //regexp QString regx = pd, dir; int s = regx.lastIndexOf(Option::dir_sep); if(s != -1) { dir = regx.left(s+1); regx = regx.right(regx.length() - (s+1)); } QStringList files = QDir(dir).entryList(QDir::nameFiltersFromString(regx), QDir::Dirs); QStringList &subdirs = v["SUBDIRS"]; for(int i = 0; i < (int)files.count(); i++) { QString newdir(dir + files[i]); QFileInfo fi(fileInfo(newdir)); if(fi.fileName() != "." && fi.fileName() != "..") { newdir = fileFixify(newdir); if(exists(fi.filePath() + QDir::separator() + fi.fileName() + Option::pro_ext) && !subdirs.contains(newdir)) { subdirs.append(newdir); } else { QStringList profiles = QDir(newdir).entryList(QStringList("*" + Option::pro_ext), QDir::Files); for(int i = 0; i < (int)profiles.count(); i++) { QString nd = newdir + QDir::separator() + files[i]; fileFixify(nd); if(files[i] != "." && files[i] != ".." && !subdirs.contains(nd, Qt::CaseInsensitive)) { if(newdir + files[i] != Option::output_dir + Option::output.fileName()) subdirs.append(nd); } } } if(Option::recursive && !knownDirs.contains(newdir, Qt::CaseInsensitive)) knownDirs.append(newdir); } } } } v["TEMPLATE_ASSIGN"] = QStringList("subdirs"); return; } //setup deplist QList<QMakeLocalFileName> deplist; { const QStringList &d = v["DEPENDPATH"]; for(int i = 0; i < d.size(); ++i) deplist.append(QMakeLocalFileName(d[i])); } setDependencyPaths(deplist); QStringList &h = v["HEADERS"]; bool no_qt_files = true; QString srcs[] = { "SOURCES", "YACCSOURCES", "LEXSOURCES", "FORMS", QString() }; for(int i = 0; !srcs[i].isNull(); i++) { const QStringList &l = v[srcs[i]]; QMakeSourceFileInfo::SourceFileType type = QMakeSourceFileInfo::TYPE_C; QMakeSourceFileInfo::addSourceFiles(l, QMakeSourceFileInfo::SEEK_DEPS, type); for(int i = 0; i < l.size(); ++i) { QStringList tmp = QMakeSourceFileInfo::dependencies(l[i]); if(!tmp.isEmpty()) { for(int dep_it = 0; dep_it < tmp.size(); ++dep_it) { QString dep = tmp[dep_it]; dep = fixPathToQmake(dep); QString file_dir = dep.section(Option::dir_sep, 0, -2), file_no_path = dep.section(Option::dir_sep, -1); if(!file_dir.isEmpty()) { for(int inc_it = 0; inc_it < deplist.size(); ++inc_it) { QMakeLocalFileName inc = deplist[inc_it]; if(inc.local() == file_dir && !v["INCLUDEPATH"].contains(inc.real(), Qt::CaseInsensitive)) v["INCLUDEPATH"] += inc.real(); } } if(no_qt_files && file_no_path.indexOf(QRegExp("^q[a-z_0-9].h$")) != -1) no_qt_files = false; QString h_ext; for(int hit = 0; hit < Option::h_ext.size(); ++hit) { if(dep.endsWith(Option::h_ext.at(hit))) { h_ext = Option::h_ext.at(hit); break; } } if(!h_ext.isEmpty()) { for(int cppit = 0; cppit < Option::cpp_ext.size(); ++cppit) { QString src(dep.left(dep.length() - h_ext.length()) + Option::cpp_ext.at(cppit)); if(exists(src)) { QStringList &srcl = v["SOURCES"]; if(!srcl.contains(src, Qt::CaseInsensitive)) srcl.append(src); } } } else if(dep.endsWith(Option::lex_ext) && file_no_path.startsWith(Option::lex_mod)) { addConfig("lex_included"); } if(!h.contains(dep, Qt::CaseInsensitive)) h += dep; } } } } //strip out files that are actually output from internal compilers (ie temporary files) const QStringList &quc = project->variables()["QMAKE_EXTRA_COMPILERS"]; for(QStringList::ConstIterator it = quc.begin(); it != quc.end(); ++it) { QString tmp_out = project->variables()[(*it) + ".output"].first(); if(tmp_out.isEmpty()) continue; QStringList var_out = project->variables()[(*it) + ".variable_out"]; bool defaults = var_out.isEmpty(); for(int i = 0; i < var_out.size(); ++i) { QString v = var_out.at(i); if(v.startsWith("GENERATED_")) { defaults = true; break; } } if(defaults) { var_out << "SOURCES"; var_out << "HEADERS"; var_out << "FORMS"; } const QStringList &tmp = project->variables()[(*it) + ".input"]; for(QStringList::ConstIterator it2 = tmp.begin(); it2 != tmp.end(); ++it2) { QStringList &inputs = project->variables()[(*it2)]; for(QStringList::Iterator input = inputs.begin(); input != inputs.end(); ++input) { QString path = replaceExtraCompilerVariables(tmp_out, (*input), QString()); path = fixPathToQmake(path).section('/', -1); for(int i = 0; i < var_out.size(); ++i) { QString v = var_out.at(i); QStringList &list = project->variables()[v]; for(int src = 0; src < list.size(); ) { if(list[src] == path || list[src].endsWith("/" + path)) list.removeAt(src); else ++src; } } } } } }
void CollectionScanner::Scanner::doJob() //SLOT { QFile xmlFile; xmlFile.open( stdout, QIODevice::WriteOnly ); QXmlStreamWriter xmlWriter( &xmlFile ); xmlWriter.setAutoFormatting( true ); // --- determine the directories we have to scan QStringList entries; // -- when restarting read them from the shared memory if( m_restart && m_scanningState.isValid() ) { m_scanningState.readFull(); QString lastEntry = m_scanningState.lastDirectory(); entries = m_scanningState.directories(); // remove the entries we already scanned while( entries.front() != lastEntry && !entries.empty() ) entries.pop_front(); } // -- else use m_folders and do recursive else { QSet<QString> entriesSet; foreach( const QString &dir, m_folders ) // krazy:exclude=foreach { if( dir.isEmpty() ) //apparently somewhere empty strings get into the mix //which results in a full-system scan! Which we can't allow continue; QString newdir( dir ); // Make sure that all paths are absolute, not relative if( QDir::isRelativePath( dir ) ) newdir = QDir::cleanPath( QDir::currentPath() + '/' + dir ); if( !dir.endsWith( '/' ) ) newdir += '/'; addDir( newdir, &entriesSet ); } entries = entriesSet.toList(); m_scanningState.setLastDirectory( QString() ); m_scanningState.setDirectories( entries ); } if( !m_restart ) { xmlWriter.writeStartDocument(); xmlWriter.writeStartElement("scanner"); xmlWriter.writeAttribute("count", QString::number( entries.count() ) ); if( m_incremental ) xmlWriter.writeAttribute("incremental", QString()); // write some information into the file and close previous tag xmlWriter.writeComment("Created by amarokcollectionscanner "AMAROK_VERSION" on "+QDateTime::currentDateTime().toString()); xmlFile.flush(); } // --- now do the scanning foreach( QString path, entries ) { CollectionScanner::Directory dir( path, &m_scanningState, m_incremental && !isModified( path ) ); xmlWriter.writeStartElement( "directory" ); dir.toXml( &xmlWriter ); xmlWriter.writeEndElement(); xmlFile.flush(); }
int mkfs(struct filesys *fs, dev_t dev) { struct superblock *sb; struct block_device *bdev; int i, bcount; if(!(bdev = blk_open(dev))) { return -1; } fs->bdev = bdev; if(!(sb = malloc(BLKSZ))) { blk_close(bdev); return -1; } fs->sb = sb; /* populate the superblock */ sb->magic = MAGIC; sb->ver = FS_VER; sb->blksize = BLKSZ; sb->num_blocks = bdev->size; sb->num_inodes = sb->num_blocks / 4; /* inode bitmap just after the superblock */ sb->ibm_start = 2; sb->ibm_count = (sb->num_inodes + BLKBITS - 1) / BLKBITS; /* also allocate and initialize in-memory inode bitmap */ sb->ibm = malloc(sb->ibm_count * BLKSZ); assert(sb->ibm); memset(sb->ibm, 0, sb->ibm_count * BLKSZ); /* XXX mark inode 0 as used always */ BM_SET(sb->ibm, 0); /* block bitmap just after the inode bitmap */ sb->bm_start = sb->ibm_start + sb->ibm_count; sb->bm_count = (sb->num_blocks + BLKBITS - 1) / BLKBITS; /* also allocate and initialize in-memory block bitmap */ sb->bm = malloc(sb->bm_count * BLKSZ); assert(sb->bm); memset(sb->bm, 0, sb->bm_count * BLKSZ); /* inode table, just after the block bitmap */ sb->itbl_start = sb->bm_start + sb->bm_count; sb->itbl_count = (sb->num_inodes * sizeof(struct inode) + BLKSZ - 1) / BLKSZ; /* mark all used blocks as used */ bcount = sb->itbl_start + sb->itbl_count; memset(sb->bm, 0xff, bcount / 8); for(i=0; i<bcount % 8; i++) { int bit = bcount / 8 + i; BM_SET(sb->bm, bit); } /* create the root directory */ sb->root = newdir(fs, 0); sb->root_ino = sb->root->ino; /* and write the inode to disk */ put_inode(fs, sb->root); return 0; }
void ProjectGenerator::init() { if(init_flag) return; int file_count = 0; init_flag = TRUE; QMap<QString, QStringList> &v = project->variables(); QString templ = Option::user_template.isEmpty() ? QString("app") : Option::user_template; if(!Option::user_template_prefix.isEmpty()) templ.prepend(Option::user_template_prefix); v["TEMPLATE_ASSIGN"] += templ; //figure out target if(Option::output.name() == "-" || Option::output.name().isEmpty()) v["TARGET"] = QStringList("unknown"); //the scary stuff if(project->first("TEMPLATE_ASSIGN") != "subdirs") { QString builtin_regex = project_builtin_regx(); QStringList dirs = Option::projfile::project_dirs; if(Option::projfile::do_pwd) { if(!v["INCLUDEPATH"].contains(".")) v["INCLUDEPATH"] += "."; dirs.prepend(QDir::currentDirPath()); } for(QStringList::Iterator pd = dirs.begin(); pd != dirs.end(); pd++) { QString dir, regex; bool add_depend = FALSE; if(QFile::exists((*pd))) { QFileInfo fi((*pd)); if(fi.isDir()) { dir = (*pd); add_depend = TRUE; if(dir.right(1) != Option::dir_sep) dir += Option::dir_sep; if(Option::projfile::do_recursive) { QDir d(dir); d.setFilter(QDir::Dirs); for(int i = 0; i < (int)d.count(); i++) { if(d[i] != "." && d[i] != "..") dirs.append(dir + d[i] + QDir::separator() + builtin_regex); } } regex = builtin_regex; } else { QString file = (*pd); int s = file.findRev(Option::dir_sep); if(s != -1) dir = file.left(s+1); if(addFile(file)) { add_depend = TRUE; file_count++; } } } else { //regexp regex = (*pd); } if(!regex.isEmpty()) { int s = regex.findRev(Option::dir_sep); if(s != -1) { dir = regex.left(s+1); regex = regex.right(regex.length() - (s+1)); } if(Option::projfile::do_recursive) { QDir d(dir); d.setFilter(QDir::Dirs); for(int i = 0; i < (int)d.count(); i++) { if(d[i] != "." && d[i] != "..") dirs.append(dir + d[i] + QDir::separator() + regex); } } QDir d(dir, regex); for(int i = 0; i < (int)d.count(); i++) { QString file = dir + d[i]; if (addFile(file)) { add_depend = TRUE; file_count++; } } } if(add_depend && !dir.isEmpty() && !v["DEPENDPATH"].contains(dir)) { QFileInfo fi(dir); if(fi.absFilePath() != QDir::currentDirPath()) v["DEPENDPATH"] += fileFixify(dir); } } } if(!file_count) { //shall we try a subdir? QStringList dirs = Option::projfile::project_dirs; if(Option::projfile::do_pwd) dirs.prepend("."); const QString out_file = fileFixify(Option::output.name()); for(QStringList::Iterator pd = dirs.begin(); pd != dirs.end(); pd++) { if(QFile::exists((*pd))) { QString newdir = (*pd); QFileInfo fi(newdir); if(fi.isDir()) { newdir = fileFixify(newdir); QStringList &subdirs = v["SUBDIRS"]; if(QFile::exists(fi.filePath() + QDir::separator() + fi.fileName() + ".pro") && !subdirs.contains(newdir)) { subdirs.append(newdir); } else { QDir d(newdir, "*.pro"); d.setFilter(QDir::Files); for(int i = 0; i < (int)d.count(); i++) { QString nd = newdir; if(nd == ".") nd = ""; else if(!nd.isEmpty() && !nd.endsWith(QString(QChar(QDir::separator())))) nd += QDir::separator(); nd += d[i]; fileFixify(nd); if(d[i] != "." && d[i] != ".." && !subdirs.contains(nd) && !out_file.endsWith(nd)) subdirs.append(nd); } } if(Option::projfile::do_recursive) { QDir d(newdir); d.setFilter(QDir::Dirs); for(int i = 0; i < (int)d.count(); i++) { QString nd = fileFixify(newdir + QDir::separator() + d[i]); if(d[i] != "." && d[i] != ".." && !dirs.contains(nd)) dirs.append(nd); } } } } else { //regexp QString regx = (*pd), dir; int s = regx.findRev(Option::dir_sep); if(s != -1) { dir = regx.left(s+1); regx = regx.right(regx.length() - (s+1)); } QDir d(dir, regx); d.setFilter(QDir::Dirs); QStringList &subdirs = v["SUBDIRS"]; for(int i = 0; i < (int)d.count(); i++) { QString newdir(dir + d[i]); QFileInfo fi(newdir); if(fi.fileName() != "." && fi.fileName() != "..") { newdir = fileFixify(newdir); if(QFile::exists(fi.filePath() + QDir::separator() + fi.fileName() + ".pro") && !subdirs.contains(newdir)) { subdirs.append(newdir); } else { QDir d(newdir, "*.pro"); d.setFilter(QDir::Files); for(int i = 0; i < (int)d.count(); i++) { QString nd = newdir + QDir::separator() + d[i]; fileFixify(nd); if(d[i] != "." && d[i] != ".." && !subdirs.contains(nd)) { if(newdir + d[i] != Option::output_dir + Option::output.name()) subdirs.append(nd); } } } if(Option::projfile::do_recursive && !dirs.contains(newdir)) dirs.append(newdir); } } } } v["TEMPLATE_ASSIGN"] = "subdirs"; return; } QPtrList<MakefileDependDir> deplist; deplist.setAutoDelete(TRUE); { QStringList &d = v["DEPENDPATH"]; for(QStringList::Iterator it = d.begin(); it != d.end(); ++it) { QString r = (*it), l = Option::fixPathToLocalOS((*it)); deplist.append(new MakefileDependDir(r, l)); } } QStringList &h = v["HEADERS"]; bool no_qt_files = TRUE; QString srcs[] = { "SOURCES", "YACCSOURCES", "LEXSOURCES", "INTERFACES", QString::null }; for(int i = 0; !srcs[i].isNull(); i++) { QStringList &l = v[srcs[i]]; for(QStringList::Iterator val_it = l.begin(); val_it != l.end(); ++val_it) { if(generateDependencies(deplist, (*val_it), TRUE)) { QStringList &tmp = findDependencies((*val_it)); if(!tmp.isEmpty()) { for(QStringList::Iterator dep_it = tmp.begin(); dep_it != tmp.end(); ++dep_it) { QString file_dir = (*dep_it).section(Option::dir_sep, 0, -2), file_no_path = (*dep_it).section(Option::dir_sep, -1); if(!file_dir.isEmpty()) { for(MakefileDependDir *mdd = deplist.first(); mdd; mdd = deplist.next()) { if(mdd->local_dir == file_dir && !v["INCLUDEPATH"].contains(mdd->real_dir)) v["INCLUDEPATH"] += mdd->real_dir; } } if(no_qt_files && file_no_path.find(QRegExp("^q[a-z_0-9].h$")) != -1) no_qt_files = FALSE; QString h_ext; for(QStringList::Iterator hit = Option::h_ext.begin(); hit != Option::h_ext.end(); ++hit) { if((*dep_it).endsWith((*hit))) { h_ext = (*hit); break; } } if(!h_ext.isEmpty()) { if((*dep_it).left(1).lower() == "q") { QString qhdr = (*dep_it).lower(); if(file_no_path == "qthread.h") addConfig("thread"); } for(QStringList::Iterator cppit = Option::cpp_ext.begin(); cppit != Option::cpp_ext.end(); ++cppit) { QString src((*dep_it).left((*dep_it).length() - h_ext.length()) + (*cppit)); if(QFile::exists(src)) { bool exists = FALSE; QStringList &srcl = v["SOURCES"]; for(QStringList::Iterator src_it = srcl.begin(); src_it != srcl.end(); ++src_it) { if((*src_it).lower() == src.lower()) { exists = TRUE; break; } } if(!exists) srcl.append(src); } } } else if((*dep_it).endsWith(Option::lex_ext) && file_no_path.startsWith(Option::lex_mod)) { addConfig("lex_included"); } if(!h.contains((*dep_it))) { if(generateMocList((*dep_it)) && !findMocDestination((*dep_it)).isEmpty()) h += (*dep_it); } } } } } } if(h.isEmpty()) addConfig("moc", FALSE); //if we find a file that matches an forms it needn't be included in the project QStringList &u = v["INTERFACES"]; QString no_ui[] = { "SOURCES", "HEADERS", QString::null }; { for(int i = 0; !no_ui[i].isNull(); i++) { QStringList &l = v[no_ui[i]]; for(QStringList::Iterator val_it = l.begin(); val_it != l.end(); ) { bool found = FALSE; for(QStringList::Iterator ui_it = u.begin(); ui_it != u.end(); ++ui_it) { QString s1 = (*val_it).right((*val_it).length() - ((*val_it).findRev(Option::dir_sep) + 1)); if(s1.findRev('.') != -1) s1 = s1.left(s1.findRev('.')) + Option::ui_ext; QString u1 = (*ui_it).right((*ui_it).length() - ((*ui_it).findRev(Option::dir_sep) + 1)); if(s1 == u1) { found = TRUE; break; } } if(!found && (*val_it).endsWith(Option::cpp_moc_ext)) found = TRUE; if(found) val_it = l.remove(val_it); else ++val_it; } } } }