| 1 |
// AddNewProjectCompilerSettingsPage.cpp : implementation file |
|---|
| 2 |
// |
|---|
| 3 |
|
|---|
| 4 |
#include "stdafx.h" |
|---|
| 5 |
#include "Elephant.h" |
|---|
| 6 |
#include "AddNewProjectCompilerSettingsPage.h" |
|---|
| 7 |
|
|---|
| 8 |
#ifdef _DEBUG |
|---|
| 9 |
#define new DEBUG_NEW |
|---|
| 10 |
#undef THIS_FILE |
|---|
| 11 |
static char THIS_FILE[] = __FILE__; |
|---|
| 12 |
#endif |
|---|
| 13 |
|
|---|
| 14 |
///////////////////////////////////////////////////////////////////////////// |
|---|
| 15 |
// CAddNewProjectCompilerSettingsPage dialog |
|---|
| 16 |
|
|---|
| 17 |
|
|---|
| 18 |
CAddNewProjectCompilerSettingsPage::CAddNewProjectCompilerSettingsPage(CWnd* pParent /*=NULL*/) |
|---|
| 19 |
|
|---|
| 20 |
{ |
|---|
| 21 |
//{{AFX_DATA_INIT(CAddNewProjectCompilerSettingsPage) |
|---|
| 22 |
m_csVersion = _T(""); |
|---|
| 23 |
m_csLinker = _T(""); |
|---|
| 24 |
m_csLibs = _T(""); |
|---|
| 25 |
m_csDebug = _T(""); |
|---|
| 26 |
m_staticLib = FALSE; |
|---|
| 27 |
m_sharedLib = FALSE; |
|---|
| 28 |
//}}AFX_DATA_INIT |
|---|
| 29 |
} |
|---|
| 30 |
|
|---|
| 31 |
|
|---|
| 32 |
void CAddNewProjectCompilerSettingsPage::DoDataExchange(CDataExchange* pDX) |
|---|
| 33 |
{ |
|---|
| 34 |
CDialog::DoDataExchange(pDX); |
|---|
| 35 |
//{{AFX_DATA_MAP(CAddNewProjectCompilerSettingsPage) |
|---|
| 36 |
DDX_Control(pDX, IDC_EDIT13, m_linker); |
|---|
| 37 |
DDX_Control(pDX, IDC_EDIT8, m_debug); |
|---|
| 38 |
DDX_Control(pDX, IDC_EDIT14, m_libraries); |
|---|
| 39 |
DDX_Control(pDX, IDC_EDIT1, m_version); |
|---|
| 40 |
DDX_Control(pDX, IDC_COMBO2, m_flags); |
|---|
| 41 |
DDX_Control(pDX, IDC_COMBO1, m_libs); |
|---|
| 42 |
DDX_Text(pDX, IDC_EDIT1, m_csVersion); |
|---|
| 43 |
DDX_Text(pDX, IDC_EDIT13, m_csLinker); |
|---|
| 44 |
DDX_Text(pDX, IDC_EDIT14, m_csLibs); |
|---|
| 45 |
DDX_Text(pDX, IDC_EDIT8, m_csDebug); |
|---|
| 46 |
DDX_Check(pDX, IDC_CHECK1, m_staticLib); |
|---|
| 47 |
DDX_Check(pDX, IDC_CHECK2, m_sharedLib); |
|---|
| 48 |
//}}AFX_DATA_MAP |
|---|
| 49 |
} |
|---|
| 50 |
|
|---|
| 51 |
|
|---|
| 52 |
BEGIN_MESSAGE_MAP(CAddNewProjectCompilerSettingsPage, CDialog) |
|---|
| 53 |
//{{AFX_MSG_MAP(CAddNewProjectCompilerSettingsPage) |
|---|
| 54 |
ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1) |
|---|
| 55 |
ON_CBN_SELCHANGE(IDC_COMBO2, OnSelchangeCombo2) |
|---|
| 56 |
//}}AFX_MSG_MAP |
|---|
| 57 |
END_MESSAGE_MAP() |
|---|
| 58 |
|
|---|
| 59 |
///////////////////////////////////////////////////////////////////////////// |
|---|
| 60 |
// CAddNewProjectCompilerSettingsPage message handlers |
|---|
| 61 |
|
|---|
| 62 |
BOOL CAddNewProjectCompilerSettingsPage::OnInitDialog() |
|---|
| 63 |
{ |
|---|
| 64 |
CDialog::OnInitDialog(); |
|---|
| 65 |
|
|---|
| 66 |
m_debug.SetText("CSV of debug identifiers [debug=X]."); |
|---|
| 67 |
m_version.SetText("CSV of version identifiers [version=X]."); |
|---|
| 68 |
|
|---|
| 69 |
InitComboBoxes(); |
|---|
| 70 |
|
|---|
| 71 |
return TRUE; // return TRUE unless you set the focus to a control |
|---|
| 72 |
// EXCEPTION: OCX Property Pages should return FALSE |
|---|
| 73 |
} |
|---|
| 74 |
|
|---|
| 75 |
|
|---|
| 76 |
void CAddNewProjectCompilerSettingsPage::InitComboBoxes() |
|---|
| 77 |
{ |
|---|
| 78 |
string dmdPath = StripDirPath(Globals::settings->baseSettings->GetCache("dmdPath") ); |
|---|
| 79 |
|
|---|
| 80 |
string libPath = dmdPath + "\\..\\..\\dm\\lib"; |
|---|
| 81 |
|
|---|
| 82 |
vector<string> libs; |
|---|
| 83 |
GetFilesFromDir(libPath,libs); |
|---|
| 84 |
libPath = dmdPath + "\\..\\lib"; |
|---|
| 85 |
GetFilesFromDir(libPath,libs); |
|---|
| 86 |
|
|---|
| 87 |
|
|---|
| 88 |
for ( int i = 0;i < libs.size(); i++ ) { |
|---|
| 89 |
|
|---|
| 90 |
m_libs.AddString(libs[i].c_str() ); |
|---|
| 91 |
} |
|---|
| 92 |
|
|---|
| 93 |
m_libs.SetCurSel(0); |
|---|
| 94 |
|
|---|
| 95 |
|
|---|
| 96 |
m_flags.AddString("A[lignment]"); |
|---|
| 97 |
m_flags.AddString("BAS[e]"); |
|---|
| 98 |
m_flags.AddString("B[atch]"); |
|---|
| 99 |
m_flags.AddString("BI[nary]"); |
|---|
| 100 |
m_flags.AddString("BYO[rdinal]"); |
|---|
| 101 |
m_flags.AddString("CHECKA[bort]"); |
|---|
| 102 |
m_flags.AddString("CHECKE[xe]"); |
|---|
| 103 |
m_flags.AddString("CHECKS[um]"); |
|---|
| 104 |
m_flags.AddString("CO[deview]"); |
|---|
| 105 |
m_flags.AddString("COM[defsearch]"); |
|---|
| 106 |
m_flags.AddString("CP[armaxalloc]"); |
|---|
| 107 |
m_flags.AddString("CVV[ersion]"); |
|---|
| 108 |
m_flags.AddString("CVW[arnings]"); |
|---|
| 109 |
m_flags.AddString("DEB[ug]"); |
|---|
| 110 |
m_flags.AddString("DEBUGA[pploader]"); |
|---|
| 111 |
m_flags.AddString("DEBUGB[rowser]"); |
|---|
| 112 |
m_flags.AddString("DEBUGC[overages]"); |
|---|
| 113 |
m_flags.AddString("DEBUGF[iles]"); |
|---|
| 114 |
m_flags.AddString("DEBUGLI[nes]"); |
|---|
| 115 |
m_flags.AddString("DEBUGLO[cals]"); |
|---|
| 116 |
m_flags.AddString("DEBUGM[odules]"); |
|---|
| 117 |
m_flags.AddString("DEBUGP[ublics]"); |
|---|
| 118 |
m_flags.AddString("DEBUGR[eferences]"); |
|---|
| 119 |
m_flags.AddString("DEBUGT[ypes]"); |
|---|
| 120 |
m_flags.AddString("DEF[aultlibrarysearch]"); |
|---|
| 121 |
m_flags.AddString("DE[lexecutable]"); |
|---|
| 122 |
m_flags.AddString("DET[ailedmap]"); |
|---|
| 123 |
m_flags.AddString("DO[sseg]"); |
|---|
| 124 |
m_flags.AddString("EC[hoindirect]"); |
|---|
| 125 |
m_flags.AddString("EMSM[axsize]"); |
|---|
| 126 |
m_flags.AddString("EMSP[ageframeio]"); |
|---|
| 127 |
m_flags.AddString("EMSU[se40]"); |
|---|
| 128 |
m_flags.AddString("EN[try]"); |
|---|
| 129 |
m_flags.AddString("ER[rorflag]"); |
|---|
| 130 |
m_flags.AddString("E[xepack]"); |
|---|
| 131 |
m_flags.AddString("EXET[ype]"); |
|---|
| 132 |
m_flags.AddString("F[arcalltranslation]"); |
|---|
| 133 |
m_flags.AddString("FI[xds]"); |
|---|
| 134 |
m_flags.AddString("FIXE[d]"); |
|---|
| 135 |
m_flags.AddString("G[roupassociation]"); |
|---|
| 136 |
m_flags.AddString("GROUPS[tack]"); |
|---|
| 137 |
m_flags.AddString("HEA[p]"); |
|---|
| 138 |
m_flags.AddString("H[elp]"); |
|---|
| 139 |
m_flags.AddString("IG[norecase]"); |
|---|
| 140 |
m_flags.AddString("IMPD[ef]"); |
|---|
| 141 |
m_flags.AddString("IMPL[ib]"); |
|---|
| 142 |
m_flags.AddString("IMPLIBC[off]"); |
|---|
| 143 |
m_flags.AddString("I[nformation]"); |
|---|
| 144 |
m_flags.AddString("L[inenumbers]"); |
|---|
| 145 |
m_flags.AddString("LO[wercase]"); |
|---|
| 146 |
m_flags.AddString("MAC[hine]"); |
|---|
| 147 |
m_flags.AddString("M[ap]"); |
|---|
| 148 |
m_flags.AddString("NOB[atch]"); |
|---|
| 149 |
m_flags.AddString("NOCHECKA[bort]"); |
|---|
| 150 |
m_flags.AddString("NOCHECKE[xe]"); |
|---|
| 151 |
m_flags.AddString("NOCHECKS[um]"); |
|---|
| 152 |
m_flags.AddString("NOCO[deview]"); |
|---|
| 153 |
m_flags.AddString("NOCOM[defsearch]"); |
|---|
| 154 |
m_flags.AddString("NOCV[pack]"); |
|---|
| 155 |
m_flags.AddString("NODEB[ug]"); |
|---|
| 156 |
m_flags.AddString("NODEBUGA[pploader]"); |
|---|
| 157 |
m_flags.AddString("NODEBUGB[rowser]"); |
|---|
| 158 |
m_flags.AddString("NODEBUGC[overages]"); |
|---|
| 159 |
m_flags.AddString("NODEBUGLI[nes]"); |
|---|
| 160 |
m_flags.AddString("NODEBUGLO[cals]"); |
|---|
| 161 |
m_flags.AddString("NODEBUGP[ublics]"); |
|---|
| 162 |
m_flags.AddString("NODEBUGR[eferences]"); |
|---|
| 163 |
m_flags.AddString("NODEBUGT[ypes]"); |
|---|
| 164 |
m_flags.AddString("NOD[efaultlibrarysearch]"); |
|---|
| 165 |
m_flags.AddString("NODEL[executable]"); |
|---|
| 166 |
m_flags.AddString("NODET[ailedmap]"); |
|---|
| 167 |
m_flags.AddString("NODO[sseg]"); |
|---|
| 168 |
m_flags.AddString("NOEC[hoindirect]"); |
|---|
| 169 |
m_flags.AddString("NOEMSP[ageframeio]"); |
|---|
| 170 |
m_flags.AddString("NOEMSU[se40]"); |
|---|
| 171 |
m_flags.AddString("NOER[rorflag]"); |
|---|
| 172 |
m_flags.AddString("NOEXE[pack]"); |
|---|
| 173 |
m_flags.AddString("NOE[xtdictionary]"); |
|---|
| 174 |
m_flags.AddString("NOF[arcalltranslation]"); |
|---|
| 175 |
m_flags.AddString("NOFI[xds]"); |
|---|
| 176 |
m_flags.AddString("NOG[roupassociation]"); |
|---|
| 177 |
m_flags.AddString("NOGROUPS[tack]"); |
|---|
| 178 |
m_flags.AddString("NOI[gnorecase]"); |
|---|
| 179 |
m_flags.AddString("NOLI[nenumbers]"); |
|---|
| 180 |
m_flags.AddString("NOL[ogo]"); |
|---|
| 181 |
m_flags.AddString("NOM[ap]"); |
|---|
| 182 |
m_flags.AddString("NONA[mes]"); |
|---|
| 183 |
m_flags.AddString("NONT[host]"); |
|---|
| 184 |
m_flags.AddString("NON[ullsdosseg]"); |
|---|
| 185 |
m_flags.AddString("NOP[ackcode]"); |
|---|
| 186 |
m_flags.AddString("NOPACKD[ata]"); |
|---|
| 187 |
m_flags.AddString("NOPACKF[unctions]"); |
|---|
| 188 |
m_flags.AddString("NOPACKI[fnosegments]"); |
|---|
| 189 |
m_flags.AddString("NOPAU[se]"); |
|---|
| 190 |
m_flags.AddString("NOPR[ompt]"); |
|---|
| 191 |
m_flags.AddString("NOR[elocationcheck]"); |
|---|
| 192 |
m_flags.AddString("NOREO[rdersegments]"); |
|---|
| 193 |
m_flags.AddString("NOSCANLIB "); |
|---|
| 194 |
m_flags.AddString("NOSCANLINK"); |
|---|
| 195 |
m_flags.AddString("NOWARND[ups]"); |
|---|
| 196 |
m_flags.AddString("NOWI[npack]"); |
|---|
| 197 |
m_flags.AddString("NOX[ref]"); |
|---|
| 198 |
m_flags.AddString("NT[host]"); |
|---|
| 199 |
m_flags.AddString("NU[llsdosseg]"); |
|---|
| 200 |
m_flags.AddString("ON[error]"); |
|---|
| 201 |
m_flags.AddString("OPT "); |
|---|
| 202 |
m_flags.AddString("PAC[kcode]"); |
|---|
| 203 |
m_flags.AddString("PACKD[ata]"); |
|---|
| 204 |
m_flags.AddString("PACKF[unctions]"); |
|---|
| 205 |
m_flags.AddString("PACKI[fnosegments]"); |
|---|
| 206 |
m_flags.AddString("PACKS[ize]"); |
|---|
| 207 |
m_flags.AddString("PADC[ode]"); |
|---|
| 208 |
m_flags.AddString("PADD[ata]"); |
|---|
| 209 |
m_flags.AddString("PAG[esize]"); |
|---|
| 210 |
m_flags.AddString("PAU[se]"); |
|---|
| 211 |
m_flags.AddString("PM[type]"); |
|---|
| 212 |
m_flags.AddString("PR[ompt]"); |
|---|
| 213 |
m_flags.AddString("RC "); |
|---|
| 214 |
m_flags.AddString("RELOC[ationcheck]"); |
|---|
| 215 |
m_flags.AddString("REO[rdersegments]"); |
|---|
| 216 |
m_flags.AddString("SCANLIB "); |
|---|
| 217 |
m_flags.AddString("SCANLINK "); |
|---|
| 218 |
m_flags.AddString("SE[gments]"); |
|---|
| 219 |
m_flags.AddString("SEGP[ack]"); |
|---|
| 220 |
m_flags.AddString("SI[lent]"); |
|---|
| 221 |
m_flags.AddString("ST[ack]"); |
|---|
| 222 |
m_flags.AddString("STU[b]"); |
|---|
| 223 |
m_flags.AddString("SU[bsystem]"); |
|---|
| 224 |
m_flags.AddString("T[iny]"); |
|---|
| 225 |
m_flags.AddString("U[ppercase]"); |
|---|
| 226 |
m_flags.AddString("VERS[ion]"); |
|---|
| 227 |
m_flags.AddString("W[arnfixup]"); |
|---|
| 228 |
m_flags.AddString("WARND[ups]"); |
|---|
| 229 |
m_flags.AddString("WI[npack]"); |
|---|
| 230 |
m_flags.AddString("XM[smaxsize]"); |
|---|
| 231 |
m_flags.AddString("X[ref]"); |
|---|
| 232 |
m_flags.AddString("XN[oignorecase]"); |
|---|
| 233 |
m_flags.AddString("XU[ppercase]"); |
|---|
| 234 |
|
|---|
| 235 |
m_flags.SetCurSel(0); |
|---|
| 236 |
} |
|---|
| 237 |
|
|---|
| 238 |
void CAddNewProjectCompilerSettingsPage::OnSelchangeCombo1() |
|---|
| 239 |
{ |
|---|
| 240 |
UpdateData(); |
|---|
| 241 |
CString text; |
|---|
| 242 |
m_libs.GetLBText(m_libs.GetCurSel() ,text); |
|---|
| 243 |
|
|---|
| 244 |
if ( m_csLibs != "" ) m_csLibs += "," + text; |
|---|
| 245 |
|
|---|
| 246 |
else m_csLibs = text; |
|---|
| 247 |
|
|---|
| 248 |
UpdateData(FALSE); |
|---|
| 249 |
|
|---|
| 250 |
} |
|---|
| 251 |
|
|---|
| 252 |
void CAddNewProjectCompilerSettingsPage::OnSelchangeCombo2() |
|---|
| 253 |
{ |
|---|
| 254 |
UpdateData(); |
|---|
| 255 |
|
|---|
| 256 |
CString text; |
|---|
| 257 |
m_flags.GetLBText(m_flags.GetCurSel() ,text); |
|---|
| 258 |
|
|---|
| 259 |
int pos = 0; |
|---|
| 260 |
if ( (pos = text.Find("[") ) != -1 ) text = text.Left(pos); |
|---|
| 261 |
|
|---|
| 262 |
|
|---|
| 263 |
if ( m_csLinker != "" ) m_csLinker += "," + text; |
|---|
| 264 |
else m_csLinker = text; |
|---|
| 265 |
|
|---|
| 266 |
UpdateData(FALSE); |
|---|
| 267 |
|
|---|
| 268 |
} |
|---|