📄 am_edit
字号:
# Always find the header files that could be used to "moc" return 1 if (findMocCandidates ()); if ($postEqual =~ /AUTO\s*(\S*)|USE_AUTOMOC\s*(\S*)/) { print STDERR "$printname: the argument for AUTO|USE_AUTOMOC is obsolete" if ($+); $mocExt = ".moc.$cxxsuffix"; $haveAutomocTag = 1; } else { # Not automoc so read the list of files supplied which # should be .moc files. $postEqual =~ tr/\034/ /; # prune out extra headers - This also checks to make sure that # the list is valid. pruneMocCandidates ($postEqual); } checkMocCandidates (); if (@newObs) { my $ext = ($program =~ /_la$/) ? ".moc.lo " : ".moc.o "; $realObjs{$program} .= "\034" . join ($ext, @newObs) . $ext; $dependmocs{$program} = join (".moc.$cxxsuffix " , @newObs) . ".moc.$cxxsuffix"; foreach $file (@newObs) { $dep_files .= " \$(DEPDIR)/$file.moc.P" if($dep_files !~/$file.moc.P/); } } if (@depend) { $dependmocs{$program} .= " "; $dependmocs{$program} .= join('.moc ', @depend) . ".moc"; $dependmocs{$program} .= " "; } addMocRules (); @globalmocs{keys %mocFiles}=values %mocFiles;}#-----------------------------------------------------------------------------# Returns 0 if the line was processed - 1 otherwise.# Errors are logged in the global $errorflagssub tag_AUTOMAKE (){ my $lookup = '.*cd \$\(top_srcdir\)\s+&&[\034\s]+\$\(AUTOMAKE\)(.*)'; return 1 if ($MakefileData !~ /\n($lookup)\n/); print STDOUT "AUTOMAKE processing <$1>\n" if ($verbose); my $newLine = $1."\n\tcd \$(top_srcdir) && perl $thisProg $printname"; # automake 1.8.x adds another automake call. *sigh* $newLine =~ s/;([\034\s]+cd\s+\$\(srcdir\)\s+&&[\034\s]+\$\(AUTOMAKE\).*)[\034\s]+\&\&[\034\s]+exit[\034\s]+0;([\034\s]+exit\s+1)/; \034 ( $1 ) || exit 1; echo \' cd \$(top_srcdir) && perl $thisProg \'; cd \$(top_srcdir) && perl $thisProg && exit 0; $2/; substituteLine ($lookup, $newLine); $automkCall = $1; $lookup = '.*cd \$\(srcdir\)\s+&&[\034\s]+\$\(AUTOCONF\)(.*)'; if ($MakefileData =~ /\n($lookup)\n/) { $newLine = "\tcd \$(srcdir) && rm -f configure\n"; $newLine .= "\tcd \$(top_srcdir) && \$(MAKE) -f admin/Makefile.common configure"; substituteLine ($lookup, $newLine); } return 0;}#-----------------------------------------------------------------------------sub handle_TOPLEVEL(){ my $pofiles = ""; my @restfiles = (); opendir (THISDIR, "."); foreach $entry (readdir(THISDIR)) { next if (-d $entry); next if ($entry eq "CVS" || $entry =~ /^\./ || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^\#.*\#$/ || $entry =~ /.gmo$/); if ($entry =~ /\.po$/) { next; } push(@restfiles, $entry); } closedir (THISDIR); if (@restfiles) { $target_adds{"install-data-am"} .= "install-nls-files "; $lines = "install-nls-files:\n"; $lines .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/$kdelang\n"; for $file (@restfiles) { $lines .= "\t\$(INSTALL_DATA) \$\(srcdir\)/$file \$(DESTDIR)\$(kde_locale)/$kdelang/$file\n"; } $target_adds{"uninstall"} .= "uninstall-nls-files "; $lines .= "uninstall-nls-files:\n"; for $file (@restfiles) { $lines .= "\t-rm -f \$(DESTDIR)\$(kde_locale)/$kdelang/$file\n"; } appendLines($lines); } return 0;}#-----------------------------------------------------------------------------sub tag_SUBDIRS (){ if ($MakefileData !~ /\nSUBDIRS\s*=\s*\$\(AUTODIRS\)\s*\n/) { return 1; } my $subdirs = "."; opendir (THISDIR, "."); foreach $entry (readdir(THISDIR)) { next if ($entry eq "CVS" || $entry =~ /^\./); if (-d $entry && -f $entry . "/Makefile.am") { $subdirs .= " $entry"; next; } } closedir (THISDIR); substituteLine('SUBDIRS\s*=.*', "SUBDIRS =$subdirs"); return 0;}sub tag_IDLFILES (){ my @psources = split(/[\034\s]+/, $sources{$program}); my $dep_lines = ""; my @cppFiles = (); foreach $source (@psources) { my $skel = ($source =~ m/\.skel$/); my $stub = ($source =~ m/\.stub$/); my $signals = ($source =~ m/\.signals$/); # obsolete, remove in KDE-4 if ($stub || $skel || $signals) { my $qs = quotemeta($source); $sources{$program} =~ s/$qs//; $sources_changed{$program} = 1; $source =~ s/\.(stub|skel|signals)$//; my $sourcename; if ($skel) { $sourcename = "$source\_skel"; } elsif ($stub) { $sourcename = "$source\_stub"; } else { $sourcename = "$source\_signals"; } my $sourcedir = ''; if (-f "$makefileDir/$source.h") { $sourcedir = '$(srcdir)/'; } else { if ($MakefileData =~ /\n$source\_DIR\s*=\s*(\S+)\n/) { $sourcedir = $1; $sourcedir .= "/" if ($sourcedir !~ /\/$/); } } if ($allidls !~ /$source\_kidl/) { $use_ng = ($MakefileData =~ /\n$source\_DCOPIDLNG\s*=\s*(\S+)\n/); $dcopidl = $use_ng ? "KDECONFIG=\"\$(KDECONFIG)\" \$(DCOPIDLNG)" : "\$(DCOPIDL)"; $dep_lines .= "$source.kidl: $sourcedir$source.h \$(DCOP_DEPENDENCIES)\n"; $dep_lines .= "\t$dcopidl $sourcedir$source.h > $source.kidl || ( rm -f $source.kidl ; false )\n"; $allidls .= $source . "_kidl "; } if ($allidls !~ /$sourcename/) { $dep_lines_tmp = ""; if ($skel) { $dep_lines .= "$sourcename.$cxxsuffix: $source.kidl\n"; $dep_lines .= "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-signals --no-stub $source.kidl\n"; } elsif ($stub) { $dep_lines_tmp = "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-signals --no-skel $source.kidl\n"; } else { # signals - obsolete, remove in KDE 4 $dep_lines_tmp = "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-stub --no-skel $source.kidl\n"; } if ($stub || $signals) { $target_adds{"$sourcename.$cxxsuffix"} .= "$sourcename.h "; $dep_lines .= "$sourcename.h: $source.kidl\n"; $dep_lines .= $dep_lines_tmp; } $allidls .= $sourcename . " "; } $idlfiles{$program} .= $sourcename . " "; if ($program =~ /_la$/) { $realObjs{$program} .= " $sourcename.lo"; } else { $realObjs{$program} .= " $sourcename.\$(OBJEXT)"; } $sources{$program} .= " $sourcename.$cxxsuffix"; $sources_changed{$program} = 1; $important{$program} .= "$sourcename.h " if (!$skel); $idl_output .= "\\\n\t$sourcename.$cxxsuffix $sourcename.h $source.kidl "; push(@cleanfiles, "$sourcename.$cxxsuffix"); push(@cleanfiles, "$sourcename.h"); push(@cleanfiles, "$sourcename.kidl"); $dep_files .= " \$(DEPDIR)/$sourcename.P" if ($dep_files !~/$sourcename.P/); } } if ($dep_lines) { appendLines($dep_lines); } if (0) { my $lookup = "($program)"; $lookup .= '(|\$\(EXEEXT\))'; $lookup =~ s/\_/./g; $lookup .= ":(.*..$program\_OBJECTS..*)"; # $lookup = quotemeta($lookup); if ($MakefileData =~ /\n$lookup\n/) { my $line = "$1$2: "; foreach $file (split(' ', $idlfiles{$program})) { $line .= "$file.$cxxsuffix "; } $line .= $3; substituteLine($lookup, $line); } else { print STDERR "no built dependency found $lookup\n"; } }}sub tag_UIFILES (){ my @psources = split(/[\034\s]+/, $sources{$program}); my @depFiles = (); foreach $source (@psources) { if ($source =~ m/\.ui$/) { print STDERR "adding UI file $source\n" if ($verbose); my $qs = quotemeta($source); $sources{$program} =~ s/$qs//; $sources_changed{$program} = 1; $source =~ s/\.ui$//; my $sourcedir = ''; if (-f "$makefileDir/$source.ui") { $sourcedir = '$(srcdir)/'; } if (!$uiFiles{$source}) { my $dep_lines = "$source.$cxxsuffix: $sourcedir$source.ui $source.h $source.moc\n"; $dep_lines .= "\trm -f $source.$cxxsuffix\n"; if (!$kdeopts{"qtonly"}) { $dep_lines .= "\techo '#include <kdialog.h>' > $source.$cxxsuffix\n"; $dep_lines .= "\techo '#include <klocale.h>' >> $source.$cxxsuffix\n"; my ($mangled_source) = $source; $mangled_source =~ s/[^A-Za-z0-9]/_/g; # get rid of garbage $dep_lines .= "\t\$(UIC) -tr \${UIC_TR} -i $source.h $sourcedir$source.ui > $source.$cxxsuffix.temp ; ret=\$\$?; \\\n"; $dep_lines .= "\t\$(PERL) -pe \"s,\${UIC_TR}( \\\"\\\" ),QString::null,g\" $source.$cxxsuffix.temp | \$(PERL) -pe \"s,\${UIC_TR}( \\\"\\\"\\, \\\"\\\" ),QString::null,g\" | \$(PERL) -pe \"s,image([0-9][0-9]*)_data,img\\\$\$1_" . $mangled_source . ",g\" | \$(PERL) -pe \"s,: QWizard\\(,: KWizard(,g\" >> $source.$cxxsuffix ;\\\n"; $dep_lines .= "\trm -f $source.$cxxsuffix.temp ;\\\n"; } else { $dep_lines .= "\t\$(UIC) -i $source.h $sourcedir$source.ui > $source.$cxxsuffix; ret=\$\$?; \\\n"; } $dep_lines .= "\tif test \"\$\$ret\" = 0; then echo '#include \"$source.moc\"' >> $source.$cxxsuffix; else rm -f $source.$cxxsuffix ; exit \$\$ret ; fi\n\n"; $dep_lines .= "$source.h: $sourcedir$source.ui\n"; $dep_lines .= "\trm -rf $source.h;\n"; if (!$kdeopts{"qtonly"}) { $dep_lines .= "\t\$(UIC) $sourcedir$source.ui | \$(PERL) -pi -e \"s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g\" >> $source.h ;\n"; } else { $dep_lines .= "\t\$(UIC) -o $source.h $sourcedir$source.ui\n"; } $dep_lines .= "$source.moc: $source.h\n"; $dep_lines .= "\t\$(MOC) $source.h -o $source.moc\n"; $rule_adds{"$source.$cxxsuffix"} = $dep_lines; $uiFiles{$source} = 1; $dependmocs{$program} .= " $source.moc"; $globalmocs{$source} = "\035$source.h\035$source.cpp"; } if ($program =~ /_la$/) { $realObjs{$program} .= " $source.lo"; } else { $realObjs{$program} .= " $source.\$(OBJEXT)"; } $sources{$program} .= " $source.$cxxsuffix"; $sources_changed{$program} = 1; $important{$program} .= "$source.h "; $ui_output .= "\\\n\t$source.$cxxsuffix $source.h $source.moc "; push(@cleanfiles, "$source.$cxxsuffix"); push(@cleanfiles, "$source.h"); push(@cleanfiles, "$source.moc"); $dep_files .= " \$(DEPDIR)/$source.P" if($dep_files !~/$source.P/ ); } }}sub tag_KCFGFILES (){ my @psources = split(/[\034\s]+/, $sources{$program}); my @depFiles = (); foreach $source (@psources) { if ($source =~ m/\.kcfgc$/) { print STDERR "adding KCFG file $source\n" if ($verbose); my $qs = quotemeta($source); $sources{$program} =~ s/$qs//; $sources_changed{$program} = 1; $source =~ s/\.kcfgc$//; my $sourcedir = ''; if (-f "$makefileDir/$source.kcfgc") { $sourcedir = '$(srcdir)/'; } if (!$kcfgFiles{$source}) { $kcfg = "$program.kcfg"; findKcfgFile("$source.kcfgc"); my $fixsuffix = ""; $fixsuffix = "else mv $source.cpp $source.$cxxsuffix ; " unless "cpp" eq $cxxsuffix; my $dep_lines = "$source.$cxxsuffix: $source.h\n"; $dep_lines .= "$source.h: $sourcedir$kcfg $sourcedir$source.kcfgc \$(KCFG_DEPENDENCIES)\n"; $dep_lines .= "\t\$(KCONFIG_COMPILER) $sourcedir$kcfg $sourcedir$source.kcfgc; ret=\$\$?; \\\n"; $dep_lines .= "\tif test \"\$\$ret\" != 0; then rm -f $source.h ; exit \$\$ret ; $fixsuffix fi\n\n"; $rule_adds{"$source.$cxxsuffix"} = $dep_lines; $kcfgFiles{$source} = 1; } if ($program =~ /_la$/) { $realObjs{$program} .= " $source.lo"; } else { $realObjs{$program} .= " $source.\$(OBJEXT)"; } $sources{$program} .= " $source.$cxxsuffix"; $sources_changed{$program} = 1; $important{$program} .= "$source.h "; $kcfg_output .= "\\\n\t$source.$cxxsuffix $source.h "; push(@cleanfiles, "$source.$cxxsuffix"); push(@cleanfiles, "$source.h"); $dep_files .= " \$(DEPDIR)/$source.P" if($dep_files !~/$source.P/ );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -