⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 automoc

📁 FreeFEM is an implementation of the GFEM language dedicated to the finite element method. It provid
💻
字号:
#! /usr/bin/perl# Changes Makefile.in to work correctly with moc files. When called# without parameters, automoc works recursively on all Makefile.in in# and below the current subdirectory. When called with parameters,# only these Makefile.in are changed.## 1998-07-23  Harri Porten  <porten@tu-harburg.de>#       * small bugfixes for MOCSOURCES# 1998-11-08  Alex Zepeda  <garbanzo@hooked.net>#	* tweak it so it will run from a "common" directory.# 1998-11-11  Harri Porten <porten@tu-harburg.de> & David Faure <faure@kde.org>#       * bug fix for invocation with arguments# 1998-11-16  Harri Porten <porten@kde.org>#       * take care of "ar" object files, too.#         (as proposed by Martin Vogt <mvogt@rhrk.uni-kl.de>)	use Cwd;use File::Find;use File::Basename;if ( 0 ne 0 )  {print "\n\n";print "*********************************************\n";print "automoc - Software that makes even more sense\n";print "*********************************************\n\n";print "Welcome to the wonderful world of automoc!\n";print "This is really free software, unencumbered by the GPL.\n";print "You can do anything you like with it except sueing me.\n";print "Copyright 1998 Kalle Dalheimer <kalle\@kde.org>\n";print "Concept, design and unnecessary questions about Perl by Matthias Ettrich <ettrich\@kde.org>\n\n";  }if( @ARGV == 0 )  {	find( \&process_makefile1, cwd() );  }else  {	$curdir = cwd();	while( @ARGV )	  {		chdir( dirname( $ARGV[0] ) );		process_makefile( basename( $ARGV[0] ) );		chdir( $curdir );		shift @ARGV;	  }  }sub process_makefile1()  {	if( $_ ne "Makefile.in" )	  {		return;	  }	else	  {		process_makefile( $File::Find::name );	  }  }sub process_makefile()  {	( $filename ) = @_;	# print STDERR "Processing $filename\n";	# search for USE_AUTOMOC	@search_use_automoc = `grep USE_AUTOMOC $filename`;	return if( @search_use_automoc == 0 );	# find the name of the program	$search_use_automoc[0] =~ /^([^_]*)_/;	$programname = $1;	open( FILEIN, "$filename" ) or die "Could not open $filename: $!\n";	open( FILEOUT, ">$filename" . ".tmp" ) or die "Could not open $filename: $!\n"; 	@mocable_files = `grep -l Q_OBJECT *.h 2> /dev/null`;	foreach $mocable_file (@mocable_files) {	  $thisfile = $mocable_file;	  $thisfile =~ s/\.h//;	  push @mocnames, $thisfile;	  $thisfile = $mocable_file;	  $thisfile =~ s/\.h/\.moc\.cpp/;	  push @mocsources, $thisfile;	}	$objectline = $programname . "_OBJECTS";	$libobjectline = $programname . "_la_OBJECTS";	$arobjectline = $programname . "_a_OBJECTS";	while( <FILEIN> )	  {		if( /(.*_METASOURCES\s*=\s*)(USE_AUTOMOC)/ )		  {			print FILEOUT "$1 ";			foreach $mocsource (@mocsources) {			  chomp $mocsource;			  print FILEOUT $mocsource . " ";			}			print FILEOUT "\n";		  }		elsif( /^$objectline/ or /^$libobjectline/ or                       /^$arobjectline/ ) # look for programs and libraries		  {			chomp $_;                        $line = $_;                        $idx = rindex( $line, "\\");                        $morelines = 0;			# Found a backslash in the line                        if($idx > 0) {                          $line = substr( $line, 0, idx-1);                          $morelines = 1;                        }			print FILEOUT "$line ";			foreach $mocname (@mocnames) {			  chomp $mocname;			  if( /^$objectline/ or  /^$arobjectline/ ) {			    print FILEOUT $mocname . ".moc.o ";			  }			  elsif( /^$libobjectline/ ) {			    print FILEOUT $mocname . ".moc.lo ";			  }			}                        if($morelines) {                          print FILEOUT "\\";                        }			print FILEOUT "\n";		  }		elsif( m+cd \$\(top_srcdir\) \&\& \$\(AUTOMAKE\)+ )		  {			print FILEOUT $_;			print FILEOUT "\tperl \$(top_builddir)/admin/automoc " . cwd() . "/Makefile.in\n";		  }		else		  {			print FILEOUT $_;		  }	  }	print FILEOUT "\n\n";	foreach $file (@mocnames) {	  chomp $file;	  print FILEOUT "$file.moc.cpp: $file.h\n";	  print FILEOUT "\t\$(MOC) $file.h -o $file.moc.cpp\n\n"	}	$new = $filename;	$old = $filename . ".tmp";	rename $old, $new; 	undef @mocsources;        undef @mocnames;  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -