function BeginWizard() {
Wizard.AddProjectPathPage();
Wizard.AddPage("OptSelection");
}
// Base Directory Selection
function OnEnter_OptSelection(fwd) {
local value;
value = Wizard.GetTextControlValue("m_txtBasePath");
if (value.length() == 0) {
value = ConfigManager.Read("/wx_multi_target/BasePath", "");
Wizard.SetTextControlValue("m_txtBasePath", value);
}
value = Wizard.GetTextControlValue("m_txtVersion");
if (value.length() == 0) {
value = ConfigManager.Read("/wx_multi_target/Version", "26");
Wizard.SetTextControlValue("m_txtVersion", value);
}
return true;
}
function OnLeave_OptSelection(fwd) {
ConfigManager.Write("/wx_multi_target/BasePath", Wizard.GetTextControlValue("m_txtBasePath"),true);
ConfigManager.Write("/wx_multi_target/Version", Wizard.GetTextControlValue("m_txtVersion"),true);
return true;
}
function OnClick_m_cmdBrowse() {
local dir = Wizard.GetTextControlValue("m_txtBasePath");
dir = IO.SelectDirectory("Please select wxWidgets' top-level folder", dir, false);
if (IO.DirectoryExists(dir))
Wizard.SetTextControlValue("m_txtBasePath", dir);
}
// setup the already created project
function SetupProject(project) {
local basePath = ConfigManager.Read("/wx_multi_target/BasePath", "");
local version = ConfigManager.Read("/wx_multi_target/Version", "");
local custom_lib_dir;
local compilers_count = 5;
local i,k;
// Include dir is the same for all compilers
project.AddIncludeDir(basePath + "\\include");
project.RemoveBuildTarget("default");
for (i = 0; i<compilers_count; i++) {
local compilerWxSign, compilerCbSign, compilerName, libPrefix, libSuff;
switch (i) {
case 0:
libPrefix = "";
libSuff = ".lib";
compilerCbSign = "dmc";
compilerWxSign = "dmc";
compilerName = "Digital Mars";
break;
case 1:
libPrefix = "lib";
libSuff = ".a";
compilerCbSign = "gcc";
compilerWxSign = "gcc";
compilerName = "GCC/MingW";
break;
case 2:
libPrefix = "";
libSuff = ".lib";
compilerCbSign = "msvc8";
compilerWxSign = "vc";
compilerName = "VC++";
break;
case 3:
libPrefix = "";
libSuff = ".lib";
compilerCbSign = "ow";
compilerWxSign = "wat";
compilerName = "Open Watcom";
break;
case 4:
libPrefix = "";
libSuff = ".lib";
compilerCbSign = "bcc";
compilerWxSign = "bcc";
compilerName = "Borland CC";
break;
}
for (k = 0; k < 2 ; k++) {
local debugFlag;
local targetTitle;
if (k != 0) {
debugFlag = "d";
targetTitle = "Debug - ";
} else {
debugFlag = "";
targetTitle = "Release - ";
}
custom_lib_dir = basePath + "\\lib\\" + compilerWxSign + debugFlag + "_lib";
if (IO.DirectoryExists(custom_lib_dir)) {
// New target for our compiler
local target = project.AddBuildTarget(targetTitle + compilerName);
if (target != null) {
local tmp;
target.AddIncludeDir(custom_lib_dir + "\\msw" + debugFlag);
target.AddLibDir(custom_lib_dir);
target.SetCompilerID(compilerCbSign);
target.SetTargetType(ttExecutable);
tmp = ".\\";
target.SetObjectOutput(tmp + "_" + compilerWxSign + "_objs");
if (k==0)
target.SetOutputFilename(tmp + "RELEASE/output_" + compilerWxSign + ".exe");
else
target.SetOutputFilename(tmp + "DEBUG/output_" + compilerWxSign + ".exe");
tmp = "";
// Add Libraries
target.AddLinkLib(custom_lib_dir + "\\" + libPrefix + "wxmsw" + debugFlag + version + libSuff);
target.AddLinkLib(custom_lib_dir + "\\" + libPrefix + "wxtiff" + debugFlag + libSuff);
target.AddLinkLib(custom_lib_dir + "\\" + libPrefix + "wxpng" + debugFlag + libSuff);
target.AddLinkLib(custom_lib_dir + "\\" + libPrefix + "wxjpeg" + debugFlag + libSuff);
target.AddLinkLib(custom_lib_dir + "\\" + libPrefix + "wxzlib" + debugFlag + libSuff );
target.AddLinkLib(custom_lib_dir + "\\" + libPrefix + "wxregex" + debugFlag + libSuff );
target.AddLinkLib(custom_lib_dir + "\\" + libPrefix + "wxexpat" + debugFlag + libSuff);
target.AddLinkLib("kernel32");
target.AddLinkLib("user32");
target.AddLinkLib("gdi32");
target.AddLinkLib("comdlg32");
target.AddLinkLib("winspool");
target.AddLinkLib("winmm");
target.AddLinkLib("shell32");
target.AddLinkLib("comctl32");
target.AddLinkLib("ole32");
target.AddLinkLib("oleaut32");
target.AddLinkLib("uuid");
target.AddLinkLib("rpcrt4");
target.AddLinkLib("advapi32");
target.AddLinkLib("wsock32");
target.AddLinkLib("odbc32");
// Compiler dependent settings
local compOpts;
local linkOpts;
switch (i) {
// DMARS
case 0:
compOpts = "-mn -cpp -Ae -Ar -o -w- -6 -D_WIN32_WINNT=0x0400 -D__WXMSW__ -DNOPCH -D__WIN32__";
linkOpts = "/NOLOGO /SILENT /NOI /DELEXECUTABLE /EXETYPE:NT /su:windows:4.0";
if (k==1) compOpts += "-g -D__WXDEBUG__";
break;
// GCC
case 1:
compOpts = "-s -O3 -Os -mthreads -W -Wall -DNOPCH -D__WXMSW__ -Wno-ctor-dtor-privacy -DHAVE_W32API_H -MD";
linkOpts = "-s -mthreads -Wl,--subsystem,windows -mwindows";
if (k==1) compOpts += "-g -D__WXDEBUG__";
break;
// OW
case 2:
compOpts = "/MT /W4 /O2 /Ot /GR /GRR /EHsc /GA /DWIN32 /DNOPCH /D_WINDOWS /D__WXMSW__ /D__WIN32__";
linkOpts = "/SUBSYSTEM:WINDOWS";
if (k==1) compOpts += "-zi /D_DEBUG /D__WXDEBUG__";
break;
case 3:
compOpts = "-bw -br -bn -ot -d -d0 -zw -bt=nt -fp6 -wcd=549 -wcd=656 -wcd=657 -wcd=667 -wcd=726 -d_WXMSW_";
linkOpts = "-\"system nt_win\"";
if (k==1) compOpts += "-g";
break;
case 4:
break;
}
target.AddLinkerOption(linkOpts);
target.AddCompilerOption(compOpts);
target.SetIncludeInTargetAll(true);
}
}
}
}
for (i = 0; i<project.GetBuildTargetsCount(); i++) {
project.AddFile(i,"app.cpp",true,true,50);
project.AddFile(i,"frmMain.cpp",true,true,50);
project.AddFile(i,"wx.rc",true,true,50);
project.AddFile(i,"frmMain.h",false,false,50);
project.AddFile(i,"_wx_intellisense.h",false,false,50);
}
return true;
}
function GetFilesDir() {
local result = "wxWidgets-multi/files";
return result;
}
This is the code...