mirror of
https://github.com/reactos/reactos.git
synced 2024-11-10 16:48:16 +00:00
296 lines
5.2 KiB
C
296 lines
5.2 KiB
C
|
/********************************************************************
|
||
|
* Module: project.h. This is part of Visual-MinGW.
|
||
|
*
|
||
|
* License: Visual-MinGW is covered by GNU General Public License,
|
||
|
* Copyright (C) 2001 Manu B.
|
||
|
* See license.htm for more details.
|
||
|
*
|
||
|
********************************************************************/
|
||
|
#ifndef PROJECT_H
|
||
|
#define PROJECT_H
|
||
|
|
||
|
#include "winui.h"
|
||
|
#include "main.h"
|
||
|
#include "process.h"
|
||
|
|
||
|
#define BUILD_STATLIB 0
|
||
|
#define BUILD_DLL 1
|
||
|
#define BUILD_EXE 2
|
||
|
#define BUILD_GUIEXE 3
|
||
|
#define LANGC 0
|
||
|
#define LANGCPP 1
|
||
|
|
||
|
class CProject;
|
||
|
class CMakefile;
|
||
|
|
||
|
bool CheckFile(CFileItem * file);
|
||
|
|
||
|
class CGeneralDlg : public CDlgBase
|
||
|
{
|
||
|
public:
|
||
|
CGeneralDlg();
|
||
|
virtual ~CGeneralDlg();
|
||
|
|
||
|
virtual LRESULT CALLBACK CDlgProc(UINT Message, WPARAM wParam, LPARAM lParam);
|
||
|
BOOL OnInitDialog(HWND hwndFocus, LPARAM lInitParam);
|
||
|
BOOL OnCommand(WORD wNotifyCode, WORD wID, HWND hwndCtl);
|
||
|
|
||
|
protected:
|
||
|
|
||
|
private:
|
||
|
CProject *pProject;
|
||
|
CMakefile *pMakefile;
|
||
|
HWND hStatLib;
|
||
|
HWND hDll;
|
||
|
HWND hConsole;
|
||
|
HWND hGuiExe;
|
||
|
HWND hDbgSym;
|
||
|
HWND hLangC;
|
||
|
HWND hLangCpp;
|
||
|
HWND hMkfName;
|
||
|
HWND hMkfDir;
|
||
|
HWND hUserMkf;
|
||
|
HWND hTgtName;
|
||
|
HWND hTgtDir;
|
||
|
};
|
||
|
|
||
|
class CCompilerDlg : public CDlgBase
|
||
|
{
|
||
|
public:
|
||
|
CCompilerDlg();
|
||
|
virtual ~CCompilerDlg();
|
||
|
|
||
|
virtual LRESULT CALLBACK CDlgProc(UINT Message, WPARAM wParam, LPARAM lParam);
|
||
|
BOOL OnInitDialog(HWND hwndFocus, LPARAM lInitParam);
|
||
|
BOOL OnCommand(WORD wNotifyCode, WORD wID, HWND hwndCtl);
|
||
|
|
||
|
protected:
|
||
|
|
||
|
private:
|
||
|
CProject *pProject;
|
||
|
CMakefile *pMakefile;
|
||
|
HWND hCppFlags;
|
||
|
HWND hWarning;
|
||
|
HWND hOptimiz;
|
||
|
HWND hCFlags;
|
||
|
HWND hIncDirs;
|
||
|
};
|
||
|
|
||
|
class CZipDlg : public CDlgBase
|
||
|
{
|
||
|
public:
|
||
|
CZipDlg();
|
||
|
virtual ~CZipDlg();
|
||
|
|
||
|
virtual LRESULT CALLBACK CDlgProc(UINT Message, WPARAM wParam, LPARAM lParam);
|
||
|
BOOL OnInitDialog(HWND hwndFocus, LPARAM lInitParam);
|
||
|
BOOL OnCommand(WORD wNotifyCode, WORD wID, HWND hwndCtl);
|
||
|
|
||
|
protected:
|
||
|
|
||
|
private:
|
||
|
CProject *pProject;
|
||
|
CMakefile *pMakefile;
|
||
|
HWND hZipDir;
|
||
|
HWND hZipFlags;
|
||
|
};
|
||
|
|
||
|
class CLinkerDlg : public CDlgBase
|
||
|
{
|
||
|
public:
|
||
|
CLinkerDlg();
|
||
|
virtual ~CLinkerDlg();
|
||
|
|
||
|
virtual LRESULT CALLBACK CDlgProc(UINT Message, WPARAM wParam, LPARAM lParam);
|
||
|
BOOL OnInitDialog(HWND hwndFocus, LPARAM lInitParam);
|
||
|
BOOL OnCommand(WORD wNotifyCode, WORD wID, HWND hwndCtl);
|
||
|
|
||
|
protected:
|
||
|
|
||
|
private:
|
||
|
CProject *pProject;
|
||
|
CMakefile *pMakefile;
|
||
|
HWND hLdStrip;
|
||
|
HWND hLdOpts;
|
||
|
HWND hLdLibs;
|
||
|
HWND hLibsDirs;
|
||
|
};
|
||
|
|
||
|
class COptionsDlg : public CTabbedDlg
|
||
|
{
|
||
|
public:
|
||
|
COptionsDlg();
|
||
|
virtual ~COptionsDlg();
|
||
|
|
||
|
BOOL EndDlg(int nResult);
|
||
|
virtual LRESULT CALLBACK CDlgProc(UINT Message, WPARAM wParam, LPARAM lParam);
|
||
|
BOOL OnInitDialog(HWND hwndFocus, LPARAM lInitParam);
|
||
|
BOOL OnCommand(WORD wNotifyCode, WORD wID, HWND hwndCtl);
|
||
|
|
||
|
protected:
|
||
|
|
||
|
private:
|
||
|
CProject *pProject;
|
||
|
CMakefile *pMakefile;
|
||
|
CGeneralDlg GeneralDlg;
|
||
|
CCompilerDlg CompilerDlg;
|
||
|
CLinkerDlg LinkerDlg;
|
||
|
CZipDlg ZipDlg;
|
||
|
};
|
||
|
|
||
|
class CNewModuleDlg : public CDlgBase
|
||
|
{
|
||
|
public:
|
||
|
CNewModuleDlg();
|
||
|
virtual ~CNewModuleDlg();
|
||
|
|
||
|
virtual LRESULT CALLBACK CDlgProc(UINT Message, WPARAM wParam, LPARAM lParam);
|
||
|
|
||
|
protected:
|
||
|
|
||
|
private:
|
||
|
CProject *pProject;
|
||
|
};
|
||
|
|
||
|
class CCompiler : public CIniFile
|
||
|
{
|
||
|
public:
|
||
|
CCompiler();
|
||
|
~CCompiler();
|
||
|
|
||
|
bool LoadData(char * fullpath);
|
||
|
|
||
|
char make[64];
|
||
|
|
||
|
char cc[16];
|
||
|
char cFlags[64];
|
||
|
char ldFlags[64];
|
||
|
char wres[16];
|
||
|
|
||
|
char debug[16];
|
||
|
char test[16];
|
||
|
|
||
|
protected:
|
||
|
|
||
|
private:
|
||
|
};
|
||
|
|
||
|
class CMakefile
|
||
|
{
|
||
|
public:
|
||
|
CMakefile();
|
||
|
~CMakefile();
|
||
|
|
||
|
void Init(void);
|
||
|
bool SwitchCurrentDir(void);
|
||
|
void GetFullPath(char * prjFileName, WORD offset, char * name);
|
||
|
void Build(CProjectView * Tree, CProcess* Process);
|
||
|
void SrcList2Buffers(CProjectView * Tree);
|
||
|
void Write(void);
|
||
|
|
||
|
// File.
|
||
|
char szFileName[MAX_PATH];
|
||
|
WORD nFileOffset;
|
||
|
char mkfDir[MAX_PATH];
|
||
|
|
||
|
// Compiler dependent.
|
||
|
char cc[4];
|
||
|
char make[64];
|
||
|
char wres[16];
|
||
|
char test[16];
|
||
|
|
||
|
char target[64];
|
||
|
char tgtDir[MAX_PATH];
|
||
|
UINT buildWhat;
|
||
|
bool debug;
|
||
|
UINT lang;
|
||
|
|
||
|
// Compiler data.
|
||
|
char cppFlags[256];
|
||
|
char warning[64];
|
||
|
char optimize[64];
|
||
|
char cFlags[64];
|
||
|
char incDirs[256];
|
||
|
|
||
|
// Linker data.
|
||
|
char ldStrip[32];
|
||
|
char ldOpts[64];
|
||
|
char ldLibs[64];
|
||
|
char libDirs[256];
|
||
|
|
||
|
// Archiver.
|
||
|
char arFlags[64];
|
||
|
|
||
|
protected:
|
||
|
|
||
|
private:
|
||
|
// Buffers.
|
||
|
char objFile[64];
|
||
|
char srcBuf [1024];
|
||
|
char objBuf [1024];
|
||
|
char resBuf [1024];
|
||
|
char depBuf [256];
|
||
|
};
|
||
|
|
||
|
class CProject //: public CIniFile
|
||
|
{
|
||
|
public:
|
||
|
CProject();
|
||
|
~CProject();
|
||
|
|
||
|
bool NoProject(void);
|
||
|
int CloseDecision(void);
|
||
|
bool New(char * fileName, WORD fileOffset);
|
||
|
bool Open(char * fileName, WORD fileOffset);
|
||
|
|
||
|
bool RelativeToAbsolute(char * relativePath);
|
||
|
bool AddFiles(void);
|
||
|
|
||
|
bool OptionsDlg(void);
|
||
|
bool NewModuleDlg(void);
|
||
|
bool NewModule(char * srcFile, bool createHeader);
|
||
|
|
||
|
void ZipSrcs(void);
|
||
|
void Explore(HWND hwnd);
|
||
|
|
||
|
void Build(void);
|
||
|
void RebuildAll(void);
|
||
|
void RunTarget(void);
|
||
|
void MakeClean(void);
|
||
|
void BuildMakefile(void);
|
||
|
|
||
|
bool SwitchCurrentDir(void);
|
||
|
|
||
|
CMakefile Makefile;
|
||
|
|
||
|
/* May be private members */
|
||
|
int numFiles;
|
||
|
bool loaded;
|
||
|
bool modified;
|
||
|
bool buildMakefile;
|
||
|
int SavePrjFile(int decision);
|
||
|
|
||
|
char szFileName[MAX_PATH];
|
||
|
WORD nFileOffset;
|
||
|
WORD nFileExtension;
|
||
|
char szDirBuffer[MAX_PATH];
|
||
|
|
||
|
char zipDir[MAX_PATH];
|
||
|
char zipFlags[256];
|
||
|
|
||
|
char compilerName[64];
|
||
|
|
||
|
protected:
|
||
|
|
||
|
private:
|
||
|
void Reset();
|
||
|
|
||
|
CIniFile PrjFile;
|
||
|
COptionsDlg _OptionsDlg;
|
||
|
CNewModuleDlg _NewModuleDlg;
|
||
|
|
||
|
int prjVer;
|
||
|
};
|
||
|
|
||
|
#endif
|