1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: Generate sample VC++ project files
4 // Author: Julian Smart
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
13 #pragma implementation "makeproj.h"
16 // For compilers that support precompilation, includes "wx.h".
17 #include "wx/wxprec.h"
19 #if defined(__BORLANDC__)
24 #include "wx/resource.h"
30 #include "projgenrc.h"
32 // ----------------------------------------------------------------------------
34 // ----------------------------------------------------------------------------
35 // the application icon
36 #if defined(__WXGTK__) || defined(__WXMOTIF__)
37 #include "mondrian.xpm"
40 // ----------------------------------------------------------------------------
42 // ----------------------------------------------------------------------------
44 // Define a new application type, each program should derive a class from wxApp
45 class MyApp
: public wxApp
48 // override base class virtuals
49 // ----------------------------
51 // this one is called on application startup and is a good place for the app
52 // initialization (doing it here and not in the ctor allows to have an error
53 // return: if OnInit() returns false, the application terminates)
54 virtual bool OnInit();
56 bool GenerateSample(const wxString
& projectName
, const wxString
& targetName
,
57 const wxString
& path
, const wxStringList
& sourceFiles
, const wxString
& relativeRootPath
= "../..");
58 void GenerateSamples(const wxString
& dir
); // Takes wxWindows directory path
61 // Define a new frame type: this is going to be our main frame
62 class MyFrame
: public wxFrame
66 MyFrame(const wxString
& title
, const wxPoint
& pos
, const wxSize
& size
);
68 // event handlers (these functions should _not_ be virtual)
69 void OnQuit(wxCommandEvent
& event
);
70 void OnAbout(wxCommandEvent
& event
);
71 void OnGenerate(wxCommandEvent
& event
);
73 bool GenerateSample(const wxString
& projectName
, const wxString
& targetName
,
74 const wxString
& path
, const wxStringList
& sourceFiles
, const wxString
& relativeRootPath
= "../..");
77 // any class wishing to process wxWindows events must use this macro
81 // Define a dialog: this will be our main dialog
82 class MyDialog
: public wxDialog
86 MyDialog(const wxString
& title
, const wxPoint
& pos
= wxDefaultPosition
, const wxSize
& size
= wxDefaultSize
);
88 // event handlers (these functions should _not_ be virtual)
89 void OnQuit(wxCommandEvent
& event
);
90 void OnAbout(wxCommandEvent
& event
);
91 void OnGenerate(wxCommandEvent
& event
);
92 void OnGenerateSamples(wxCommandEvent
& event
);
95 // any class wishing to process wxWindows events must use this macro
100 // ----------------------------------------------------------------------------
102 // ----------------------------------------------------------------------------
104 // IDs for the controls and the menu commands
108 MakeProject_Quit
= 1,
110 MakeProject_Generate
,
111 MakeProject_GenerateSamples
,
113 // controls start here (the numbers are, of course, arbitrary)
114 MakeProject_Text
= 1000,
117 // ----------------------------------------------------------------------------
118 // event tables and other macros for wxWindows
119 // ----------------------------------------------------------------------------
121 // the event tables connect the wxWindows events with the functions (event
122 // handlers) which process them. It can be also done at run-time, but for the
123 // simple menu events like this the static method is much simpler.
124 BEGIN_EVENT_TABLE(MyFrame
, wxFrame
)
125 EVT_MENU(MakeProject_Quit
, MyFrame::OnQuit
)
126 EVT_MENU(MakeProject_About
, MyFrame::OnAbout
)
127 EVT_MENU(MakeProject_Generate
, MyFrame::OnGenerate
)
130 // Create a new application object: this macro will allow wxWindows to create
131 // the application object during program execution (it's better than using a
132 // static object for many reasons) and also declares the accessor function
133 // wxGetApp() which will return the reference of the right type (i.e. MyApp and
137 // ============================================================================
139 // ============================================================================
141 // ----------------------------------------------------------------------------
142 // the application class
143 // ----------------------------------------------------------------------------
145 // 'Main program' equivalent: the program execution "starts" here
149 // Create the main application window
150 MyFrame
*frame
= new MyFrame("MakeProject wxWindows App",
151 wxPoint(50, 50), wxSize(450, 340));
156 wxResourceParseFile("projgenrc.wxr");
158 MyDialog
* dialog
= new MyDialog("VC++ MakeProject");
166 bool MyApp::GenerateSample(const wxString
& projectName
, const wxString
& targetName
,
167 const wxString
& path
, const wxStringList
& sourceFiles
, const wxString
& relativeRootPath
)
169 wxString
relativeIncludePath(relativeRootPath
+ wxString("/include"));
170 wxString
relativeLibPath(relativeRootPath
+ wxString("/lib"));
171 wxString
relativeDebugPath(relativeRootPath
+ wxString("/src/Debug"));
172 wxString
relativeReleasePath(relativeRootPath
+ wxString("/src/Release"));
173 wxString
relativeDebugPathJPEG(relativeRootPath
+ wxString("/src/jpeg/Debug"));
174 wxString
relativeReleasePathJPEG(relativeRootPath
+ wxString("/src/jpeg/Release"));
175 wxString
relativeDebugPathTIFF(relativeRootPath
+ wxString("/src/tiff/Debug"));
176 wxString
relativeReleasePathTIFF(relativeRootPath
+ wxString("/src/tiff/Release"));
181 project
.SetIncludeDirs(wxStringList((const char*) relativeIncludePath
, 0));
182 project
.SetResourceIncludeDirs(wxStringList((const char*) relativeIncludePath
, 0));
183 project
.SetLibDirs(wxStringList((const char*) relativeLibPath
, 0));
184 project
.SetDebugLibDirs(wxStringList((const char*) relativeDebugPath
, (const char*) relativeDebugPathJPEG
, (const char*) relativeDebugPathTIFF
, 0));
185 project
.SetReleaseLibDirs(wxStringList((const char*) relativeReleasePath
, (const char*) relativeReleasePathJPEG
, (const char*) relativeReleasePathTIFF
, 0));
186 project
.SetExtraLibs(wxStringList("opengl32.lib", "glu32.lib", 0));
188 project
.SetProjectName(projectName
);
189 project
.SetTargetName(targetName
);
190 project
.SetProjectPath(path
);
191 project
.SetSourceFiles(sourceFiles
);
193 if (!project
.GenerateVCProject())
195 wxString
msg("Could not generate ");
204 void MyApp::GenerateSamples(const wxString
& dir
)
206 // Small bug. Because we don't distinguish between Debug/DebugDLL, Release/ReleaseDLL,
207 // we can't yet make a sample that uses other wxWindows static libraries + the wxWindows DLL library.
211 GenerateSample("CalendarVC", "calendar", dir
+ wxString("/samples/calendar"), wxStringList("calendar.cpp", 0));
212 GenerateSample("CaretVC", "caret", dir
+ wxString("/samples/caret"), wxStringList("caret.cpp", 0));
213 GenerateSample("CheckLstVC", "checklst", dir
+ wxString("/samples/checklst"), wxStringList("checklst.cpp", 0));
214 GenerateSample("ConfigVC", "conftest", dir
+ wxString("/samples/config"), wxStringList("conftest.cpp", 0));
215 GenerateSample("ControlsVC", "controls", dir
+ wxString("/samples/controls"), wxStringList("controls.cpp", 0));
216 GenerateSample("DbVC", "dbtest", dir
+ wxString("/samples/db"),
217 wxStringList("dbtest.cpp", "listdb.cpp", "dbtest.h", "listdb.h", 0));
218 GenerateSample("DialogsVC", "dialogs", dir
+ wxString("/samples/dialogs"),
219 wxStringList("dialogs.cpp", "dialogs.h", 0));
220 GenerateSample("DndVC", "dnd", dir
+ wxString("/samples/dnd"), wxStringList("dnd.cpp", 0));
221 GenerateSample("DocViewVC", "docview", dir
+ wxString("/samples/docview"),
222 wxStringList("docview.cpp", "doc.cpp", "view.cpp", "docview.h", "doc.h", "view.h", 0));
223 GenerateSample("DocVwMDIVC", "docview", dir
+ wxString("/samples/docvwmdi"),
224 wxStringList("docview.cpp", "doc.cpp", "view.cpp", "docview.h", "doc.h", "view.h", 0));
225 GenerateSample("DynamicVC", "dynamic", dir
+ wxString("/samples/dynamic"), wxStringList("dynamic.cpp", 0));
226 GenerateSample("DrawingVC", "drawing", dir
+ wxString("/samples/drawing"), wxStringList("drawing.cpp", 0));
227 GenerateSample("ExecVC", "exec", dir
+ wxString("/samples/exec"), wxStringList("exec.cpp", 0));
228 GenerateSample("GridVC", "test", dir
+ wxString("/samples/grid"), wxStringList("test.cpp", 0));
229 GenerateSample("NewGridVC", "griddemo", dir
+ wxString("/samples/newgrid"), wxStringList("griddemo.cpp", 0));
230 GenerateSample("HelpVC", "demo", dir
+ wxString("/samples/help"), wxStringList("demo.cpp", 0));
233 GenerateSample("CubeVC", "cube", dir
+ wxString("/samples/opengl/cube"), wxStringList("cube.cpp", "cube.h", 0),
235 GenerateSample("IsosurfVC", "isosurf", dir
+ wxString("/samples/opengl/isosurf"), wxStringList("isosurf.cpp", "isousrf.h", 0),
237 GenerateSample("PenguinVC", "penguin", dir
+ wxString("/samples/opengl/penguin"), wxStringList("penguin.cpp", "penguin.h",
238 "lw.cpp", "lw.h", "trackball.c", "trackball.h", 0), "../../..");
241 GenerateSample("AboutVC", "about", dir
+ wxString("/samples/html/about"), wxStringList("about.cpp", 0),
243 GenerateSample("HelpVC", "help", dir
+ wxString("/samples/html/help"), wxStringList("help.cpp", 0),
245 GenerateSample("PrintingVC", "printing", dir
+ wxString("/samples/html/printing"), wxStringList("printing.cpp", 0),
247 GenerateSample("TestVC", "test", dir
+ wxString("/samples/html/test"), wxStringList("test.cpp", 0),
249 GenerateSample("VirtualVC", "virtual", dir
+ wxString("/samples/html/virtual"), wxStringList("virtual.cpp", 0),
251 GenerateSample("WidgetVC", "widget", dir
+ wxString("/samples/html/widget"), wxStringList("widget.cpp", 0),
253 GenerateSample("ZipVC", "zip", dir
+ wxString("/samples/html/zip"), wxStringList("zip.cpp", 0),
255 GenerateSample("HelpViewVC", "helpview", dir
+ wxString("/samples/html/helpview"), wxStringList("helpview.cpp", 0),
258 GenerateSample("ImageVC", "image", dir
+ wxString("/samples/image"), wxStringList("image.cpp", 0));
259 GenerateSample("InternatVC", "internat", dir
+ wxString("/samples/internat"), wxStringList("internat.cpp", 0));
260 GenerateSample("JoytestVC", "joytest", dir
+ wxString("/samples/joytest"), wxStringList("joytest.cpp", "joytest.h", 0));
261 GenerateSample("LayoutVC", "layout", dir
+ wxString("/samples/layout"), wxStringList("layout.cpp", "layout.h", 0));
262 GenerateSample("ListctrlVC", "listtest", dir
+ wxString("/samples/listctrl"), wxStringList("listtest.cpp", "listtest.h", 0));
263 GenerateSample("MdiVC", "mdi", dir
+ wxString("/samples/mdi"), wxStringList("mdi.cpp", "mdi.h", 0));
264 GenerateSample("MemcheckVC", "memcheck", dir
+ wxString("/samples/memcheck"), wxStringList("memcheck.cpp", 0));
265 // Note: MFC sample will be different.
266 GenerateSample("MfcVC", "mfc", dir
+ wxString("/samples/mfc"), wxStringList("mfctest.cpp", "mfctest.h", 0));
267 GenerateSample("MiniframVC", "test", dir
+ wxString("/samples/minifram"), wxStringList("test.cpp", "test.h", 0));
268 GenerateSample("MinimalVC", "minimal", dir
+ wxString("/samples/minimal"), wxStringList("minimal.cpp", 0));
269 GenerateSample("NativdlgVC", "nativdlg", dir
+ wxString("/samples/nativdlg"), wxStringList("nativdlg.cpp", "nativdlg.h", "resource.h", 0));
270 GenerateSample("DialupVC", "nettest", dir
+ wxString("/samples/dialup"), wxStringList("nettest.cpp", 0));
271 GenerateSample("NotebookVC", "test", dir
+ wxString("/samples/notebook"), wxStringList("test.cpp", "test.h", 0));
272 GenerateSample("OleautoVC", "oleauto", dir
+ wxString("/samples/oleauto"), wxStringList("oleauto.cpp", 0));
273 GenerateSample("OwnerdrwVC", "ownerdrw", dir
+ wxString("/samples/ownerdrw"), wxStringList("ownerdrw.cpp", 0));
274 GenerateSample("PngVC", "pngdemo", dir
+ wxString("/samples/png"), wxStringList("pngdemo.cpp", "pngdemo.h", 0));
275 GenerateSample("PrintingVC", "printing", dir
+ wxString("/samples/printing"), wxStringList("printing.cpp", "printing.h", 0));
276 GenerateSample("ProplistVC", "test", dir
+ wxString("/samples/proplist"), wxStringList("test.cpp", "test.h", 0));
277 GenerateSample("PropsizeVC", "propsize", dir
+ wxString("/samples/propsize"), wxStringList("propsize.cpp", 0));
278 GenerateSample("RegtestVC", "regtest", dir
+ wxString("/samples/regtest"), wxStringList("regtest.cpp", 0));
279 GenerateSample("ResourceVC", "resource", dir
+ wxString("/samples/resource"), wxStringList("resource.cpp", "resource.h", 0));
280 GenerateSample("RichEditVC", "wxLayout", dir
+ wxString("/samples/richedit"), wxStringList("wxLayout.cpp",
281 "kbList.cpp", "wxllist.cpp", "wxlparser.cpp", "wxlwindow.cpp", 0));
282 GenerateSample("SashtestVC", "sashtest", dir
+ wxString("/samples/sashtest"), wxStringList("sashtest.cpp", "sashtest.h", 0));
283 GenerateSample("ScrollVC", "scroll", dir
+ wxString("/samples/scroll"), wxStringList("scroll.cpp", 0));
284 GenerateSample("ScrollsubVC", "scrollsub", dir
+ wxString("/samples/scrollsub"), wxStringList("scrollsub.cpp", 0));
285 GenerateSample("SplitterVC", "test", dir
+ wxString("/samples/splitter"), wxStringList("test.cpp", 0));
286 GenerateSample("TabVC", "test", dir
+ wxString("/samples/tab"), wxStringList("test.cpp", "test.h", 0));
287 GenerateSample("TaskbarVC", "tbtest", dir
+ wxString("/samples/taskbar"), wxStringList("tbtest.cpp", "tbtest.h", 0));
288 GenerateSample("TextVC", "text", dir
+ wxString("/samples/text"), wxStringList("text.cpp", 0));
289 GenerateSample("ThreadVC", "test", dir
+ wxString("/samples/thread"), wxStringList("test.cpp", 0));
290 GenerateSample("ToolbarVC", "toolbar", dir
+ wxString("/samples/toolbar"), wxStringList("toolbar.cpp", 0));
291 GenerateSample("TreectrlVC", "treetest", dir
+ wxString("/samples/treectrl"), wxStringList("treetest.cpp", "treetest.h", 0));
292 GenerateSample("TypetestVC", "typetest", dir
+ wxString("/samples/typetest"), wxStringList("typetest.cpp", "typetest.h", 0));
293 GenerateSample("ValidateVC", "validate", dir
+ wxString("/samples/validate"), wxStringList("validate.cpp", "validate.h", 0));
294 GenerateSample("ClientVC", "client", dir
+ wxString("/samples/sockets"), wxStringList("client.cpp", 0));
295 GenerateSample("ServerVC", "server", dir
+ wxString("/samples/sockets"), wxStringList("server.cpp", 0));
296 GenerateSample("ClientVC", "client", dir
+ wxString("/samples/ipc"), wxStringList("client.cpp", "client.h", "ddesetup.h", 0));
297 GenerateSample("ServerVC", "server", dir
+ wxString("/samples/ipc"), wxStringList("server.cpp", "server.h", "ddesetup.h", 0));
298 GenerateSample("CaretVC", "caret", dir
+ wxString("/samples/caret"), wxStringList("caret.cpp", 0));
299 GenerateSample("DrawingVC", "drawing", dir
+ wxString("/samples/drawing"), wxStringList("drawing.cpp", 0));
300 GenerateSample("ScrollVC", "scroll", dir
+ wxString("/samples/scroll"), wxStringList("scroll.cpp", 0));
301 GenerateSample("WizardVC", "wiztest", dir
+ wxString("/samples/wizard"), wxStringList("wiztest.cpp", 0));
302 GenerateSample("RotateVC", "rotate", dir
+ wxString("/samples/rotate"), wxStringList("rotate.cpp", 0));
303 GenerateSample("ExecVC", "exec", dir
+ wxString("/samples/exec"), wxStringList("exec.cpp", 0));
304 GenerateSample("FontVC", "font", dir
+ wxString("/samples/font"), wxStringList("font.cpp", 0));
305 GenerateSample("MenuVC", "menu", dir
+ wxString("/samples/menu"), wxStringList("menu.cpp", 0));
306 GenerateSample("TreelayVC", "test", dir
+ wxString("/samples/treelay"), wxStringList("test.cpp", "test.h", 0));
307 GenerateSample("DragimagVC", "test", dir
+ wxString("/samples/dragimag"), wxStringList("test.cpp", "test.h", 0));
311 GenerateSample("BombsVC", "bombs", dir
+ wxString("/demos/bombs"),
312 wxStringList("bombs.cpp", "bombs1.cpp", "game.cpp", "bombs.h", "game.h", 0));
314 GenerateSample("FortyVC", "forty", dir
+ wxString("/demos/forty"),
315 wxStringList("forty.cpp", "canvas.cpp", "card.cpp", "game.cpp", "pile.cpp", "playerdg.cpp", "scoredg.cpp", "scorefil.cpp",
316 "canvas.h", "forty.h", "card.h", "game.h", "pile.h", "playerdg.h", "scoredg.h", "scorefil.h",
319 GenerateSample("FractalVC", "fractal", dir
+ wxString("/demos/fractal"), wxStringList("fractal.cpp", 0));
321 GenerateSample("LifeVC", "life", dir
+ wxString("/demos/life"),
322 wxStringList("life.cpp", "game.cpp", "dialogs.cpp", "life.h", "game.h", "dialogs.h", 0));
324 GenerateSample("PoemVC", "wxpoem", dir
+ wxString("/demos/poem"), wxStringList("wxpoem.cpp", "wxpoem.h", 0));
326 GenerateSample("DbbrowseVC", "dbbrowse", dir
+ wxString("/demos/dbbrowse"),
327 wxStringList("dbbrowse.cpp", "browsedb.cpp", "dbgrid.cpp", "dbtree.cpp", "dlguser.cpp", "doc.cpp",
328 "pgmctrl.cpp", "tabpgwin.cpp",
329 "dbbrowse.h", "browsedb.h", "dbgrid.h", "dbtree.h", "dlguser.h", "doc.h", "pgmctrl.h", "std.h", "tabpgwin.h",
337 project
.SetIncludeDirs(wxStringList("../../../include", 0));
338 project
.SetResourceIncludeDirs(wxStringList("../../../include", 0));
339 project
.SetLibDirs(wxStringList("../../../lib", 0));
340 project
.SetDebugLibDirs(wxStringList("../../../src/Debug", "../../../src/jpeg/Debug", "../../../src/tiff/Debug", 0));
341 project
.SetReleaseLibDirs(wxStringList("../../../src/Release", "../../../src/jpeg/Release", "../../../src/tiff/Release", 0));
343 project
.SetProjectName("DialogEdVC");
344 project
.SetTargetName("dialoged");
345 project
.SetProjectPath(dir
+ wxString("/utils/dialoged/src"));
346 project
.SetSourceFiles(wxStringList("dialoged.cpp", "dlghndlr.cpp", "edlist.cpp", "edtree.cpp",
347 "reseditr.cpp", "reswrite.cpp", "symbtabl.cpp", "winstyle.cpp", "winprop.cpp",
348 "dialoged.h", "dlghndlr.h", "edlist.h", "edtree.h", "reseditr.h", "symbtabl.h", "winprop.h",
352 if (!project
.GenerateVCProject())
354 wxString
msg("Could not generate Dialog Editor project");
359 project
.SetIncludeDirs(wxStringList("../../../include", 0));
360 project
.SetResourceIncludeDirs(wxStringList("../../../include", 0));
361 project
.SetLibDirs(wxStringList("../../../lib", 0));
362 project
.SetDebugLibDirs(wxStringList("../../../src/Debug", "../../../src/jpeg/Debug", "../../../src/tiff/Debug", 0));
363 project
.SetReleaseLibDirs(wxStringList("../../../src/Release", "../../../src/jpeg/Release", "../../../src/tiff/Release", 0));
365 project
.SetProjectName("Tex2RTFVC");
366 project
.SetTargetName("tex2rtf");
367 project
.SetProjectPath(dir
+ wxString("/utils/tex2rtf/src"));
368 project
.SetSourceFiles(wxStringList("tex2rtf.cpp", "htmlutil.cpp", "readshg.cpp", "rtfutils.cpp",
369 "table.cpp", "tex2any.cpp", "texutils.cpp", "xlputils.cpp",
370 "bmputils.h", "readshg.h", "rtfutils.h", "table.h", "tex2any.h", "tex2rtf.h", "wxhlpblk.h",
373 if (!project
.GenerateVCProject())
375 wxString
msg("Could not generate Tex2RTF project");
380 project
.SetIncludeDirs(wxStringList("../../../include", 0));
381 project
.SetResourceIncludeDirs(wxStringList("../../../include", 0));
382 project
.SetLibDirs(wxStringList("../../../lib", 0));
383 project
.SetDebugLibDirs(wxStringList("../../../src/Debug", "../../../src/jpeg/Debug", "../../../src/tiff/Debug", 0));
384 project
.SetReleaseLibDirs(wxStringList("../../../src/Release", "../../../src/jpeg/Release", "../../../src/tiff/Release", 0));
386 project
.SetProjectName("HelpGenVC");
387 project
.SetTargetName("helpgen");
388 project
.SetProjectPath(dir
+ wxString("/utils/helpgen/src"));
389 project
.SetSourceFiles(wxStringList("helpgen.cpp", "cjparser.cpp", "docripper.cpp", "ifcontext.cpp",
390 "markup.cpp", "ripper_main.cpp", "scriptbinder.cpp", "sourcepainter.cpp",
392 "cjparser.h", "docripper.h", "ifcontext.h", "markup.h", "scriptbinder.h", "sourcepainter.h",
393 "srcparser.h", "wxstlac.h", "wxstllst.h", "wxstlvec.h", 0));
395 if (!project
.GenerateVCProject())
397 wxString
msg("Could not generate HelpGen project");
402 project
.SetIncludeDirs(wxStringList("../../include", 0));
403 project
.SetResourceIncludeDirs(wxStringList("../../include", 0));
404 project
.SetLibDirs(wxStringList("../../lib", 0));
405 project
.SetDebugLibDirs(wxStringList("../../src/Debug", "../../src/jpeg/Debug", "../../src/tiff/Debug", 0));
406 project
.SetReleaseLibDirs(wxStringList("../../src/Release", "../../src/jpeg/Release", "../../src/tiff/Release", 0));
408 project
.SetProjectName("ProjGenVC");
409 project
.SetTargetName("makeproj");
410 project
.SetProjectPath(dir
+ wxString("/utils/projgen"));
411 project
.SetSourceFiles(wxStringList("makeproj.cpp", "makeproj.h", 0));
413 if (!project
.GenerateVCProject())
415 wxString
msg("Could not generate ProjGen project");
420 project
.SetIncludeDirs(wxStringList("../../include", 0));
421 project
.SetResourceIncludeDirs(wxStringList("../../include", 0));
422 project
.SetLibDirs(wxStringList("../../lib", 0));
423 project
.SetDebugLibDirs(wxStringList("../../src/Debug", "../../src/jpeg/Debug", "../../src/tiff/Debug", 0));
424 project
.SetReleaseLibDirs(wxStringList("../../src/Release", "../../src/jpeg/Release", "../../src/tiff/Release", 0));
426 project
.SetProjectName("hhp2cachedVC");
427 project
.SetTargetName("hhp2cached");
428 project
.SetProjectPath(dir
+ wxString("/utils/hhp2cached"));
429 project
.SetSourceFiles(wxStringList("hhp2cached.cpp", 0));
431 if (!project
.GenerateVCProject())
433 wxString
msg("Could not generate hhp2cached project");
437 // OGLEdit. We have to do it the long way because we need to add the extra ogl.lib.
439 project
.SetIncludeDirs(wxStringList("../../../../include", "../../../include", 0));
440 project
.SetResourceIncludeDirs(wxStringList("../../../../include", "../../../include", 0));
441 project
.SetLibDirs(wxStringList("../../../../lib", "../../../lib", 0));
442 project
.SetDebugLibDirs(wxStringList("../../../../src/Debug", "../../../src/ogl/Debug", "../../../../src/jpeg/Debug", "../../../../src/tiff/Debug", 0));
443 project
.SetReleaseLibDirs(wxStringList("../../../../src/Release", "../../../src/ogl/Release", "../../../../src/jpeg/Release", "../../../../src/tiff/Release", 0));
445 project
.SetExtraLibs(wxStringList("ogl.lib", 0));
447 project
.SetProjectName("OGLEditVC");
448 project
.SetTargetName("ogledit");
449 project
.SetProjectPath(dir
+ wxString("/contrib/samples/ogl/ogledit"));
450 project
.SetSourceFiles(wxStringList("ogledit.cpp", "doc.cpp", "palette.cpp", "view.cpp",
451 "doc.h", "ogledit.h", "palette.h", "view.h",
454 if (!project
.GenerateVCProject())
456 wxString
msg("Could not generate OGLEdit project");
462 project
.SetIncludeDirs(wxStringList("../../../../include", "../../../include", 0));
463 project
.SetResourceIncludeDirs(wxStringList("../../../../include", "../../../include", 0));
464 project
.SetLibDirs(wxStringList("../../../../lib", "../../../lib", 0));
465 project
.SetDebugLibDirs(wxStringList("../../../../src/Debug", "../../../src/ogl/Debug", "../../../../src/jpeg/Debug", "../../../../src/tiff/Debug", 0));
466 project
.SetReleaseLibDirs(wxStringList("../../../../src/Release", "../../../src/ogl/Release", "../../../../src/jpeg/Release", "../../../../src/tiff/Release", 0));
468 project
.SetExtraLibs(wxStringList("ogl.lib", 0));
470 project
.SetProjectName("StudioVC");
471 project
.SetTargetName("studio");
472 project
.SetProjectPath(dir
+ wxString("/contrib/samples/ogl/studio"));
473 project
.SetSourceFiles(wxStringList("studio.cpp", "cspalette.cpp", "dialogs.cpp", "view.cpp",
474 "doc.cpp", "mainfrm.cpp", "project.cpp", "shapes.cpp", "symbols.cpp", "csprint.cpp",
475 "studio.h", "cspalette.h", "dialogs.h", "view.h",
476 "doc.h", "mainfrm.h", "project.h", "shapes.h", "symbols.h",
479 if (!project
.GenerateVCProject())
481 wxString
msg("Could not generate OGL Studio project");
486 // ----------------------------------------------------------------------------
488 // ----------------------------------------------------------------------------
491 MyFrame::MyFrame(const wxString
& title
, const wxPoint
& pos
, const wxSize
& size
)
492 : wxFrame((wxFrame
*)NULL
, -1, title
, pos
, size
)
494 // set the frame icon
495 SetIcon(wxICON(mondrian
));
498 wxMenu
*menuFile
= new wxMenu
;
500 menuFile
->Append(MakeProject_Generate
, "&Generate");
501 menuFile
->Append(MakeProject_About
, "&About...");
502 menuFile
->AppendSeparator();
503 menuFile
->Append(MakeProject_Quit
, "E&xit");
505 // now append the freshly created menu to the menu bar...
506 wxMenuBar
*menuBar
= new wxMenuBar
;
507 menuBar
->Append(menuFile
, "&File");
509 // ... and attach this menu bar to the frame
512 // create a status bar just for fun (by default with 1 pane only)
514 SetStatusText("Welcome to wxWindows!");
520 void MyFrame::OnQuit(wxCommandEvent
& WXUNUSED(event
))
522 // TRUE is to force the frame to close
526 void MyFrame::OnAbout(wxCommandEvent
& WXUNUSED(event
))
528 wxMessageBox("MakeProject: generates VC++ project files",
529 "About MakeProject", wxOK
| wxICON_INFORMATION
, this);
532 void MyFrame::OnGenerate(wxCommandEvent
& WXUNUSED(event
))
534 wxGetApp().GenerateSamples("d:/wx2/wxWindows");
537 bool MyFrame::GenerateSample(const wxString
& projectName
, const wxString
& targetName
,
538 const wxString
& path
, const wxStringList
& sourceFiles
, const wxString
& relativeRootPath
)
540 return wxGetApp().GenerateSample(projectName
, targetName
, path
, sourceFiles
, relativeRootPath
);
547 wxProject::wxProject()
551 wxProject::~wxProject()
556 bool wxProject::GenerateVCProject()
558 wxString fullProjectName
= m_path
+ wxString("/") + m_projectName
+ ".dsp";
560 ofstream
stream(fullProjectName
);
564 /////////////////////// General stuff
566 stream
<< "# Microsoft Developer Studio Project File - Name=\"" << m_projectName
<< "\" - Package Owner=<4>\n";
567 stream
<< "# Microsoft Developer Studio Generated Build File, Format Version 5.00\n";
568 stream
<< "# (Actually, generated by MakeProject, (c) Julian Smart, 1998)\n";
569 stream
<< "# ** DO NOT EDIT **\n\n";
570 stream
<< "# TARGTYPE \"Win32 (x86) Application\" 0x0101\n\n";
571 stream
<< "CFG=" << m_projectName
<< " - Win32 Debug\n";
572 stream
<< "!MESSAGE This is not a valid makefile. To build this project using NMAKE,\n";
573 stream
<< "!MESSAGE use the Export Makefile command and run\n";
574 stream
<< "!MESSAGE\n";
575 stream
<< "!MESSAGE NMAKE /f \"" << m_projectName
<< ".mak\".\n";
576 stream
<< "!MESSAGE\n";
577 stream
<< "!MESSAGE You can specify a configuration when running NMAKE\n";
578 stream
<< "!MESSAGE by defining the macro CFG on the command line. For example:\n";
579 stream
<< "!MESSAGE\n";
580 stream
<< "!MESSAGE NMAKE /f \"" << m_projectName
<< ".mak\" CFG=\"" << m_projectName
<< " - Win32 Debug\"\n";
581 stream
<< "!MESSAGE\n";
582 stream
<< "!MESSAGE Possible choices for configuration are:\n";
583 stream
<< "!MESSAGE\n";
584 stream
<< "!MESSAGE \"" << m_projectName
<< " - Win32 Release\" (based on \"Win32 (x86) Application\")\n";
585 stream
<< "!MESSAGE \"" << m_projectName
<< " - Win32 Debug\" (based on \"Win32 (x86) Application\")\n";
586 stream
<< "!MESSAGE \"" << m_projectName
<< " - Win32 Debug DLL\" (based on \"Win32 (x86) Application\")\n";
587 stream
<< "!MESSAGE \"" << m_projectName
<< " - Win32 Release DLL\" (based on \"Win32 (x86) Application\")\n";
588 stream
<< "!MESSAGE\n";
590 stream
<< "# Begin Project\n";
591 stream
<< "# PROP Scc_ProjName \"\"\n";
592 stream
<< "# PROP Scc_LocalPath \"\"\n";
593 stream
<< "CPP=cl.exe\n";
594 stream
<< "MTL=midl.exe\n";
595 stream
<< "RSC=rc.exe\n";
598 /////////////////////// Win32 Release target
600 stream
<< "!IF \"$(CFG)\" == \"" << m_projectName
<< " - Win32 Release\"\n";
602 stream
<< "# PROP BASE Use_MFC 0\n";
603 stream
<< "# PROP BASE Use_Debug_Libraries 0\n";
604 stream
<< "# PROP BASE Output_Dir \"Release\"\n";
605 stream
<< "# PROP BASE Intermediate_Dir \"Release\"\n";
606 stream
<< "# PROP BASE Target_Dir \"\"\n";
607 stream
<< "# PROP Use_MFC 0\n";
608 stream
<< "# PROP Use_Debug_Libraries 0\n";
609 stream
<< "# PROP Output_Dir \"Release\"\n";
610 stream
<< "# PROP Intermediate_Dir \"Release\"\n";
611 stream
<< "# PROP Ignore_Export_Lib 0\n";
612 stream
<< "# PROP Target_Dir \"\"\n";
613 stream
<< "# ADD BASE CPP /nologo /W3 /GX /O2 /D \"WIN32\" /D \"NDEBUG\" /D \"_WINDOWS\" /YX /FD /c\n";
614 stream
<< "# ADD CPP /nologo /MD /W3 /GX /O1 /Ob2";
616 int n
= m_includeDirs
.Number();
618 for (i
= 0; i
< n
; i
++)
620 wxString includeDir
= m_includeDirs
[i
];
621 stream
<< " /I \"" << includeDir
<< "\"";
624 stream
<< " /D \"NDEBUG\" /D \"WIN32\" /D \"_WINDOWS\" /D \"__WINDOWS__\" /D \"__WXMSW__\" /D \"__WIN95__\" /D \"__WIN32__\" /D WINVER=0x0400 /D \"STRICT\" /FD /c\n";
625 stream
<< "# SUBTRACT CPP /YX\n";
626 stream
<< "# ADD BASE MTL /nologo /D \"NDEBUG\" /mktyplib203 /o NUL /win32\n";
627 stream
<< "# ADD MTL /nologo /D \"NDEBUG\" /mktyplib203 /o NUL /win32\n";
628 stream
<< "# ADD BASE RSC /l 0x809 /d \"NDEBUG\"\n";
629 stream
<< "# ADD RSC /l 0x809 /d \"NDEBUG\"\n";
630 stream
<< "BSC32=bscmake.exe\n";
631 stream
<< "# ADD BASE BSC32 /nologo\n";
632 stream
<< "# ADD BSC32 /nologo\n";
633 stream
<< "LINK32=link.exe\n";
634 stream
<< "# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib /nologo /subsystem:windows /machine:I386\n";
635 stream
<< "# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib wxvc.lib jpeg.lib tiff.lib ";
636 n
= m_extraLibs
.Number();
637 for (i
= 0; i
< n
; i
++)
639 wxString lib
= m_extraLibs
[i
];
640 stream
<< lib
<< " ";
643 stream
<< "/nologo /subsystem:windows /machine:I386 /nodefaultlib:\"libc.lib,libci.lib,msvcrtd.lib\" /out:\"Release/" << m_targetName
<< ".exe\"";
645 n
= m_releaseLibDirs
.Number();
646 for (i
= 0; i
< n
; i
++)
648 wxString libDir
= m_releaseLibDirs
[i
];
649 stream
<< " /libpath:\"" << libDir
<< "\"";
651 n
= m_libDirs
.Number();
652 for (i
= 0; i
< n
; i
++)
654 wxString libDir
= m_libDirs
[i
];
655 stream
<< " /libpath:\"" << libDir
<< "\"";
660 /////////////////////// Win32 Debug target
662 stream
<< "!ELSEIF \"$(CFG)\" == \"" << m_projectName
<< " - Win32 Debug\"\n";
664 stream
<< "# PROP BASE Use_MFC 0\n";
665 stream
<< "# PROP BASE Use_Debug_Libraries 1\n";
666 stream
<< "# PROP BASE Output_Dir \"Debug\"\n";
667 stream
<< "# PROP BASE Intermediate_Dir \"Debug\"\n";
668 stream
<< "# PROP BASE Target_Dir \"\"\n";
669 stream
<< "# PROP Use_MFC 0\n";
670 stream
<< "# PROP Use_Debug_Libraries 1\n";
671 stream
<< "# PROP Output_Dir \"Debug\"\n";
672 stream
<< "# PROP Intermediate_Dir \"Debug\"\n";
673 stream
<< "# PROP Ignore_Export_Lib 0\n";
674 stream
<< "# PROP Target_Dir \"\"\n";
675 stream
<< "# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D \"WIN32\" /D \"_DEBUG\" /D \"_WINDOWS\" /YX /FD /c\n";
676 stream
<< "# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od";
678 n
= m_includeDirs
.Number();
679 for (i
= 0; i
< n
; i
++)
681 wxString includeDir
= m_includeDirs
[i
];
682 stream
<< " /I \"" << includeDir
<< "\"";
685 stream
<< " /D \"WIN32\" /D \"_DEBUG\" /D \"_WINDOWS\" /D \"__WINDOWS__\" /D \"__WXMSW__\" /D DEBUG=1 /D \"__WXDEBUG__\" /D \"__WIN95__\" /D \"__WIN32__\" /D WINVER=0x0400 /D \"STRICT\" /Yu\"wx/wxprec.h\" /FD /c\n";
686 stream
<< "# ADD BASE MTL /nologo /D \"_DEBUG\" /mktyplib203 /o NUL /win32\n";
687 stream
<< "# ADD MTL /nologo /D \"_DEBUG\" /mktyplib203 /o NUL /win32\n";
688 stream
<< "# ADD BASE RSC /l 0x809 /d \"_DEBUG\"\n";
689 stream
<< "# ADD RSC /l 0x809 /d \"_DEBUG\"\n";
690 stream
<< "BSC32=bscmake.exe\n";
691 stream
<< "# ADD BASE BSC32 /nologo\n";
692 stream
<< "# ADD BSC32 /nologo\n";
693 stream
<< "LINK32=link.exe\n";
694 stream
<< "# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept\n";
695 stream
<< "# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib wxvc.lib jpeg.lib tiff.lib ";
696 n
= m_extraLibs
.Number();
697 for (i
= 0; i
< n
; i
++)
699 wxString lib
= m_extraLibs
[i
];
700 stream
<< lib
<< " ";
702 stream
<< "/nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:\"libcd.lib,libcid.lib,msvcrt.lib\" /out:\"Debug/" << m_targetName
<< ".exe\" /pdbtype:sept";
704 n
= m_debugLibDirs
.Number();
705 for (i
= 0; i
< n
; i
++)
707 wxString libDir
= m_debugLibDirs
[i
];
708 stream
<< " /libpath:\"" << libDir
<< "\"";
710 n
= m_libDirs
.Number();
711 for (i
= 0; i
< n
; i
++)
713 wxString libDir
= m_libDirs
[i
];
714 stream
<< " /libpath:\"" << libDir
<< "\"";
718 // stream << "!ENDIF\n";
721 /////////////////////// Win32 Debug DLL target
723 stream
<< "!ELSEIF \"$(CFG)\" == \"" << m_projectName
<< " - Win32 Debug DLL\"\n";
725 stream
<< "# PROP BASE Use_MFC 0\n";
726 stream
<< "# PROP BASE Use_Debug_Libraries 1\n";
727 stream
<< "# PROP BASE Output_Dir \"DebugDLL\"\n";
728 stream
<< "# PROP BASE Intermediate_Dir \"DebugDLL\"\n";
729 stream
<< "# PROP BASE Target_Dir \"\"\n";
730 stream
<< "# PROP Use_MFC 0\n";
731 stream
<< "# PROP Use_Debug_Libraries 1\n";
732 stream
<< "# PROP Output_Dir \"DebugDLL\"\n";
733 stream
<< "# PROP Intermediate_Dir \"DebugDLL\"\n";
734 stream
<< "# PROP Ignore_Export_Lib 0\n";
735 stream
<< "# PROP Target_Dir \"\"\n";
736 stream
<< "# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D \"WIN32\" /D \"_DEBUG\" /D \"_WINDOWS\" /YX /FD /c\n";
737 stream
<< "# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od";
739 n
= m_includeDirs
.Number();
740 for (i
= 0; i
< n
; i
++)
742 wxString includeDir
= m_includeDirs
[i
];
743 stream
<< " /I \"" << includeDir
<< "\"";
746 stream
<< " /D \"WIN32\" /D \"_DEBUG\" /D \"_WINDOWS\" /D \"__WINDOWS__\" /D \"__WXMSW__\" /D DEBUG=1 /D \"__WXDEBUG__\" /D \"__WIN95__\" /D \"__WIN32__\" /D WINVER=0x0400 /D \"STRICT\" /D WXUSINGDLL=1 /Yu\"wx/wxprec.h\" /FD /c\n";
747 stream
<< "# ADD BASE MTL /nologo /D \"_DEBUG\" /mktyplib203 /o NUL /win32\n";
748 stream
<< "# ADD MTL /nologo /D \"_DEBUG\" /mktyplib203 /o NUL /win32\n";
749 stream
<< "# ADD BASE RSC /l 0x809 /d \"_DEBUG\"\n";
750 stream
<< "# ADD RSC /l 0x809 /d \"_DEBUG\"\n";
751 stream
<< "BSC32=bscmake.exe\n";
752 stream
<< "# ADD BASE BSC32 /nologo\n";
753 stream
<< "# ADD BSC32 /nologo\n";
754 stream
<< "LINK32=link.exe\n";
755 stream
<< "# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept\n";
756 stream
<< "# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib wxvc.lib ";
757 n
= m_extraLibs
.Number();
758 for (i
= 0; i
< n
; i
++)
760 wxString lib
= m_extraLibs
[i
];
761 stream
<< lib
<< " ";
763 stream
<< "/nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:\"libcd.lib\" /nodefaultlib:\"libcid.lib\" /out:\"DebugDLL/" << m_targetName
<< ".exe\" /pdbtype:sept";
765 n
= m_debugLibDirs
.Number();
766 for (i
= 0; i
< n
; i
++)
768 wxString libDir
= m_debugLibDirs
[i
];
769 libDir
+= "DLL"; // Assume that we have e.g. Debug so make it DebugDLL
770 stream
<< " /libpath:\"" << libDir
<< "\"";
772 n
= m_libDirs
.Number();
773 for (i
= 0; i
< n
; i
++)
775 wxString libDir
= m_libDirs
[i
];
776 stream
<< " /libpath:\"" << libDir
<< "\"";
780 // stream << "!ENDIF\n";
783 /////////////////////// Win32 Release DLL target
785 stream
<< "!ELSEIF \"$(CFG)\" == \"" << m_projectName
<< " - Win32 Release DLL\"\n";
787 stream
<< "# PROP BASE Use_MFC 0\n";
788 stream
<< "# PROP BASE Use_Debug_Libraries 0\n";
789 stream
<< "# PROP BASE Output_Dir \"ReleaseDLL\"\n";
790 stream
<< "# PROP BASE Intermediate_Dir \"ReleaseDLL\"\n";
791 stream
<< "# PROP BASE Target_Dir \"\"\n";
792 stream
<< "# PROP Use_MFC 0\n";
793 stream
<< "# PROP Use_Debug_Libraries 0\n";
794 stream
<< "# PROP Output_Dir \"ReleaseDLL\"\n";
795 stream
<< "# PROP Intermediate_Dir \"ReleaseDLL\"\n";
796 stream
<< "# PROP Ignore_Export_Lib 0\n";
797 stream
<< "# PROP Target_Dir \"\"\n";
798 stream
<< "# ADD BASE CPP /nologo /W3 /GX /O2 /D \"WIN32\" /D \"NDEBUG\" /D \"_WINDOWS\" /YX /FD /c\n";
799 stream
<< "# ADD CPP /nologo /MD /W3 /GX /O1 /Ob2";
801 n
= m_includeDirs
.Number();
802 for (i
= 0; i
< n
; i
++)
804 wxString includeDir
= m_includeDirs
[i
];
805 stream
<< " /I \"" << includeDir
<< "\"";
808 stream
<< " /D \"NDEBUG\" /D \"WIN32\" /D \"_WINDOWS\" /D \"__WINDOWS__\" /D \"__WXMSW__\" /D \"__WIN95__\" /D \"__WIN32__\" /D WINVER=0x0400 /D \"STRICT\" /D WXUSINGDLL=1 /FD /c\n";
809 stream
<< "# SUBTRACT CPP /YX\n";
810 stream
<< "# ADD BASE MTL /nologo /D \"NDEBUG\" /mktyplib203 /o NUL /win32\n";
811 stream
<< "# ADD MTL /nologo /D \"NDEBUG\" /mktyplib203 /o NUL /win32\n";
812 stream
<< "# ADD BASE RSC /l 0x809 /d \"NDEBUG\"\n";
813 stream
<< "# ADD RSC /l 0x809 /d \"NDEBUG\"\n";
814 stream
<< "BSC32=bscmake.exe\n";
815 stream
<< "# ADD BASE BSC32 /nologo\n";
816 stream
<< "# ADD BSC32 /nologo\n";
817 stream
<< "LINK32=link.exe\n";
818 stream
<< "# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib /nologo /subsystem:windows /machine:I386\n";
819 stream
<< "# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib wxvc.lib ";
820 n
= m_extraLibs
.Number();
821 for (i
= 0; i
< n
; i
++)
823 wxString lib
= m_extraLibs
[i
];
824 stream
<< lib
<< " ";
826 stream
<< "/nologo /subsystem:windows /machine:I386 /nodefaultlib:\"libc.lib\" /nodefaultlib:\"libci.lib\" /out:\"ReleaseDLL/" << m_targetName
<< ".exe\"";
828 n
= m_releaseLibDirs
.Number();
829 for (i
= 0; i
< n
; i
++)
831 wxString libDir
= m_releaseLibDirs
[i
];
832 libDir
+= "DLL"; // Assume that we have e.g. Release so make it ReleaseDLL
833 stream
<< " /libpath:\"" << libDir
<< "\"";
835 n
= m_libDirs
.Number();
836 for (i
= 0; i
< n
; i
++)
838 wxString libDir
= m_libDirs
[i
];
839 stream
<< " /libpath:\"" << libDir
<< "\"";
843 stream
<< "!ENDIF\n";
846 /////////////////////// Source code for targets
848 stream
<< "# Begin Target\n";
850 stream
<< "# Name \"" << m_projectName
<< " - Win32 Release\"\n";
851 stream
<< "# Name \"" << m_projectName
<< " - Win32 Debug\"\n";
852 stream
<< "# Name \"" << m_projectName
<< " - Win32 Debug DLL\"\n";
853 stream
<< "# Name \"" << m_projectName
<< " - Win32 Release DLL\"\n";
856 n
= m_sourceFiles
.Number();
857 for (i
= 0; i
< n
; i
++)
859 wxString sourceFile
= m_sourceFiles
[i
];
861 stream
<< "# Begin Source File\n";
863 stream
<< "SOURCE=.\\" << sourceFile
<< "\n";
865 stream
<< "!IF \"$(CFG)\" == \"" << m_projectName
<< " - Win32 Release\"\n";
867 stream
<< "!ELSEIF \"$(CFG)\" == \"" << m_projectName
<< " - Win32 Debug\"\n";
869 stream
<< "# SUBTRACT CPP /YX /Yc /Yu\n";
871 stream
<< "!ELSEIF \"$(CFG)\" == \"" << m_projectName
<< " - Win32 Debug DLL\"\n";
873 stream
<< "# SUBTRACT BASE CPP /YX /Yc /Yu\n";
874 stream
<< "# SUBTRACT CPP /YX /Yc /Yu\n";
876 stream
<< "!ELSEIF \"$(CFG)\" == \"" << m_projectName
<< " - Win32 Release DLL\"\n";
878 stream
<< "!ENDIF\n";
880 stream
<< "# End Source File\n";
883 // The .rc file: assume it has the target name + rc extension.
884 stream
<< "# Begin Source File\n";
886 stream
<< "SOURCE=.\\" << m_targetName
<< ".rc\n";
887 stream
<< "# ADD BASE RSC /l 0x809\n";
888 stream
<< "# ADD RSC /l 0x809";
890 n
= m_resourceIncludeDirs
.Number();
891 for (i
= 0; i
< n
; i
++)
893 wxString includeDir
= m_resourceIncludeDirs
[i
];
894 stream
<< " /i \"" << includeDir
<< "\"";
898 stream
<< "# End Source File\n";
899 stream
<< "# End Target\n";
900 stream
<< "# End Project\n";
902 // Now generate the .dsw workspace file
904 wxString fullWorkSpaceName
= m_path
+ wxString("/") + m_projectName
+ ".dsw";
906 ofstream
stream2(fullWorkSpaceName
);
910 stream2
<< "Microsoft Developer Studio Workspace File, Format Version 5.00\n";
911 stream2
<< "# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!\n";
913 stream2
<< "###############################################################################\n";
915 stream2
<< "Project: \"" << m_projectName
<< "\"=.\\" << m_projectName
<< ".dsp - Package Owner=<4>\n";
917 stream2
<< "Package=<5>\n";
921 stream2
<< "Package=<4>\n";
925 stream2
<< "###############################################################################\n";
927 stream2
<< "Global:\n";
929 stream2
<< "Package=<5>\n";
933 stream2
<< "Package=<3>\n";
937 stream2
<< "###############################################################################\n";
943 BEGIN_EVENT_TABLE(MyDialog
, wxDialog
)
944 EVT_BUTTON(wxID_EXIT
, MyDialog::OnQuit
)
945 EVT_BUTTON(ID_GENERATE_PROJECT
, MyDialog::OnGenerate
)
946 EVT_BUTTON(ID_GENERATE_SAMPLES
, MyDialog::OnGenerateSamples
)
949 // ----------------------------------------------------------------------------
951 // ----------------------------------------------------------------------------
954 MyDialog::MyDialog(const wxString
& title
, const wxPoint
& pos
, const wxSize
& size
):
957 LoadFromResource((wxWindow
*) NULL
, "project_dialog");
961 void MyDialog::OnQuit(wxCommandEvent
& event
)
963 this->EndModal(wxID_OK
);
966 void MyDialog::OnAbout(wxCommandEvent
& event
)
970 void MyDialog::OnGenerate(wxCommandEvent
& event
)
974 void MyDialog::OnGenerateSamples(wxCommandEvent
& event
)
976 char* dir
= getenv("WXWIN");
980 wxTextEntryDialog
dialog(this, "Please enter the wxWindows directory", "Text entry", dirStr
, wxOK
|wxCANCEL
);
981 if (dialog
.ShowModal() == wxID_OK
)
983 if (wxDirExists(dialog
.GetValue()))
985 // wxGetApp().GenerateSample("MinimalVC", "minimal", dir + wxString("/samples/minimal"),
986 // wxStringList("minimal.cpp", 0));
988 wxGetApp().GenerateSamples(dialog
.GetValue());
992 wxMessageBox("This directory doesn't exist.");