mirror of
https://github.com/celisej567/source-engine.git
synced 2026-01-05 22:09:59 +03:00
1
This commit is contained in:
77
utils/valvelib/chooser.cpp
Normal file
77
utils/valvelib/chooser.cpp
Normal file
@@ -0,0 +1,77 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//
|
||||
//=============================================================================//
|
||||
// chooser.cpp : Implements the CDialogChooser class
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "valvelib.h"
|
||||
#include "chooser.h"
|
||||
#include "cstm1dlg.h"
|
||||
|
||||
#ifdef _PSEUDO_DEBUG
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
// On construction, set up internal array with pointers to each step.
|
||||
CDialogChooser::CDialogChooser()
|
||||
{
|
||||
m_pDlgs[0] = NULL;
|
||||
|
||||
m_pDlgs[1] = new CCustom1Dlg;
|
||||
|
||||
m_nCurrDlg = 0;
|
||||
}
|
||||
// Remember where the custom steps begin, so we can delete them in
|
||||
// the destructor
|
||||
#define FIRST_CUSTOM_STEP 1
|
||||
#define LAST_CUSTOM_STEP 1
|
||||
|
||||
// The destructor deletes entries in the internal array corresponding to
|
||||
// custom steps.
|
||||
CDialogChooser::~CDialogChooser()
|
||||
{
|
||||
for (int i = FIRST_CUSTOM_STEP; i <= LAST_CUSTOM_STEP; i++)
|
||||
{
|
||||
ASSERT(m_pDlgs[i] != NULL);
|
||||
delete m_pDlgs[i];
|
||||
}
|
||||
}
|
||||
|
||||
// Use the internal array to determine the next step.
|
||||
CAppWizStepDlg* CDialogChooser::Next(CAppWizStepDlg* pDlg)
|
||||
{
|
||||
ASSERT(0 <= m_nCurrDlg && m_nCurrDlg < LAST_DLG);
|
||||
ASSERT(pDlg == m_pDlgs[m_nCurrDlg]);
|
||||
|
||||
m_nCurrDlg++;
|
||||
|
||||
// Force the custom dialog to re-figire out stuff when we enter it...
|
||||
// if (m_nCurrDlg == 1)
|
||||
// {
|
||||
// (CCustom1Dlg*)m_pDlgs[1]->Refresh
|
||||
// }
|
||||
|
||||
return m_pDlgs[m_nCurrDlg];
|
||||
}
|
||||
|
||||
// Use the internal array to determine the previous step.
|
||||
CAppWizStepDlg* CDialogChooser::Back(CAppWizStepDlg* pDlg)
|
||||
{
|
||||
ASSERT(1 <= m_nCurrDlg && m_nCurrDlg <= LAST_DLG);
|
||||
ASSERT(pDlg == m_pDlgs[m_nCurrDlg]);
|
||||
|
||||
m_nCurrDlg--;
|
||||
|
||||
// Force the custom dialog to re-figire out stuff when we enter it...
|
||||
if (m_nCurrDlg == 1)
|
||||
{
|
||||
}
|
||||
|
||||
return m_pDlgs[m_nCurrDlg];
|
||||
}
|
||||
41
utils/valvelib/chooser.h
Normal file
41
utils/valvelib/chooser.h
Normal file
@@ -0,0 +1,41 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//
|
||||
//=============================================================================//
|
||||
#if !defined(AFX_CHOOSER_H__132A47A9_C09B_41B3_9222_861583CB901A__INCLUDED_)
|
||||
#define AFX_CHOOSER_H__132A47A9_C09B_41B3_9222_861583CB901A__INCLUDED_
|
||||
|
||||
// chooser.h : declaration of the CDialogChooser class
|
||||
// This class keeps track of what dialogs to pop up when.
|
||||
|
||||
#define LAST_DLG 1
|
||||
|
||||
class CDialogChooser
|
||||
{
|
||||
public:
|
||||
CDialogChooser();
|
||||
~CDialogChooser();
|
||||
|
||||
// All calls by mfcapwz.dll to CValvelibAppWiz::Next
|
||||
// & CValvelibAppWiz::Back are delegated to these member
|
||||
// functions, which keep track of what dialog is up
|
||||
// now, and what to pop up next.
|
||||
CAppWizStepDlg* Next(CAppWizStepDlg* pDlg);
|
||||
CAppWizStepDlg* Back(CAppWizStepDlg* pDlg);
|
||||
|
||||
protected:
|
||||
// Current step's index into the internal array m_pDlgs
|
||||
int m_nCurrDlg;
|
||||
|
||||
// Internal array of pointers to the steps
|
||||
CAppWizStepDlg* m_pDlgs[LAST_DLG + 1];
|
||||
};
|
||||
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_CHOOSER_H__132A47A9_C09B_41B3_9222_861583CB901A__INCLUDED_)
|
||||
396
utils/valvelib/cstm1dlg.cpp
Normal file
396
utils/valvelib/cstm1dlg.cpp
Normal file
@@ -0,0 +1,396 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//
|
||||
//=============================================================================//
|
||||
// cstm1dlg.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "valvelib.h"
|
||||
#include "cstm1dlg.h"
|
||||
#include "valvelibaw.h"
|
||||
|
||||
#ifdef _PSEUDO_DEBUG
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CCustom1Dlg dialog
|
||||
|
||||
|
||||
CCustom1Dlg::CCustom1Dlg()
|
||||
: CAppWizStepDlg(CCustom1Dlg::IDD)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CCustom1Dlg)
|
||||
m_RootPath = _T("");
|
||||
m_TargetPath = _T("");
|
||||
m_ProjectType = -1;
|
||||
m_ToolProject = FALSE;
|
||||
m_ImplibPath = _T("");
|
||||
m_PublicProject = FALSE;
|
||||
m_ConsoleApp = FALSE;
|
||||
m_PublishImportLib = FALSE;
|
||||
m_SrcPath = _T("");
|
||||
//}}AFX_DATA_INIT
|
||||
|
||||
m_ProjectType = 0;
|
||||
m_PublicProject = TRUE;
|
||||
m_SrcPath = "src";
|
||||
}
|
||||
|
||||
|
||||
void CCustom1Dlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
if (pDX->m_bSaveAndValidate == 0)
|
||||
{
|
||||
// Refresh the paths based on project information...
|
||||
if (m_RootPath.GetLength() == 0)
|
||||
{
|
||||
if (!Valvelibaw.m_Dictionary.Lookup("FULL_DIR_PATH", m_RootPath))
|
||||
m_RootPath = "u:\\hl2\\";
|
||||
|
||||
m_RootPath.MakeLower();
|
||||
|
||||
m_ToolProject = (m_RootPath.Find( "util" ) >= 0);
|
||||
|
||||
int idx = m_RootPath.Find( m_SrcPath ); // look for src tree
|
||||
if (idx >= 0)
|
||||
{
|
||||
m_RootPath = m_RootPath.Left( idx );
|
||||
}
|
||||
|
||||
m_TargetPath = m_RootPath;
|
||||
m_TargetPath += m_SrcPath;
|
||||
m_TargetPath += "\\lib\\public\\";
|
||||
|
||||
m_ImplibPath = "unused";
|
||||
EnableCheckboxes();
|
||||
}
|
||||
}
|
||||
|
||||
CAppWizStepDlg::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CCustom1Dlg)
|
||||
DDX_Text(pDX, IDC_EDIT_ROOT_PATH, m_RootPath);
|
||||
DDX_Text(pDX, IDC_EDIT_TARGET_PATH, m_TargetPath);
|
||||
DDX_CBIndex(pDX, IDC_SELECT_PROJECT_TYPE, m_ProjectType);
|
||||
DDX_Check(pDX, IDC_CHECK_TOOL, m_ToolProject);
|
||||
DDX_Text(pDX, IDC_EDIT_IMPLIB_PATH, m_ImplibPath);
|
||||
DDX_Check(pDX, IDC_CHECK_PUBLIC, m_PublicProject);
|
||||
DDX_Check(pDX, IDC_CHECK_CONSOLE_APP, m_ConsoleApp);
|
||||
DDX_Check(pDX, IDC_CHECK_PUBLISH_IMPORT, m_PublishImportLib);
|
||||
DDX_Text(pDX, IDC_EDIT_SRC_PATH, m_SrcPath);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
static void FixupPath( CString& path )
|
||||
{
|
||||
int idx;
|
||||
idx = path.Find("/");
|
||||
while (idx >= 0)
|
||||
{
|
||||
path.SetAt(idx, '\\' );
|
||||
idx = path.Find("/");
|
||||
}
|
||||
|
||||
bool hasTerminatingSlash = ( path.Right(1).Find("\\") >= 0 );
|
||||
if (!hasTerminatingSlash)
|
||||
path += '\\';
|
||||
|
||||
path.MakeLower();
|
||||
}
|
||||
|
||||
static int CountSlashes( CString& path )
|
||||
{
|
||||
int count = 0;
|
||||
|
||||
int idx = path.Find("\\", 0);
|
||||
while (idx >= 0)
|
||||
{
|
||||
++count;
|
||||
idx = path.Find("\\", idx+1 );
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
bool CCustom1Dlg::ComputeRelativePath( )
|
||||
{
|
||||
if ( m_RootPath.GetAt(1) != ':' )
|
||||
{
|
||||
MessageBox( "Error! The root path must specify a drive!", "Bogus Root Path!", MB_ICONERROR | MB_OK );
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( m_TargetPath.GetAt(1) != ':' )
|
||||
{
|
||||
MessageBox( "Error! The target path must specify a drive!", "Bogus Target Path!", MB_ICONERROR | MB_OK );
|
||||
return false;
|
||||
}
|
||||
|
||||
CString sourcePath;
|
||||
if (!Valvelibaw.m_Dictionary.Lookup("FULL_DIR_PATH", sourcePath ))
|
||||
{
|
||||
MessageBox( "I can't seem to find the source path!??!", "Umm... Get Brian", MB_ICONERROR | MB_OK );
|
||||
return false;
|
||||
}
|
||||
|
||||
FixupPath( m_RootPath );
|
||||
FixupPath( m_TargetPath );
|
||||
FixupPath( sourcePath );
|
||||
|
||||
CString srcRootPath = m_RootPath;
|
||||
srcRootPath += m_SrcPath;
|
||||
srcRootPath += "\\";
|
||||
FixupPath( srcRootPath );
|
||||
|
||||
if (sourcePath.Find( srcRootPath ) != 0)
|
||||
{
|
||||
MessageBox( "Error! The source path must lie under the root source path!", "Bogus Root Path!", MB_ICONERROR | MB_OK );
|
||||
return false;
|
||||
}
|
||||
|
||||
if (m_TargetPath.Find( m_RootPath ) != 0)
|
||||
{
|
||||
MessageBox( "Error! The target path must lie under the root path!", "Bogus Target Path!", MB_ICONERROR | MB_OK );
|
||||
return false;
|
||||
}
|
||||
|
||||
int rootLen = m_RootPath.GetLength();
|
||||
int rootSrcLen = srcRootPath.GetLength();
|
||||
int sourceLen = sourcePath.GetLength();
|
||||
int targetLen = m_TargetPath.GetLength();
|
||||
CString relativePath = m_TargetPath.Right( targetLen - rootLen );
|
||||
|
||||
// Now that we've got the relative source path,
|
||||
// find out how many slashes are in it;
|
||||
// that'll tell us how many paths to back up....
|
||||
int i;
|
||||
CString relativeSourcePath = sourcePath.Right( sourceLen - rootLen );
|
||||
int numSlashes = CountSlashes(relativeSourcePath);
|
||||
CString targetRelativePath;
|
||||
for ( i = 0; i < numSlashes; ++i )
|
||||
{
|
||||
targetRelativePath += "..\\";
|
||||
}
|
||||
|
||||
// Now that we've got the relative source path,
|
||||
// find out how many slashes are in it;
|
||||
// that'll tell us how many paths to back up....
|
||||
CString rootSrcToProj = sourcePath.Right( sourceLen - rootSrcLen );
|
||||
numSlashes = CountSlashes(rootSrcToProj);
|
||||
CString projToRootSrc;
|
||||
for ( i = 0; i < numSlashes; ++i )
|
||||
{
|
||||
projToRootSrc += "..\\";
|
||||
}
|
||||
|
||||
Valvelibaw.m_Dictionary["VALVE_ROOT_RELATIVE_PATH"] = targetRelativePath;
|
||||
Valvelibaw.m_Dictionary["VALVE_SRC_RELATIVE_PATH"] = projToRootSrc;
|
||||
targetRelativePath += relativePath;
|
||||
Valvelibaw.m_Dictionary["VALVE_ROOT_PATH"] = m_RootPath;
|
||||
Valvelibaw.m_Dictionary["VALVE_ROOT_SRC_PATH"] = srcRootPath;
|
||||
Valvelibaw.m_Dictionary["VALVE_TARGET_PATH"] = m_TargetPath;
|
||||
Valvelibaw.m_Dictionary["VALVE_RELATIVE_PATH"] = targetRelativePath;
|
||||
|
||||
if (m_ToolProject)
|
||||
Valvelibaw.m_Dictionary["VALVE_TOOL"] = "1";
|
||||
if (m_PublicProject && (m_ProjectType != 2))
|
||||
Valvelibaw.m_Dictionary["VALVE_PUBLIC_PROJECT"] = "1";
|
||||
if (m_PublishImportLib && (m_ProjectType == 1))
|
||||
Valvelibaw.m_Dictionary["VALVE_PUBLISH_IMPORT_LIB"] = "1";
|
||||
|
||||
// Import libraries
|
||||
if (m_ProjectType == 1)
|
||||
{
|
||||
if ( m_ImplibPath.GetAt(1) != ':' )
|
||||
{
|
||||
MessageBox( "Error! The import library path must specify a drive!", "Bogus Import Library Path!", MB_ICONERROR | MB_OK );
|
||||
return false;
|
||||
}
|
||||
|
||||
if (m_ImplibPath.Find( srcRootPath ) != 0)
|
||||
{
|
||||
MessageBox( "Error! The import library path must lie under the root src path!", "Bogus Target Path!", MB_ICONERROR | MB_OK );
|
||||
return false;
|
||||
}
|
||||
|
||||
int implibLen = m_ImplibPath.GetLength();
|
||||
relativePath = m_ImplibPath.Right( implibLen - rootSrcLen );
|
||||
int numSlashes = CountSlashes(rootSrcToProj);
|
||||
CString implibRelativePath;
|
||||
for (int i = 0; i < numSlashes; ++i )
|
||||
{
|
||||
implibRelativePath += "..\\";
|
||||
}
|
||||
implibRelativePath += relativePath;
|
||||
|
||||
Valvelibaw.m_Dictionary["VALVE_IMPLIB_PATH"] = m_ImplibPath;
|
||||
Valvelibaw.m_Dictionary["VALVE_IMPLIB_RELATIVE_PATH"] = implibRelativePath;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// This is called whenever the user presses Next, Back, or Finish with this step
|
||||
// present. Do all validation & data exchange from the dialog in this function.
|
||||
BOOL CCustom1Dlg::OnDismiss()
|
||||
{
|
||||
if (!UpdateData(TRUE))
|
||||
return FALSE;
|
||||
|
||||
if (!ComputeRelativePath())
|
||||
return FALSE;
|
||||
|
||||
switch( m_ProjectType )
|
||||
{
|
||||
case 0:
|
||||
Valvelibaw.m_Dictionary["VALVE_TARGET_TYPE"] = "lib";
|
||||
Valvelibaw.m_Dictionary["PROJTYPE_LIB"] = "1";
|
||||
break;
|
||||
|
||||
case 1:
|
||||
Valvelibaw.m_Dictionary["VALVE_TARGET_TYPE"] = "dll";
|
||||
Valvelibaw.m_Dictionary["PROJTYPE_DLL"] = "1";
|
||||
break;
|
||||
|
||||
case 2:
|
||||
Valvelibaw.m_Dictionary["VALVE_TARGET_TYPE"] = "exe";
|
||||
|
||||
if (m_ConsoleApp)
|
||||
{
|
||||
Valvelibaw.m_Dictionary["PROJTYPE_CON"] = "1";
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return TRUE; // return FALSE if the dialog shouldn't be dismissed
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CCustom1Dlg, CAppWizStepDlg)
|
||||
//{{AFX_MSG_MAP(CCustom1Dlg)
|
||||
ON_CBN_SELCHANGE(IDC_SELECT_PROJECT_TYPE, OnSelchangeSelectProjectType)
|
||||
ON_EN_CHANGE(IDC_EDIT_ROOT_PATH, OnChangeEditRootPath)
|
||||
ON_BN_CLICKED(IDC_CHECK_PUBLIC, OnCheckPublic)
|
||||
ON_BN_CLICKED(IDC_CHECK_TOOL, OnCheckTool)
|
||||
ON_BN_CLICKED(IDC_CHECK_PUBLISH_IMPORT, OnCheckPublishImport)
|
||||
ON_EN_CHANGE(IDC_EDIT_SRC_PATH, OnChangeEditSrcPath)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CCustom1Dlg message handlers
|
||||
|
||||
void CCustom1Dlg::RecomputeTargetPath()
|
||||
{
|
||||
bool hasTerminatingSlash = ( m_RootPath.Right(1).FindOneOf("\\/") >= 0 );
|
||||
|
||||
m_TargetPath = m_RootPath;
|
||||
if (!hasTerminatingSlash)
|
||||
m_TargetPath += '\\';
|
||||
m_ImplibPath = m_TargetPath;
|
||||
|
||||
switch( m_ProjectType )
|
||||
{
|
||||
case 0:
|
||||
// static library
|
||||
m_TargetPath += m_SrcPath;
|
||||
m_TargetPath += m_PublicProject ? "\\lib\\public\\" : "\\lib\\common\\";
|
||||
m_ImplibPath = "unused";
|
||||
break;
|
||||
|
||||
case 1:
|
||||
m_TargetPath += "bin\\";
|
||||
m_ImplibPath += m_SrcPath;
|
||||
m_ImplibPath += m_PublicProject ? "\\lib\\public\\" : "\\lib\\common\\";
|
||||
break;
|
||||
|
||||
case 2:
|
||||
m_TargetPath += "bin\\";
|
||||
m_ImplibPath = "unused";
|
||||
break;
|
||||
}
|
||||
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
void CCustom1Dlg::EnableCheckboxes()
|
||||
{
|
||||
CWnd* pConsoleApp = GetDlgItem(IDC_CHECK_CONSOLE_APP);
|
||||
CWnd* pPublishImport = GetDlgItem(IDC_CHECK_PUBLISH_IMPORT);
|
||||
CWnd* pImportLib = GetDlgItem(IDC_EDIT_IMPLIB_PATH);
|
||||
switch (m_ProjectType)
|
||||
{
|
||||
case 0:
|
||||
pConsoleApp->EnableWindow( false );
|
||||
pPublishImport->EnableWindow( false );
|
||||
pImportLib->EnableWindow( false );
|
||||
break;
|
||||
|
||||
case 1:
|
||||
pConsoleApp->EnableWindow( false );
|
||||
pPublishImport->EnableWindow( true );
|
||||
pImportLib->EnableWindow( m_PublishImportLib );
|
||||
break;
|
||||
|
||||
case 2:
|
||||
pConsoleApp->EnableWindow( true );
|
||||
pPublishImport->EnableWindow( false );
|
||||
pImportLib->EnableWindow( false );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CCustom1Dlg::OnSelchangeSelectProjectType()
|
||||
{
|
||||
if (!UpdateData(TRUE))
|
||||
return;
|
||||
|
||||
RecomputeTargetPath();
|
||||
EnableCheckboxes();
|
||||
}
|
||||
|
||||
void CCustom1Dlg::OnChangeEditRootPath()
|
||||
{
|
||||
if (!UpdateData(TRUE))
|
||||
return;
|
||||
|
||||
RecomputeTargetPath();
|
||||
}
|
||||
|
||||
void CCustom1Dlg::OnCheckPublic()
|
||||
{
|
||||
if (!UpdateData(TRUE))
|
||||
return;
|
||||
|
||||
RecomputeTargetPath();
|
||||
}
|
||||
|
||||
void CCustom1Dlg::OnCheckTool()
|
||||
{
|
||||
if (!UpdateData(TRUE))
|
||||
return;
|
||||
|
||||
RecomputeTargetPath();
|
||||
}
|
||||
|
||||
void CCustom1Dlg::OnCheckPublishImport()
|
||||
{
|
||||
if (!UpdateData(TRUE))
|
||||
return;
|
||||
|
||||
EnableCheckboxes();
|
||||
}
|
||||
|
||||
void CCustom1Dlg::OnChangeEditSrcPath()
|
||||
{
|
||||
if (!UpdateData(TRUE))
|
||||
return;
|
||||
|
||||
RecomputeTargetPath();
|
||||
}
|
||||
69
utils/valvelib/cstm1dlg.h
Normal file
69
utils/valvelib/cstm1dlg.h
Normal file
@@ -0,0 +1,69 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//
|
||||
//=============================================================================//
|
||||
#if !defined(AFX_CSTM1DLG_H__F9EAE5A1_5043_41B1_80CA_495CB6723480__INCLUDED_)
|
||||
#define AFX_CSTM1DLG_H__F9EAE5A1_5043_41B1_80CA_495CB6723480__INCLUDED_
|
||||
|
||||
// cstm1dlg.h : header file
|
||||
//
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CCustom1Dlg dialog
|
||||
|
||||
class CCustom1Dlg : public CAppWizStepDlg
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CCustom1Dlg();
|
||||
virtual BOOL OnDismiss();
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CCustom1Dlg)
|
||||
enum { IDD = IDD_CUSTOM1 };
|
||||
CString m_RootPath;
|
||||
CString m_TargetPath;
|
||||
int m_ProjectType;
|
||||
BOOL m_ToolProject;
|
||||
CString m_ImplibPath;
|
||||
BOOL m_PublicProject;
|
||||
BOOL m_ConsoleApp;
|
||||
BOOL m_PublishImportLib;
|
||||
CString m_SrcPath;
|
||||
//}}AFX_DATA
|
||||
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CCustom1Dlg)
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CCustom1Dlg)
|
||||
afx_msg void OnSelchangeSelectProjectType();
|
||||
afx_msg void OnChangeEditRootPath();
|
||||
afx_msg void OnCheckPublic();
|
||||
afx_msg void OnCheckTool();
|
||||
afx_msg void OnCheckPublishImport();
|
||||
afx_msg void OnChangeEditSrcPath();
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
private:
|
||||
void RecomputeTargetPath();
|
||||
bool ComputeRelativePath( );
|
||||
void EnableCheckboxes();
|
||||
};
|
||||
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_CSTM1DLG_H__F9EAE5A1_5043_41B1_80CA_495CB6723480__INCLUDED_)
|
||||
87
utils/valvelib/debug.cpp
Normal file
87
utils/valvelib/debug.cpp
Normal file
@@ -0,0 +1,87 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//
|
||||
//=============================================================================//
|
||||
#include "stdafx.h"
|
||||
|
||||
#ifdef _PSEUDO_DEBUG // entire file
|
||||
|
||||
#ifdef _PSEUDO_DEBUG
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
LONG AssertBusy = -1;
|
||||
LONG AssertReallyBusy = -1;
|
||||
|
||||
BOOL AssertFailedLine(LPCSTR lpszFileName, int nLine)
|
||||
{
|
||||
TCHAR szMessage[_MAX_PATH*2];
|
||||
|
||||
InterlockedDecrement(&AssertReallyBusy);
|
||||
|
||||
// format message into buffer
|
||||
wsprintf(szMessage, _T("File %hs, Line %d"),
|
||||
lpszFileName, nLine);
|
||||
|
||||
TCHAR szT[_MAX_PATH*2 + 20];
|
||||
wsprintf(szT, _T("Assertion Failed: %s\n"), szMessage);
|
||||
OutputDebugString(szT);
|
||||
|
||||
if (InterlockedIncrement(&AssertBusy) > 0)
|
||||
{
|
||||
InterlockedDecrement(&AssertBusy);
|
||||
|
||||
// assert within assert (examine call stack to determine first one)
|
||||
DebugBreak();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// active popup window for the current thread
|
||||
HWND hWndParent = GetActiveWindow();
|
||||
if (hWndParent != NULL)
|
||||
hWndParent = GetLastActivePopup(hWndParent);
|
||||
|
||||
// display the assert
|
||||
int nCode = ::MessageBox(hWndParent, szMessage, _T("Assertion Failed!"),
|
||||
MB_TASKMODAL|MB_ICONHAND|MB_ABORTRETRYIGNORE|MB_SETFOREGROUND);
|
||||
|
||||
// cleanup
|
||||
InterlockedDecrement(&AssertBusy);
|
||||
|
||||
if (nCode == IDIGNORE)
|
||||
return FALSE; // ignore
|
||||
|
||||
if (nCode == IDRETRY)
|
||||
return TRUE; // will cause DebugBreak
|
||||
|
||||
AfxAbort(); // should not return (but otherwise DebugBreak)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void Trace(LPCTSTR lpszFormat, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, lpszFormat);
|
||||
|
||||
int nBuf;
|
||||
TCHAR szBuffer[512];
|
||||
|
||||
nBuf = _vstprintf(szBuffer, lpszFormat, args);
|
||||
ASSERT(nBuf < (sizeof(szBuffer)/sizeof(szBuffer[0])));
|
||||
|
||||
CString strMessage;
|
||||
|
||||
if (AfxGetApp() != NULL)
|
||||
strMessage = ((CString) (AfxGetApp()->m_pszExeName)) + _T(": ");
|
||||
strMessage += szBuffer;
|
||||
OutputDebugString(strMessage);
|
||||
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
|
||||
#endif // _PSEUDO_DEBUG
|
||||
63
utils/valvelib/debug.h
Normal file
63
utils/valvelib/debug.h
Normal file
@@ -0,0 +1,63 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//
|
||||
//=============================================================================//
|
||||
#if !defined(AFX_DEBUG_H__D402C9F7_EF9A_4182_B9BE_F92F1ABB99EF__INCLUDED_)
|
||||
#define AFX_DEBUG_H__D402C9F7_EF9A_4182_B9BE_F92F1ABB99EF__INCLUDED_
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Diagnostic support
|
||||
|
||||
#ifdef _PSEUDO_DEBUG
|
||||
|
||||
#undef TRACE
|
||||
#undef VERIFY
|
||||
#undef ASSERT
|
||||
#undef THIS_FILE
|
||||
#undef TRACE0
|
||||
#undef TRACE1
|
||||
#undef TRACE2
|
||||
#undef TRACE3
|
||||
|
||||
|
||||
// Note: file names are still ANSI strings (filenames rarely need UNICODE)
|
||||
BOOL AssertFailedLine(LPCSTR lpszFileName, int nLine);
|
||||
|
||||
void Trace(PRINTF_FORMAT_STRING LPCTSTR lpszFormat, ...);
|
||||
|
||||
// by default, debug break is asm int 3, or a call to DebugBreak, or nothing
|
||||
#if defined(_M_IX86)
|
||||
#define CustomDebugBreak() _asm { int 3 }
|
||||
#else
|
||||
#define CustomDebugBreak() DebugBreak()
|
||||
#endif
|
||||
|
||||
#define TRACE ::Trace
|
||||
#define THIS_FILE __FILE__
|
||||
#define ASSERT(f) \
|
||||
do \
|
||||
{ \
|
||||
if (!(f) && AssertFailedLine(THIS_FILE, __LINE__)) \
|
||||
CustomDebugBreak(); \
|
||||
} while (0) \
|
||||
|
||||
#define VERIFY(f) ASSERT(f)
|
||||
|
||||
// The following trace macros are provided for backward compatiblity
|
||||
// (they also take a fixed number of parameters which provides
|
||||
// some amount of extra error checking)
|
||||
#define TRACE0(sz) ::Trace(_T(sz))
|
||||
#define TRACE1(sz, p1) ::Trace(_T(sz), p1)
|
||||
#define TRACE2(sz, p1, p2) ::Trace(_T(sz), p1, p2)
|
||||
#define TRACE3(sz, p1, p2, p3) ::Trace(_T(sz), p1, p2, p3)
|
||||
|
||||
#endif // !_PSEUDO_DEBUG
|
||||
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_DEBUG_H__D402C9F7_EF9A_4182_B9BE_F92F1ABB99EF__INCLUDED_)
|
||||
13
utils/valvelib/hlp/valvelib.hpj
Normal file
13
utils/valvelib/hlp/valvelib.hpj
Normal file
@@ -0,0 +1,13 @@
|
||||
[OPTIONS]
|
||||
TITLE=VALVELIB AppWizard Help
|
||||
COMPRESS=true
|
||||
WARNING=2
|
||||
HLP=valvelib.HLP
|
||||
ERRORLOG=valvelib.LOG
|
||||
|
||||
[FILES]
|
||||
valvelib.rtf
|
||||
|
||||
[MAP]
|
||||
#include <C:\Program Files\Microsoft Visual Studio\VC98\MFC\include\afxhelp.hm>
|
||||
#include <valvelib.hm>
|
||||
23
utils/valvelib/hlp/valvelib.rtf
Normal file
23
utils/valvelib/hlp/valvelib.rtf
Normal file
@@ -0,0 +1,23 @@
|
||||
{\rtf1\ansi \deff4\deflang1033{\fonttbl{\f2\fswiss\fcharset0\fprq2 Helv;}{\f4\froman\fcharset0\fprq2 Times New Roman;}{\f7\fswiss\fcharset0\fprq2 MS Sans Serif;}{\f9\fswiss\fcharset0\fprq2 Helvetica;}}
|
||||
{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;
|
||||
\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\nowidctlpar \f4\fs20 \snext0 Normal;}{\s1\sb240\nowidctlpar \b\f2\ul \sbasedon0\snext0 heading 1;}{\s2\sb120\nowidctlpar
|
||||
\b\f2 \sbasedon0\snext0 heading 2;}{\s3\li360\nowidctlpar \b\f4 \sbasedon0\snext17 heading 3;}{\s4\li360\nowidctlpar \f4\ul \sbasedon0\snext17 heading 4;}{\s5\li720\nowidctlpar \b\f4\fs20 \sbasedon0\snext17 heading 5;}{\s6\li720\nowidctlpar \f4\fs20\ul
|
||||
\sbasedon0\snext17 heading 6;}{\s7\li720\nowidctlpar \i\f4\fs20 \sbasedon0\snext17 heading 7;}{\s8\li720\nowidctlpar \i\f4\fs20 \sbasedon0\snext17 heading 8;}{\s9\li720\nowidctlpar \i\f4\fs20 \sbasedon0\snext17 heading 9;}{\*\cs10 \additive
|
||||
Default Paragraph Font;}{\*\cs15 \additive\fs16\up6\lang1033 \sbasedon10 footnote reference;}{\s16\nowidctlpar \f4\fs20 \sbasedon0\snext16 footnote text;}{\s17\li720\nowidctlpar \f4\fs20 \sbasedon0\snext17 Normal Indent;}{
|
||||
\s18\fi-240\li480\sb80\nowidctlpar\tx480 \f9 \sbasedon0\snext18 nscba;}{\s19\fi-240\li240\sa20\nowidctlpar \f9 \sbasedon0\snext19 j;}{\s20\li480\sa20\nowidctlpar \f9 \sbasedon0\snext20 ij;}{\s21\sb80\sa20\nowidctlpar \f9 \sbasedon0\snext21 btb;}{
|
||||
\s22\fi-240\li2400\sb20\sa20\nowidctlpar \f9\fs20 \sbasedon0\snext22 ctcb;}{\s23\fi-240\li480\sa40\nowidctlpar\tx480 \f9 \sbasedon0\snext23 ns;}{\s24\sa120\nowidctlpar \f9\fs28 \sbasedon0\snext24 TT;}{\s25\fi-240\li2400\sa20\nowidctlpar \f9
|
||||
\sbasedon0\snext25 crtj;}{\s26\fi-240\li480\nowidctlpar\tx480 \f9 \sbasedon0\snext26 nsca;}{\s27\sa20\nowidctlpar \f9 \sbasedon0\snext27 bt;}{\s28\li240\sb120\sa40\nowidctlpar \f9 \sbasedon0\snext28 Hf;}{\s29\li240\sb120\sa40\nowidctlpar \f9
|
||||
\sbasedon0\snext29 Hs;}{\s30\li480\sb120\sa40\nowidctlpar \f9 \sbasedon0\snext30 RT;}{\s31\fi-2160\li2160\sb240\sa80\nowidctlpar\tx2160 \f9 \sbasedon0\snext31 c;}{\s32\li2160\sa20\nowidctlpar \f9 \sbasedon0\snext32 ct;}{\s33\li240\sa20\nowidctlpar \f9
|
||||
\sbasedon0\snext33 it;}{\s34\li480\nowidctlpar \f9\fs20 \sbasedon0\snext34 nsct;}{\s35\fi-160\li400\sb80\sa40\nowidctlpar \f9 \sbasedon0\snext35 nscb;}{\s36\fi-2640\li2880\sb120\sa40\nowidctlpar\brdrb\brdrs\brdrw15 \brdrbtw\brdrs\brdrw15 \tx2880 \f9
|
||||
\sbasedon0\snext36 HC2;}{\s37\fi-2640\li2880\sb120\sa20\nowidctlpar\tx2880 \f9 \sbasedon0\snext37 C2;}{\s38\fi-240\li2400\sa20\nowidctlpar \f9\fs20 \sbasedon0\snext38 ctc;}{\s39\li2160\sb160\nowidctlpar \f9 \sbasedon0\snext39 crt;}{
|
||||
\s40\li480\sb20\sa40\nowidctlpar \f9 \sbasedon0\snext40 or;}{\s41\fi-259\li360\sb40\sa40\nowidctlpar\tx360 \f7\fs20 \sbasedon0\snext41 Ln1;}{\s42\li115\sb80\sa80\nowidctlpar \f7\fs20 \sbasedon0\snext0 *Intro;}{\s43\li115\sb80\sa80\keepn\nowidctlpar \b\f7
|
||||
\sbasedon3\snext42 *Title;}{\s44\fi-245\li360\sb80\nowidctlpar \f7\fs20 \snext44 *Jl;}{\s45\li360\sb40\sa40\nowidctlpar \f7\fs20 \snext0 Lp1;}{\s46\fi-1800\li1915\sb60\sl-240\slmult0\nowidctlpar\tx1915 \f7\fs20 \sbasedon0\snext46 Tph;}{
|
||||
\s47\li115\sb120\sa80\nowidctlpar \b\f7\fs20 \snext41 Proch;}{\*\cs48 \additive\super \sbasedon10 endnote reference;}}{\info{\author David Broman}{\operator David Broman}{\creatim\yr1993\mo11\dy4\hr18\min38}{\revtim\yr1996\mo11\dy21\hr10\min34}{\version6}
|
||||
{\edmins1}{\nofpages2}{\nofwords16}{\nofchars92}{\*\company Microsoft Corp}{\vern57443}}\widowctrl\ftnbj\aenddoc\hyphcaps0 \fet0\sectd \linex0\endnhere {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2
|
||||
\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6
|
||||
\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang
|
||||
{\pntxtb (}{\pntxta )}}
|
||||
\pard\plain \sl240\slmult0\widctlpar \f4\fs20 {\cs15\fs16\up6 #{\footnote \pard\plain \sl240\slmult0\widctlpar \f4\fs20 {\cs15\fs16\up6 #} HIDD_CUSTOM1}}{\fs16\up6 }{\b\f2\fs24\up6 Custom Dialog 1}{\f2
|
||||
\par }\pard \widctlpar {\f2 << Write a topic here that discusses your custom AppWizard's step 1>>
|
||||
\par }\page
|
||||
\par }
|
||||
BIN
utils/valvelib/res/valvelib.ico
Normal file
BIN
utils/valvelib/res/valvelib.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 766 B |
34
utils/valvelib/resource.h
Normal file
34
utils/valvelib/resource.h
Normal file
@@ -0,0 +1,34 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//
|
||||
//=============================================================================//
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Developer Studio generated include file.
|
||||
// Used by valvelib.rc
|
||||
//
|
||||
#define IDI_VALVELIB 1
|
||||
#define IDD_CUSTOM1 129
|
||||
#define IDC_SELECT_PROJECT_TYPE 1003
|
||||
#define IDC_EDIT_ROOT_PATH 1004
|
||||
#define IDC_EDIT_IMPLIB_PATH 1005
|
||||
#define IDC_EDIT_TARGET_PATH 1007
|
||||
#define IDC_CHECK_TOOL 1008
|
||||
#define IDC_CHECK_PUBLIC 1009
|
||||
#define IDC_CHECK_PUBLISH_IMPORT 1010
|
||||
#define IDC_CHECK_CONSOLE_APP 1011
|
||||
#define IDC_EDIT_SRC_PATH 1012
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_3D_CONTROLS 1
|
||||
#define _APS_NEXT_RESOURCE_VALUE 119
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1010
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
13
utils/valvelib/stdafx.cpp
Normal file
13
utils/valvelib/stdafx.cpp
Normal file
@@ -0,0 +1,13 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//
|
||||
//=============================================================================//
|
||||
// stdafx.cpp : source file that includes just the standard includes
|
||||
// again.pch will be the pre-compiled header
|
||||
// stdafx.obj will contain the pre-compiled type information
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
29
utils/valvelib/stdafx.h
Normal file
29
utils/valvelib/stdafx.h
Normal file
@@ -0,0 +1,29 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//
|
||||
//=============================================================================//
|
||||
#if !defined(AFX_STDAFX_H__A934D779_67D2_4174_BDA7_785C0F0F4E7A__INCLUDED_)
|
||||
#define AFX_STDAFX_H__A934D779_67D2_4174_BDA7_785C0F0F4E7A__INCLUDED_
|
||||
|
||||
// stdafx.h : include file for standard system include files,
|
||||
// or project specific include files that are used frequently, but
|
||||
// are changed infrequently
|
||||
//
|
||||
|
||||
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
|
||||
|
||||
#include <afxwin.h> // MFC core and standard components
|
||||
#include <afxext.h> // MFC extensions
|
||||
#include <afxcmn.h> // MFC support for Windows 95 Common Controls
|
||||
#include "debug.h" // For ASSERT, VERIFY, and TRACE
|
||||
#include <customaw.h> // Custom AppWizard interface
|
||||
|
||||
#import "c:\Program Files\Microsoft Visual Studio\Common\MSDev98\bin\ide\devbld.pkg"
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_STDAFX_H__A934D779_67D2_4174_BDA7_785C0F0F4E7A__INCLUDED_)
|
||||
28
utils/valvelib/template/confirm.inf
Normal file
28
utils/valvelib/template/confirm.inf
Normal file
@@ -0,0 +1,28 @@
|
||||
About to create project $$root$$.$$VALVE_TARGET_TYPE$$:
|
||||
Located in $$FULL_DIR_PATH$$
|
||||
Target $$root$$.$$VALVE_TARGET_TYPE$$ will be copied into $$VALVE_TARGET_PATH$$
|
||||
$$IF(PROJTYPE_DLL)
|
||||
$$IF(VALVE_PUBLISH_IMPORT_LIB)
|
||||
Import library $$root$$.lib will be copied into $$VALVE_IMPLIB_PATH$$
|
||||
$$ENDIF
|
||||
$$ENDIF
|
||||
|
||||
$$IF(PROJTYPE_DLL || PROJTYPE_LIB)
|
||||
Creating directory $$VALVE_ROOT_SRC_PATH$$common\$$root$$
|
||||
$$IF(VALVE_PUBLIC_PROJECT)
|
||||
Creating directory $$VALVE_ROOT_SRC_PATH$$public\$$root$$
|
||||
$$ENDIF
|
||||
|
||||
Public Valve internal interfaces should be placed into
|
||||
$$VALVE_ROOT_SRC_PATH$$common\$$root$$
|
||||
|
||||
$$IF(VALVE_PUBLIC_PROJECT)
|
||||
Public Mod-visible interfaces should be placed into
|
||||
$$VALVE_ROOT_SRC_PATH$$public\$$root$$
|
||||
$$ENDIF
|
||||
$$ENDIF
|
||||
|
||||
$$IF(PROJTYPE_DLL)
|
||||
$$ROOT$$_DLL_EXPORT is defined for this project
|
||||
$$ENDIF
|
||||
|
||||
20
utils/valvelib/template/newproj.inf
Normal file
20
utils/valvelib/template/newproj.inf
Normal file
@@ -0,0 +1,20 @@
|
||||
$$// newproj.inf = template for list of template files
|
||||
$$// format is 'sourceResName' \t 'destFileName'
|
||||
$$// The source res name may be preceded by any combination of '=', '-', '!', '?', ':', '#', and/or '*'
|
||||
$$// '=' => the resource is binary
|
||||
$$// '-' => the file should not be added to the project (all files are added to the project by default)
|
||||
$$// '!' => the file should be marked exclude from build
|
||||
$$// '?' => the file should be treated as a help file
|
||||
$$// ':' => the file should be treated as a resource
|
||||
$$// '#' => the file should be treated as a template (implies '!')
|
||||
$$// '*' => bypass the custom AppWizard's resources when loading
|
||||
$$// if name starts with / => create new subdir
|
||||
|
||||
$$IF(PROJTYPE_DLL || PROJTYPE_LIB)
|
||||
/$$VALVE_SRC_RELATIVE_PATH$$common\$$root$$
|
||||
$$IF(VALVE_PUBLIC_PROJECT)
|
||||
/$$VALVE_SRC_RELATIVE_PATH$$public\$$root$$
|
||||
$$ENDIF
|
||||
$$ENDIF
|
||||
|
||||
|
||||
44
utils/valvelib/valvelib.clw
Normal file
44
utils/valvelib/valvelib.clw
Normal file
@@ -0,0 +1,44 @@
|
||||
; CLW file contains information for the MFC ClassWizard
|
||||
|
||||
[General Info]
|
||||
Version=1
|
||||
LastClass=CCustom1Dlg
|
||||
LastTemplate=CDialog
|
||||
NewFileInclude1=#include "stdafx.h"
|
||||
NewFileInclude2=#include "valvelib.h"
|
||||
LastPage=0
|
||||
|
||||
ClassCount=1
|
||||
Class1=CCustom1Dlg
|
||||
|
||||
ResourceCount=1
|
||||
Resource1=IDD_CUSTOM1
|
||||
|
||||
[CLS:CCustom1Dlg]
|
||||
Type=0
|
||||
BaseClass=CAppWizStepDlg
|
||||
HeaderFile=cstm1dlg.h
|
||||
ImplementationFile=cstm1dlg.cpp
|
||||
Filter=D
|
||||
VirtualFilter=dWC
|
||||
LastObject=IDC_EDIT_SRC_PATH
|
||||
|
||||
[DLG:IDD_CUSTOM1]
|
||||
Type=1
|
||||
Class=CCustom1Dlg
|
||||
ControlCount=14
|
||||
Control1=IDC_STATIC,static,1342308352
|
||||
Control2=IDC_SELECT_PROJECT_TYPE,combobox,1342242819
|
||||
Control3=IDC_STATIC,static,1342308352
|
||||
Control4=IDC_EDIT_ROOT_PATH,edit,1350631552
|
||||
Control5=IDC_STATIC,static,1342308352
|
||||
Control6=IDC_EDIT_IMPLIB_PATH,edit,1350631552
|
||||
Control7=IDC_STATIC,static,1342308352
|
||||
Control8=IDC_EDIT_TARGET_PATH,edit,1350631552
|
||||
Control9=IDC_CHECK_TOOL,button,1342242819
|
||||
Control10=IDC_CHECK_PUBLIC,button,1342242819
|
||||
Control11=IDC_CHECK_PUBLISH_IMPORT,button,1342242819
|
||||
Control12=IDC_CHECK_CONSOLE_APP,button,1342242819
|
||||
Control13=IDC_STATIC,static,1342308352
|
||||
Control14=IDC_EDIT_SRC_PATH,edit,1350631552
|
||||
|
||||
47
utils/valvelib/valvelib.cpp
Normal file
47
utils/valvelib/valvelib.cpp
Normal file
@@ -0,0 +1,47 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//
|
||||
//=============================================================================//
|
||||
// valvelib.cpp : Defines the initialization routines for the DLL.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include <afxdllx.h>
|
||||
#include "valvelib.h"
|
||||
#include "valvelibaw.h"
|
||||
|
||||
#ifdef _PSEUDO_DEBUG
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
static AFX_EXTENSION_MODULE ValvelibDLL = { NULL, NULL };
|
||||
|
||||
extern "C" int APIENTRY
|
||||
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
|
||||
{
|
||||
if (dwReason == DLL_PROCESS_ATTACH)
|
||||
{
|
||||
TRACE0("VALVELIB.AWX Initializing!\n");
|
||||
|
||||
// Extension DLL one-time initialization
|
||||
AfxInitExtensionModule(ValvelibDLL, hInstance);
|
||||
|
||||
// Insert this DLL into the resource chain
|
||||
new CDynLinkLibrary(ValvelibDLL);
|
||||
|
||||
// Register this custom AppWizard with MFCAPWZ.DLL
|
||||
SetCustomAppWizClass(&Valvelibaw);
|
||||
}
|
||||
else if (dwReason == DLL_PROCESS_DETACH)
|
||||
{
|
||||
TRACE0("VALVELIB.AWX Terminating!\n");
|
||||
|
||||
// Terminate the library before destructors are called
|
||||
AfxTermExtensionModule(ValvelibDLL);
|
||||
}
|
||||
return 1; // ok
|
||||
}
|
||||
23
utils/valvelib/valvelib.h
Normal file
23
utils/valvelib/valvelib.h
Normal file
@@ -0,0 +1,23 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//
|
||||
//=============================================================================//
|
||||
#if !defined(AFX_VALVELIB_H__206ABDD3_0BD0_4E71_8462_B6D18D116D1E__INCLUDED_)
|
||||
#define AFX_VALVELIB_H__206ABDD3_0BD0_4E71_8462_B6D18D116D1E__INCLUDED_
|
||||
|
||||
#ifndef __AFXWIN_H__
|
||||
#error include 'stdafx.h' before including this file for PCH
|
||||
#endif
|
||||
|
||||
#include "resource.h" // main symbols
|
||||
|
||||
// TODO: You may add any other custom AppWizard-wide declarations here.
|
||||
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_VALVELIB_H__206ABDD3_0BD0_4E71_8462_B6D18D116D1E__INCLUDED_)
|
||||
202
utils/valvelib/valvelib.rc
Normal file
202
utils/valvelib/valvelib.rc
Normal file
@@ -0,0 +1,202 @@
|
||||
//Microsoft Developer Studio generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_OLE_RESOURCES\r\n"
|
||||
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
|
||||
"#include ""afxres.rc"" // Standard components\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
#ifndef _MAC
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,0,0,1
|
||||
PRODUCTVERSION 1,0,0,1
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x4L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "Comments", "\0"
|
||||
VALUE "CompanyName", "\0"
|
||||
VALUE "FileDescription", "Valve Project AppWizard\0"
|
||||
VALUE "FileVersion", "1, 0, 0, 1\0"
|
||||
VALUE "InternalName", "VALVELIB\0"
|
||||
VALUE "LegalCopyright", "Copyright <20> 2002\0"
|
||||
VALUE "LegalTrademarks", "\0"
|
||||
VALUE "OriginalFilename", "VALVELIB.DLL\0"
|
||||
VALUE "PrivateBuild", "\0"
|
||||
VALUE "ProductName", "Valve Project\0"
|
||||
VALUE "ProductVersion", "1, 0, 0, 1\0"
|
||||
VALUE "SpecialBuild", "\0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
||||
#endif // !_MAC
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_CUSTOM1 DIALOG DISCARDABLE 0, 0, 286, 196
|
||||
STYLE DS_CONTROL | WS_CHILD | WS_TABSTOP
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
LTEXT "Select Project Type",IDC_STATIC,118,10,66,10
|
||||
COMBOBOX IDC_SELECT_PROJECT_TYPE,93,23,122,50,CBS_DROPDOWNLIST |
|
||||
WS_TABSTOP
|
||||
LTEXT "Root Path",IDC_STATIC,40,109,57,10
|
||||
EDITTEXT IDC_EDIT_ROOT_PATH,115,109,147,12,ES_AUTOHSCROLL
|
||||
LTEXT "Import Library Path",IDC_STATIC,40,159,66,11
|
||||
EDITTEXT IDC_EDIT_IMPLIB_PATH,115,159,147,12,ES_AUTOHSCROLL
|
||||
LTEXT "Output (Target) Path",IDC_STATIC,40,184,66,11
|
||||
EDITTEXT IDC_EDIT_TARGET_PATH,115,184,147,12,ES_AUTOHSCROLL
|
||||
CONTROL "Tool Project (uses multithreaded C libs)",
|
||||
IDC_CHECK_TOOL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,115,
|
||||
45,143,11
|
||||
CONTROL "Public Project (linked to by mods)",IDC_CHECK_PUBLIC,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,115,61,122,9
|
||||
CONTROL "Publish Import Library",IDC_CHECK_PUBLISH_IMPORT,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,115,74,124,11
|
||||
CONTROL "Console Application",IDC_CHECK_CONSOLE_APP,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,115,89,124,11
|
||||
LTEXT "Src Path (Relative)",IDC_STATIC,40,134,65,8
|
||||
EDITTEXT IDC_EDIT_SRC_PATH,115,134,147,12,ES_AUTOHSCROLL
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEMPLATE
|
||||
//
|
||||
|
||||
NEWPROJ.INF TEMPLATE DISCARDABLE "template\\newproj.inf"
|
||||
CONFIRM.INF TEMPLATE DISCARDABLE "template\\confirm.inf"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDI_VALVELIB ICON DISCARDABLE "res\\valvelib.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog Info
|
||||
//
|
||||
|
||||
IDD_CUSTOM1 DLGINIT
|
||||
BEGIN
|
||||
IDC_SELECT_PROJECT_TYPE, 0x403, 22, 0
|
||||
0x7453, 0x7461, 0x6369, 0x4c20, 0x6269, 0x6172, 0x7972, 0x2820, 0x4c2e,
|
||||
0x4249, 0x0029,
|
||||
IDC_SELECT_PROJECT_TYPE, 0x403, 23, 0
|
||||
0x7944, 0x616e, 0x696d, 0x2063, 0x694c, 0x7262, 0x7261, 0x2079, 0x2e28,
|
||||
0x4c44, 0x294c, "\000"
|
||||
IDC_SELECT_PROJECT_TYPE, 0x403, 18, 0
|
||||
0x7845, 0x6365, 0x7475, 0x6261, 0x656c, 0x2820, 0x452e, 0x4558, 0x0029,
|
||||
|
||||
0
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO DISCARDABLE
|
||||
BEGIN
|
||||
IDD_CUSTOM1, DIALOG
|
||||
BEGIN
|
||||
BOTTOMMARGIN, 168
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
#define _AFX_NO_SPLITTER_RESOURCES
|
||||
#define _AFX_NO_OLE_RESOURCES
|
||||
#define _AFX_NO_TRACKER_RESOURCES
|
||||
#define _AFX_NO_PROPERTY_RESOURCES
|
||||
#include "afxres.rc" // Standard components
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
354
utils/valvelib/valvelib.vcproj
Normal file
354
utils/valvelib/valvelib.vcproj
Normal file
@@ -0,0 +1,354 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="valvelib"
|
||||
ProjectGUID="{B9FDD758-DFA9-4559-99E8-3451FF847972}"
|
||||
SccProjectName=""
|
||||
SccAuxPath=""
|
||||
SccLocalPath=""
|
||||
SccProvider=""
|
||||
Keyword="MFCProj">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory=".\Release"
|
||||
IntermediateDirectory=".\Release"
|
||||
ConfigurationType="2"
|
||||
UseOfMFC="2"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_AFXEXT"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="TRUE"
|
||||
UsePrecompiledHeader="3"
|
||||
PrecompiledHeaderThrough="stdafx.h"
|
||||
PrecompiledHeaderFile=".\Release/valvelib.pch"
|
||||
AssemblerListingLocation=".\Release/"
|
||||
ObjectFile=".\Release/"
|
||||
ProgramDataBaseFileName=".\Release/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Copying custom AppWizard to Template directory..."
|
||||
CommandLine="if not exist "$(DevEnvDir)Template\nul" md "$(DevEnvDir)Template"
|
||||
copy "$(TargetPath)" "$(DevEnvDir)Template"
|
||||
if exist "$(OutDir)\$(TargetName).pdb" copy "$(OutDir)\$(TargetName).pdb" "$(DevEnvDir)Template"
|
||||
"
|
||||
Outputs="$(DevEnvDir)Template\$(TargetName).awx"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile=".\Release/valvelib.awx"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
ProgramDatabaseFile=".\Release/valvelib.pdb"
|
||||
SubSystem="2"
|
||||
ImportLibrary=".\Release/valvelib.lib"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="TRUE"
|
||||
SuppressStartupBanner="TRUE"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Release/valvelib.tlb"
|
||||
HeaderFileName=""/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Pseudo-Debug|Win32"
|
||||
OutputDirectory=".\Debug"
|
||||
IntermediateDirectory=".\Debug"
|
||||
ConfigurationType="2"
|
||||
UseOfMFC="2"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_PSEUDO_DEBUG;_AFXEXT"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="3"
|
||||
PrecompiledHeaderThrough="stdafx.h"
|
||||
PrecompiledHeaderFile=".\Debug/valvelib.pch"
|
||||
AssemblerListingLocation=".\Debug/"
|
||||
ObjectFile=".\Debug/"
|
||||
ProgramDataBaseFileName=".\Debug/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"
|
||||
DebugInformationFormat="3"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Copying custom AppWizard to Template directory..."
|
||||
CommandLine="if not exist "$(DevEnvDir)Template\nul" md "$(DevEnvDir)Template"
|
||||
copy "$(TargetPath)" "$(DevEnvDir)Template"
|
||||
if exist "$(OutDir)\$(TargetName).pdb" copy "$(OutDir)\$(TargetName).pdb" "$(DevEnvDir)Template"
|
||||
"
|
||||
Outputs="$(DevEnvDir)Template\$(TargetName).awx"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile=".\Debug/valvelib.awx"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile=".\Debug/valvelib.pdb"
|
||||
SubSystem="2"
|
||||
ImportLibrary=".\Debug/valvelib.lib"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="TRUE"
|
||||
SuppressStartupBanner="TRUE"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Debug/valvelib.tlb"
|
||||
HeaderFileName=""/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG;_PSEUDO_DEBUG"
|
||||
Culture="1033"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
|
||||
<File
|
||||
RelativePath="Chooser.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="Cstm1Dlg.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="Debug.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="StdAfx.cpp">
|
||||
<FileConfiguration
|
||||
Name="Pseudo-Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="valvelib.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="hlp\valvelib.hpj">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Making help file..."
|
||||
CommandLine="start /wait hcw /C /E /M "hlp\$(InputName).hpj"
|
||||
if errorlevel 1 goto :Error
|
||||
if not exist "hlp\$(InputName).hlp" goto :Error
|
||||
copy "hlp\$(InputName).hlp" "$(OutDir)"
|
||||
copy "$(OutDir)\$(TargetName).hlp" "$(DevEnvDir)Template"
|
||||
goto :done
|
||||
:Error
|
||||
echo hlp\"$(InputName)".hpj(1) : error:
|
||||
type "hlp\$(InputName).log"
|
||||
:done
|
||||
"
|
||||
AdditionalDependencies="hlp\AfxCore.rtf;hlp\AfxPrint.rtf;hlp\$(TargetName).hm;"
|
||||
Outputs="$(OutDir)\$(InputName).hlp;$(DevEnvDir)Template"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Pseudo-Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Making help file..."
|
||||
CommandLine="start /wait hcw /C /E /M "hlp\$(InputName).hpj"
|
||||
if errorlevel 1 goto :Error
|
||||
if not exist "hlp\$(InputName).hlp" goto :Error
|
||||
copy "hlp\$(InputName).hlp" "$(OutDir)"
|
||||
copy "$(OutDir)\$(TargetName).hlp" "$(DevEnvDir)Template"
|
||||
goto :done
|
||||
:Error
|
||||
echo hlp\"$(InputName)".hpj(1) : error:
|
||||
type "hlp\$(InputName).log"
|
||||
:done
|
||||
"
|
||||
AdditionalDependencies="hlp\AfxCore.rtf;hlp\AfxPrint.rtf;hlp\$(TargetName).hm;"
|
||||
Outputs="$(OutDir)\$(InputName).hlp;$(DevEnvDir)Template"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="valvelib.rc">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="valvelibAw.cpp">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl">
|
||||
<File
|
||||
RelativePath="Chooser.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="Cstm1Dlg.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="Debug.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="Resource.h">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Making help include file..."
|
||||
CommandLine="echo. >"hlp\$(TargetName).hm"
|
||||
echo // Commands (ID_* and IDM_*) >>"hlp\$(TargetName).hm"
|
||||
makehm ID_,HID_,0x10000 IDM_,HIDM_,0x10000 resource.h >>"hlp\$(TargetName).hm"
|
||||
echo. >>"hlp\$(TargetName).hm"
|
||||
echo // Prompts (IDP_*) >>"hlp\$(TargetName).hm"
|
||||
makehm IDP_,HIDP_,0x30000 resource.h >>"hlp\$(TargetName).hm"
|
||||
echo. >>"hlp\$(TargetName).hm"
|
||||
echo // Resources (IDR_*) >>"hlp\$(TargetName).hm"
|
||||
makehm IDR_,HIDR_,0x20000 resource.h >>"hlp\$(TargetName).hm"
|
||||
echo. >>"hlp\$(TargetName).hm"
|
||||
echo // Dialogs (IDD_*) >>"hlp\$(TargetName).hm"
|
||||
makehm IDD_,HIDD_,0x20000 resource.h >>"hlp\$(TargetName).hm"
|
||||
echo. >>"hlp\$(TargetName).hm"
|
||||
echo // Frame Controls (IDW_*) >>"hlp\$(TargetName).hm"
|
||||
makehm IDW_,HIDW_,0x50000 resource.h >>"hlp\$(TargetName).hm"
|
||||
"
|
||||
Outputs="hlp\$(TargetName).hm"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Pseudo-Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Making help include file..."
|
||||
CommandLine="echo. >"hlp\$(TargetName).hm"
|
||||
echo // Commands (ID_* and IDM_*) >>"hlp\$(TargetName).hm"
|
||||
makehm ID_,HID_,0x10000 IDM_,HIDM_,0x10000 resource.h >>"hlp\$(TargetName).hm"
|
||||
echo. >>"hlp\$(TargetName).hm"
|
||||
echo // Prompts (IDP_*) >>"hlp\$(TargetName).hm"
|
||||
makehm IDP_,HIDP_,0x30000 resource.h >>"hlp\$(TargetName).hm"
|
||||
echo. >>"hlp\$(TargetName).hm"
|
||||
echo // Resources (IDR_*) >>"hlp\$(TargetName).hm"
|
||||
makehm IDR_,HIDR_,0x20000 resource.h >>"hlp\$(TargetName).hm"
|
||||
echo. >>"hlp\$(TargetName).hm"
|
||||
echo // Dialogs (IDD_*) >>"hlp\$(TargetName).hm"
|
||||
makehm IDD_,HIDD_,0x20000 resource.h >>"hlp\$(TargetName).hm"
|
||||
echo. >>"hlp\$(TargetName).hm"
|
||||
echo // Frame Controls (IDW_*) >>"hlp\$(TargetName).hm"
|
||||
makehm IDW_,HIDW_,0x50000 resource.h >>"hlp\$(TargetName).hm"
|
||||
"
|
||||
Outputs="hlp\$(TargetName).hm"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="StdAfx.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="valvelib.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="valvelibAw.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
|
||||
<File
|
||||
RelativePath="res\valvelib.ico">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Help Files"
|
||||
Filter="cnt;rtf">
|
||||
<File
|
||||
RelativePath="hlp\valvelib.rtf">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Template Files"
|
||||
Filter="<templates>">
|
||||
<File
|
||||
RelativePath="Template\confirm.inf">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
ExcludedFromBuild="TRUE">
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Pseudo-Debug|Win32"
|
||||
ExcludedFromBuild="TRUE">
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="Template\newproj.inf">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
ExcludedFromBuild="TRUE">
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Pseudo-Debug|Win32"
|
||||
ExcludedFromBuild="TRUE">
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
491
utils/valvelib/valvelibaw.cpp
Normal file
491
utils/valvelib/valvelibaw.cpp
Normal file
@@ -0,0 +1,491 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//
|
||||
//=============================================================================//
|
||||
// valvelibaw.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "valvelib.h"
|
||||
#include "valvelibaw.h"
|
||||
#include "chooser.h"
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
#include<atlbase.h>
|
||||
extern CComModule _Module;
|
||||
#include <atlcom.h>
|
||||
#include <initguid.h>
|
||||
#include<comdef.h>
|
||||
|
||||
|
||||
#ifdef _PSEUDO_DEBUG
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
#define STUPID_MS_BUG 1
|
||||
|
||||
enum Config_t
|
||||
{
|
||||
CONFIG_DEBUG = 0,
|
||||
CONFIG_RELEASE
|
||||
};
|
||||
|
||||
enum Project_t
|
||||
{
|
||||
PROJECT_LIB = 0,
|
||||
PROJECT_DLL,
|
||||
PROJECT_EXE
|
||||
};
|
||||
|
||||
struct ProjectInfo_t
|
||||
{
|
||||
DSProjectSystem::IConfigurationPtr m_pConfig;
|
||||
long m_ConfigIndex;
|
||||
Config_t m_Config;
|
||||
Project_t m_Project;
|
||||
CString m_RelativeTargetPath;
|
||||
CString m_RelativeImplibPath;
|
||||
CString m_RelativeRootPath;
|
||||
CString m_RelativeSrcPath;
|
||||
CString m_TargetPath;
|
||||
CString m_RootName;
|
||||
CString m_BuildName;
|
||||
CString m_Ext;
|
||||
bool m_Tool;
|
||||
bool m_Console;
|
||||
bool m_Public;
|
||||
bool m_PublishImportLib;
|
||||
};
|
||||
|
||||
|
||||
// This is called immediately after the custom AppWizard is loaded. Initialize
|
||||
// the state of the custom AppWizard here.
|
||||
void CValvelibAppWiz::InitCustomAppWiz()
|
||||
{
|
||||
// Create a new dialog chooser; CDialogChooser's constructor initializes
|
||||
// its internal array with pointers to the steps.
|
||||
m_pChooser = new CDialogChooser;
|
||||
|
||||
// Set the maximum number of steps.
|
||||
SetNumberOfSteps(LAST_DLG);
|
||||
|
||||
// TODO: Add any other custom AppWizard-wide initialization here.
|
||||
}
|
||||
|
||||
// This is called just before the custom AppWizard is unloaded.
|
||||
void CValvelibAppWiz::ExitCustomAppWiz()
|
||||
{
|
||||
// Deallocate memory used for the dialog chooser
|
||||
ASSERT(m_pChooser != NULL);
|
||||
delete m_pChooser;
|
||||
m_pChooser = NULL;
|
||||
|
||||
// TODO: Add code here to deallocate resources used by the custom AppWizard
|
||||
}
|
||||
|
||||
// This is called when the user clicks "Create..." on the New Project dialog
|
||||
// or "Next" on one of the custom AppWizard's steps.
|
||||
CAppWizStepDlg* CValvelibAppWiz::Next(CAppWizStepDlg* pDlg)
|
||||
{
|
||||
// Delegate to the dialog chooser
|
||||
return m_pChooser->Next(pDlg);
|
||||
}
|
||||
|
||||
// This is called when the user clicks "Back" on one of the custom
|
||||
// AppWizard's steps.
|
||||
CAppWizStepDlg* CValvelibAppWiz::Back(CAppWizStepDlg* pDlg)
|
||||
{
|
||||
// Delegate to the dialog chooser
|
||||
return m_pChooser->Back(pDlg);
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Deals with compiler settings
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
static void SetupCompilerSettings(ProjectInfo_t& info)
|
||||
{
|
||||
_bstr_t varTool;
|
||||
_bstr_t varSwitch;
|
||||
_variant_t varj = info.m_ConfigIndex;
|
||||
|
||||
// We're going to modify settings associated with cl.exe
|
||||
varTool = "cl.exe";
|
||||
|
||||
// Standard include directories
|
||||
CString includePath;
|
||||
if (info.m_Public)
|
||||
{
|
||||
includePath.Format("/I%spublic", info.m_RelativeSrcPath,
|
||||
info.m_RelativeSrcPath );
|
||||
|
||||
info.m_pConfig->AddToolSettings(varTool, (char const*)includePath, varj);
|
||||
}
|
||||
|
||||
// Control which version of the debug libraries to use (static single thread
|
||||
// for normal projects, multithread for tools)
|
||||
if (info.m_Tool)
|
||||
{
|
||||
if (info.m_Config == CONFIG_DEBUG)
|
||||
varSwitch = "/MTd";
|
||||
else
|
||||
varSwitch = "/MT";
|
||||
}
|
||||
else
|
||||
{
|
||||
// Suppress use of non-filesystem stuff in new non-tool projects...
|
||||
if (info.m_Config == CONFIG_DEBUG)
|
||||
varSwitch = "/D \"fopen=dont_use_fopen\" /MTd";
|
||||
else
|
||||
varSwitch = "/D \"fopen=dont_use_fopen\" /MT";
|
||||
}
|
||||
info.m_pConfig->AddToolSettings(varTool, varSwitch, varj);
|
||||
|
||||
// If it's a DLL, define a standard exports macro...
|
||||
if (info.m_Project == PROJECT_DLL)
|
||||
{
|
||||
CString dllExport;
|
||||
dllExport.Format("/D \"%s_DLL_EXPORT\"", info.m_RootName );
|
||||
dllExport.MakeUpper();
|
||||
info.m_pConfig->AddToolSettings(varTool, (char const*)dllExport, varj);
|
||||
}
|
||||
|
||||
// /W4 - Warning level 4
|
||||
// /FD - Generates file dependencies
|
||||
// /G6 - optimize for pentium pro
|
||||
// Add _WIN32, as that's what all our other code uses
|
||||
varSwitch = "/W4 /FD /G6 /D \"_WIN32\"";
|
||||
info.m_pConfig->AddToolSettings(varTool, varSwitch, varj);
|
||||
|
||||
// Remove Preprocessor def for MFC DLL specifier, _AFXDLL
|
||||
// /GX - No exceptions,
|
||||
// /YX - no precompiled headers
|
||||
// Remove WIN32, it's put there by default
|
||||
varSwitch = "/D \"_AFXDLL\" /GX /YX /D \"WIN32\"";
|
||||
info.m_pConfig->RemoveToolSettings(varTool, varSwitch, varj);
|
||||
|
||||
switch (info.m_Config)
|
||||
{
|
||||
case CONFIG_DEBUG:
|
||||
// Remove the following switches (avoid duplicates, in addition to other things)
|
||||
varSwitch = "/D \"NDEBUG\" /Zi /ZI /GZ";
|
||||
info.m_pConfig->RemoveToolSettings(varTool, varSwitch, varj);
|
||||
|
||||
// Add the following switches:
|
||||
// /ZI - Includes debug information in a program database compatible with Edit and Continue.
|
||||
// /Zi - Includes debug information in a program database (no Edit and Continue)
|
||||
// /Od - Disable optimization
|
||||
// /GZ - Catch release build problems (uninitialized variables, fp stack problems)
|
||||
// /Op - Improves floating-point consistency
|
||||
// /Gm - Minimal rebuild
|
||||
// /FR - Generate Browse Info
|
||||
varSwitch = "/D \"_DEBUG\" /Od /GZ /Op /Gm /FR\"Debug/\"";
|
||||
info.m_pConfig->AddToolSettings(varTool, varSwitch, varj);
|
||||
|
||||
if (info.m_Project == PROJECT_LIB)
|
||||
{
|
||||
// Static libraries cannot use edit-and-continue, why compile it in?
|
||||
varSwitch = "/Zi";
|
||||
info.m_pConfig->AddToolSettings(varTool, varSwitch, varj);
|
||||
}
|
||||
else
|
||||
{
|
||||
varSwitch = "/ZI";
|
||||
info.m_pConfig->AddToolSettings(varTool, varSwitch, varj);
|
||||
}
|
||||
break;
|
||||
|
||||
case CONFIG_RELEASE:
|
||||
// Remove the following switches:
|
||||
// /Zi - Generates complete debugging information
|
||||
// /ZI - Includes debug information in a program database compatible with Edit and Continue.
|
||||
// /Gm - Minimal rebuild
|
||||
// /GZ - Catch release build problems (uninitialized variables, fp stack problems)
|
||||
varSwitch = "/D \"_DEBUG\" /Gm /Zi /ZI /GZ";
|
||||
info.m_pConfig->RemoveToolSettings(varTool, varSwitch, varj);
|
||||
|
||||
// Add the following switches:
|
||||
// /Ox - Uses maximum optimization (/Ob1gity /Gs)
|
||||
// /Ow - Assumes aliasing across function calls
|
||||
// /Op - Improves floating-point consistency
|
||||
// /Gf - String pooling
|
||||
// /Oi - Generates intrinsic functions
|
||||
// /Ot - Favors fast code
|
||||
// /Og - Uses global optimizations
|
||||
// /Gy - Enable function level linking
|
||||
varSwitch = "/D \"NDEBUG\" /Ox /Ow /Op /Oi /Ot /Og /Gf /Gy";
|
||||
info.m_pConfig->AddToolSettings(varTool, varSwitch, varj);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Deals with resource compiler
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
static void SetupResourceCompilerSettings(ProjectInfo_t& info)
|
||||
{
|
||||
_bstr_t varTool;
|
||||
_bstr_t varSwitch;
|
||||
_variant_t varj = info.m_ConfigIndex;
|
||||
|
||||
// Remove Preprocessor def for MFC DLL specifier, _AFXDLL
|
||||
varTool = "rc.exe";
|
||||
varSwitch = "/d \"_AFXDLL\"";
|
||||
info.m_pConfig->RemoveToolSettings(varTool, varSwitch, varj);
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Deals with linker settings
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
static void SetupLinkerSettings(ProjectInfo_t& info)
|
||||
{
|
||||
_bstr_t varTool;
|
||||
_bstr_t varSwitch;
|
||||
_variant_t varj = info.m_ConfigIndex;
|
||||
|
||||
// We're going to modify settings associated with cl.exe
|
||||
varTool = "link.exe";
|
||||
|
||||
// Remove windows libraries by default... hopefully we don't have windows dependencies
|
||||
varSwitch = "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib";
|
||||
info.m_pConfig->RemoveToolSettings(varTool, varSwitch, varj);
|
||||
|
||||
// Add libraries we always want to use
|
||||
varSwitch = "tier0.lib";
|
||||
info.m_pConfig->AddToolSettings(varTool, varSwitch, varj);
|
||||
|
||||
// Hook in the static library path
|
||||
CString libPath;
|
||||
|
||||
// FIXME: Still haven't decided on build-specific publish dir
|
||||
|
||||
if (info.m_Public)
|
||||
{
|
||||
libPath.Format( "/libpath:\"%slib\\common\\\" /libpath:\"%slib\\public\\\"",
|
||||
info.m_RelativeSrcPath, info.m_RelativeSrcPath );
|
||||
}
|
||||
else
|
||||
{
|
||||
libPath.Format( "/libpath:\"%slib\\common\\\"", info.m_RelativeSrcPath );
|
||||
}
|
||||
|
||||
info.m_pConfig->AddToolSettings(varTool, (char const*)libPath, varj);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Deals with lib settings
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
static void SetupLibSettings(ProjectInfo_t& info)
|
||||
{
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Deals with custom build steps
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
static void SetupCustomBuildSteps(ProjectInfo_t& info)
|
||||
{
|
||||
// Create the custom build steps
|
||||
CString copySteps;
|
||||
CString targets;
|
||||
|
||||
if (info.m_Project == PROJECT_LIB)
|
||||
{
|
||||
CString targetPath;
|
||||
|
||||
targetPath.Format( "%s%s.%s", info.m_RelativeTargetPath, info.m_RootName, info.m_Ext );
|
||||
|
||||
// NOTE: The second attrib is commented out because I'm fairly certain it causes
|
||||
// a bug in VSS to make it overwrite the target on a get
|
||||
copySteps.Format(
|
||||
"if exist %s attrib -r %s\n"
|
||||
"copy $(TargetPath) %s\n"
|
||||
"if exist $(TargetDir)\\%s.map copy $(TargetDir)\\%s.map %s%s.map",
|
||||
targetPath, targetPath,
|
||||
targetPath,
|
||||
info.m_RootName, info.m_RootName, info.m_RelativeTargetPath, info.m_RootName );
|
||||
|
||||
targets.Format( "%s\n", targetPath );
|
||||
}
|
||||
else
|
||||
{
|
||||
CString targetPath;
|
||||
targetPath.Format( "%s%s.%s", info.m_RelativeTargetPath, info.m_RootName, info.m_Ext );
|
||||
|
||||
// NOTE: The second attrib is commented out because I'm fairly certain it causes
|
||||
// a bug in VSS to make it overwrite the target on a get
|
||||
copySteps.Format(
|
||||
"if exist %s attrib -r %s\n"
|
||||
"copy $(TargetPath) %s\n"
|
||||
"if exist $(TargetDir)\\%s.map copy $(TargetDir)\\%s.map %s%s.map",
|
||||
targetPath, targetPath,
|
||||
targetPath,
|
||||
info.m_RootName, info.m_RootName, info.m_RelativeTargetPath, info.m_RootName );
|
||||
|
||||
targets.Format( "%s", targetPath );
|
||||
|
||||
if ((info.m_Project == PROJECT_DLL) && info.m_PublishImportLib)
|
||||
{
|
||||
CString targetPath;
|
||||
|
||||
targetPath.Format( "%s%s.lib", info.m_RelativeImplibPath, info.m_RootName );
|
||||
|
||||
CString impLibCopy;
|
||||
impLibCopy.Format(
|
||||
"\nif exist %s attrib -r %s\n"
|
||||
"if exist $(TargetDir)\\%s.lib copy $(TargetDir)\\%s.lib %s\n",
|
||||
targetPath, targetPath,
|
||||
info.m_RootName, info.m_RootName, targetPath
|
||||
);
|
||||
copySteps += impLibCopy;
|
||||
|
||||
CString implibTarget;
|
||||
implibTarget.Format( "\n%s", targetPath );
|
||||
targets += implibTarget;
|
||||
}
|
||||
}
|
||||
|
||||
CString publishDir;
|
||||
publishDir.Format( "Publishing to target directory (%s)...", info.m_RelativeTargetPath );
|
||||
info.m_pConfig->AddCustomBuildStep( (char const*)copySteps, (char const*)targets, (char const*)publishDir );
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Deals with MIDL build steps
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
static void SetupMIDLSettings(ProjectInfo_t& info)
|
||||
{
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Deals with browse build steps
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
static void SetupBrowseSettings(ProjectInfo_t& info)
|
||||
{
|
||||
}
|
||||
|
||||
void CValvelibAppWiz::CustomizeProject(IBuildProject* pProject)
|
||||
{
|
||||
// This is called immediately after the default Debug and Release
|
||||
// configurations have been created for each platform. You may customize
|
||||
// existing configurations on this project by using the methods
|
||||
// of IBuildProject and IConfiguration such as AddToolSettings,
|
||||
// RemoveToolSettings, and AddCustomBuildStep. These are documented in
|
||||
// the Developer Studio object model documentation.
|
||||
|
||||
// WARNING!! IBuildProject and all interfaces you can get from it are OLE
|
||||
// COM interfaces. You must be careful to release all new interfaces
|
||||
// you acquire. In accordance with the standard rules of COM, you must
|
||||
// NOT release pProject, unless you explicitly AddRef it, since pProject
|
||||
// is passed as an "in" parameter to this function. See the documentation
|
||||
// on CCustomAppWiz::CustomizeProject for more information.
|
||||
|
||||
using namespace DSProjectSystem;
|
||||
|
||||
long lNumConfigs;
|
||||
IConfigurationsPtr pConfigs;
|
||||
IBuildProjectPtr pProj;
|
||||
|
||||
// Needed to convert IBuildProject to the DSProjectSystem namespace
|
||||
pProj.Attach((DSProjectSystem::IBuildProject*)pProject, true);
|
||||
|
||||
// Add a release with symbols configuration
|
||||
pProj->get_Configurations(&pConfigs);
|
||||
pConfigs->get_Count(&lNumConfigs);
|
||||
|
||||
// Needed for OLE2T below
|
||||
USES_CONVERSION;
|
||||
CComBSTR configName;
|
||||
|
||||
ProjectInfo_t info;
|
||||
if (!Valvelibaw.m_Dictionary.Lookup("VALVE_RELATIVE_PATH", info.m_RelativeTargetPath))
|
||||
return;
|
||||
if (!Valvelibaw.m_Dictionary.Lookup("root", info.m_RootName))
|
||||
return;
|
||||
if (!Valvelibaw.m_Dictionary.Lookup("VALVE_TARGET_TYPE", info.m_Ext))
|
||||
return;
|
||||
if (!Valvelibaw.m_Dictionary.Lookup("VALVE_ROOT_RELATIVE_PATH", info.m_RelativeRootPath))
|
||||
return;
|
||||
if (!Valvelibaw.m_Dictionary.Lookup("VALVE_SRC_RELATIVE_PATH", info.m_RelativeSrcPath))
|
||||
return;
|
||||
if (!Valvelibaw.m_Dictionary.Lookup("VALVE_TARGET_PATH", info.m_TargetPath))
|
||||
return;
|
||||
|
||||
CString tmp;
|
||||
info.m_Tool = (Valvelibaw.m_Dictionary.Lookup("VALVE_TOOL", tmp) != 0);
|
||||
info.m_Console = (Valvelibaw.m_Dictionary.Lookup("PROJTYPE_CON", tmp) != 0);
|
||||
info.m_Public = (Valvelibaw.m_Dictionary.Lookup("VALVE_PUBLIC_PROJECT", tmp) != 0);
|
||||
info.m_PublishImportLib = (Valvelibaw.m_Dictionary.Lookup("VALVE_PUBLISH_IMPORT_LIB", tmp) != 0);
|
||||
info.m_Project = PROJECT_LIB;
|
||||
if ( strstr( info.m_Ext, "dll" ) != 0 )
|
||||
{
|
||||
info.m_Project = PROJECT_DLL;
|
||||
if (!Valvelibaw.m_Dictionary.Lookup("VALVE_IMPLIB_RELATIVE_PATH", info.m_RelativeImplibPath))
|
||||
return;
|
||||
}
|
||||
else if ( strstr( info.m_Ext, "exe" ) != 0 )
|
||||
{
|
||||
info.m_Project = PROJECT_EXE;
|
||||
}
|
||||
|
||||
//Get each individual configuration
|
||||
for (long j = 1 ; j <= lNumConfigs ; j++)
|
||||
{
|
||||
_bstr_t varTool;
|
||||
_bstr_t varSwitch;
|
||||
_variant_t varj = j;
|
||||
info.m_ConfigIndex = j;
|
||||
|
||||
info.m_pConfig = pConfigs->Item(varj);
|
||||
|
||||
// Figure if we're debug or release
|
||||
info.m_pConfig->get_Name( &configName );
|
||||
info.m_Config = CONFIG_RELEASE;
|
||||
info.m_BuildName = "Release";
|
||||
if ( strstr( OLE2T(configName), "Debug" ) != 0 )
|
||||
{
|
||||
info.m_Config = CONFIG_DEBUG;
|
||||
info.m_BuildName = "Debug";
|
||||
}
|
||||
|
||||
// Not using MFC...
|
||||
info.m_pConfig->AddToolSettings("mfc", "0", varj);
|
||||
|
||||
SetupCompilerSettings(info);
|
||||
SetupResourceCompilerSettings(info);
|
||||
if (info.m_Project != PROJECT_LIB)
|
||||
{
|
||||
SetupLinkerSettings(info);
|
||||
|
||||
if (!info.m_Console)
|
||||
SetupMIDLSettings(info);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetupLibSettings(info);
|
||||
}
|
||||
SetupCustomBuildSteps(info);
|
||||
SetupBrowseSettings(info);
|
||||
|
||||
info.m_pConfig->MakeCurrentSettingsDefault();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Here we define one instance of the CValvelibAppWiz class. You can access
|
||||
// m_Dictionary and any other public members of this class through the
|
||||
// global Valvelibaw.
|
||||
CValvelibAppWiz Valvelibaw;
|
||||
|
||||
43
utils/valvelib/valvelibaw.h
Normal file
43
utils/valvelib/valvelibaw.h
Normal file
@@ -0,0 +1,43 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//
|
||||
//=============================================================================//
|
||||
#if !defined(AFX_VALVELIBAW_H__9C6B3FB5_1D05_4B77_A095_DC8F516057DE__INCLUDED_)
|
||||
#define AFX_VALVELIBAW_H__9C6B3FB5_1D05_4B77_A095_DC8F516057DE__INCLUDED_
|
||||
|
||||
// valvelibaw.h : header file
|
||||
//
|
||||
|
||||
class CDialogChooser;
|
||||
class IBuildProject;
|
||||
|
||||
// All function calls made by mfcapwz.dll to this custom AppWizard (except for
|
||||
// GetCustomAppWizClass-- see valvelib.cpp) are through this class. You may
|
||||
// choose to override more of the CCustomAppWiz virtual functions here to
|
||||
// further specialize the behavior of this custom AppWizard.
|
||||
class CValvelibAppWiz : public CCustomAppWiz
|
||||
{
|
||||
public:
|
||||
virtual CAppWizStepDlg* Next(CAppWizStepDlg* pDlg);
|
||||
virtual CAppWizStepDlg* Back(CAppWizStepDlg* pDlg);
|
||||
|
||||
virtual void InitCustomAppWiz();
|
||||
virtual void ExitCustomAppWiz();
|
||||
virtual void CustomizeProject(IBuildProject* pProject);
|
||||
|
||||
protected:
|
||||
CDialogChooser* m_pChooser;
|
||||
};
|
||||
|
||||
// This declares the one instance of the CValvelibAppWiz class. You can access
|
||||
// m_Dictionary and any other public members of this class through the
|
||||
// global Valvelibaw. (Its definition is in valvelibaw.cpp.)
|
||||
extern CValvelibAppWiz Valvelibaw;
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_VALVELIBAW_H__9C6B3FB5_1D05_4B77_A095_DC8F516057DE__INCLUDED_)
|
||||
Reference in New Issue
Block a user