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

📄 mainwidget.cpp

📁 makefile generator for gnu make, written in Qt 4.5
💻 CPP
字号:
/* file : 'MainWidget.cpp' */

#include "MainWidget.h"

#include <stdio.h>
#include <string.h>

#include <QFile>
#include <QTextStream>
#include <QString>
#include <QDir>
#include <QStringList>
#include <QDirIterator>
#include <QRegExp>

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
MainWidget::MainWidget( QWidget* parent )
	: QFrame( parent )
{
	p_generate_makefile(  );
	resize( 320, 200 );
}

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
MainWidget::~MainWidget( void )
{
}

//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
//void MainWidget::p_generate_makefile( void )
//{
//	QString path_current = QString( "./" );
//	QString path_include = QString( "include/" );
//	QString path_src = QString( "src/" );
//
//	QString path_2D = QString( "2D/" );
//	QString path_Math = QString( "Math/" );
//	QString path_Core = QString( "Core/" );
//	QString path_CPP = QString( "C++/" );
//	QString path_Utils = QString( "Utils/" );
//
//	QFile file( QString( "makefile" ) );
//	file.open( QFile::WriteOnly | QFile::Text );
//	QTextStream stream( &file );
//
//  // first line of the makefile
//	stream << QString( "INCLUDE = include/" ) << endl;
//	stream << QString( "SRC = " );
//
//	QDir dir;
//	dir.setFilter( QDir::NoDotAndDotDot | QDir::Files );
//
//
//	// start list files "src/2D/" directory
//	dir.setPath( path_src + path_2D );
//	QStringList lst_src_2D = dir.entryList(  );
//	for( int i = 0; i < lst_src_2D.count(  ); i++ )	{
//		stream << path_src + path_2D + lst_src_2D[ i ] + QString( " \\" ) << endl;
//	}
//
//	// then do the same with "src/Core/ directory
//	dir.setPath( path_src + path_Core );
//	QStringList lst_src_Core = dir.entryList(  );
//	for( int i = 0; i < lst_src_Core.count(  ); i++ )	{
//		stream << path_src + path_Core + lst_src_Core[ i ] + QString( " \\" ) << endl;
//	}
//
//	// then do the same with "src/Math/ directory
//	dir.setPath( path_src + path_Math );
//	QStringList lst_src_Math = dir.entryList(  );
//	for( int i = 0; i < lst_src_Math.count(  ); i++ )	{
//		stream << path_src + path_Math + lst_src_Math[ i ] + QString( " \\" ) << endl;
//	}
//
//	// then do the same with "src/Utils/ directory
//	dir.setPath( path_src + path_Utils );
//	QStringList lst_src_Utils = dir.entryList(  );
//	for( int i = 0; i < lst_src_Utils.count(  ); i++ )	{
//		stream << path_src + path_Utils + lst_src_Utils[ i ] + QString( " \\" ) << endl;
//	}
//
//	stream << QString( "Demo.cpp" ) << QString( " \\" ) << endl;
//	stream << QString( "main.cpp" ) << endl;
//
//	stream << QString( "all:" ) << endl;
//	stream << QString( "\t" ) << QString( "gcc -I$(INCLUDE) -o Esposito-proj1.exe $(SRC) " ) + QString( "-lstdc++ -lglut -lGLU -lGL" ) << endl;
//	file.close(  );
//	return;
//}

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
void MainWidget::p_generate_makefile( void )
{

	QFile file( QString( "makefile.txt" ) );
	file.open( QFile::WriteOnly | QFile::Text );
	QTextStream stream( &file );

  // first line of the makefile
	stream << QString( "INCLUDE = include/" ) << endl;
	stream << QString( "SRC = " );

	QStringList lst_inc;
	QStringList lst_src;

	QRegExp regexp_src( QString( ".cpp$" ) );
	QRegExp regexp_inc( QString( ".h$" ) );
	QString current;
	QDirIterator it( "./", QDirIterator::Subdirectories );
	while( it.hasNext(  ) )	{
		current = it.next(  );
		if( current.contains( regexp_src ) )	{
			lst_src.append( current );
		}
	}

	for( int i = 0; i < lst_src.count(  ); i++ )	{
		current = lst_src[ i ];
		if( current.contains( QString( "./" ) ) )	{
			current = current.remove( QString( "./" ) );
		}
		stream << current;
		if( i == lst_src.count(  ) - 1 )	{
			stream << endl;
		}	else	{
			stream << QString( " \\" ) << endl;
		}
	}
	stream << QString( "all:" ) << endl;
	stream << QString( "\t" ) << QString( "gcc -I$(INCLUDE) -o Esposito-proj4-Buggy-Alpha.exe $(SRC) " ) + QString( "-lstdc++ -lglut -lGLU -lGL" ) << endl;
	file.close(  );
	return;
}

⌨️ 快捷键说明

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