root/trunk/LinkerSettingsPage.cpp

Revision 5, 7.8 kB (checked in by qbert, 6 years ago)

Initial ( and last :( ) commit

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