This code replaces all previous UEStudio build script files. Since FiveWin users will probably never write programs using the xHarbour Text Console, it was removed. This new script now supports only FiveWin/xHarbour and the code now supports xHarbour's debugger.
Copy the following code to the folder
using a name without an extention such asUEStudio\config\xHarbour
FW_Harbour_Builder
Tutor01.prg was used to test the 3 UEStudio build modes:
- 1. Full Debug mode using "/b" and "debug.lib"
2. Debug mode having only line numbers included in the application and
3. Release mode with no line numbers
- Code: Select all Expand view
function Main()
#ifdef TestDebug
AltD( 1 ) // Enables the debugger. Press F5 to go
MsgInfo( "debugger enabled" )
AltD() // Invokes the debugger
MsgInfo( "debugger invoked" )
#endif
MsgInfo( FWVERSION + Chr( 13 ) + FWCOPYRIGHT, FWDESCRIPTION )
return nil
As Builder is part of Project Manager, it must be used with Projects. This because the compiler script is stored in the .PRJ file, along with other project settings.
Once you select this compiler from the list using Select Compiler, you will more than likely need to select the Set Compiler Options. These consist of a combination of default options with yes/no answers and options where additional settings can be added.
For example, to test Tutor01 you must:
1. Create a new Project/Workspace
2. Add Tutor01.prg and Tutor01.rc files in the Project Tab
- As Tutor01 is the only .prg, you do not need to select which source is to be compiled first
To test Debug
Select the Build menu and then select Set Compiler Options
In the displayed window:
1. Select User Defines and enter the word Debug.
2. Then select Include Debug and change the setting from no to yes.
If you use more than one source file, you indicate which one needs to be linked first by moving the mouse to the name of the project name in the Project Tab and press the right mouse button. Select the last option, "Change Files Order," then select the file you want to link first and move it, using the Up and/or Down buttons so that it is at the top.
Suggestions or questions are always welcome by IDM and can be reached by sending an email to support@idmcomp.com or can be posted here.
The link to the UlraEdit/UEStudio website is http://www.ultraedit.com
Hope this helps those using UEStudio,
Ken
The FiveWin/xHarbour Build Script
- Code: Select all Expand view
# --------- xHarbour Compiler configuration --------
# --- general --------------------------------------
# $P - project name
# $Pp - path to project directory
# $Pn - project name
# --- compile --------------------------------------
# $I - input full name
# $Ip - input path
# $In - input name
# $Ie - input extension
# $O - output file
# $Op - path to output file
# $On - output filename (without path)
# $Oe - output extension
# $R - release/debug setting for compiler
# --- build ----------------------------------------
# $T - target full name
# $Tp - target path
# $Tn - target name
# $O - output file
# $Op - path to output file
# $On - output filename (without path)
# $Oe - output extension
# $R - release/debug setting for linker
[Settings]
Target =
Category&01 = DEFAULT RUN CONFIGURATION
Working Directory =.
Command Line Arguments =
Category&02 = Harbour Options
Harbour Type = xHarbour|Harbour
Automatic Memvar Declaration = no|yes
Variables Are Assumed = no|yes
Generate Preprocessed Output = no|yes
Warning Level = yes|no
Include Debug = no|yes
Use xHarbour Dll = no|yes
Use MT Library = no|yes
User Defines =
User Include Path =
3rd Party Libs =
Additional Harbour Options =
Additional Linker Options =
[SettingsInfo]
Target = The output directory and file name where the linker creates the program.
Working Directory = A directory other than where the executable is located.
Command Line Arguments = Command-line arguments passed to the program at startup.
Use MT Library = Set to "yes" to use Multi-threaded libraries.
User Defines = The preprocessor defines during the build. Use ';' as delimiter.
User Include Path = Additional include paths. Use ';' as delimiter.
3rd Party Libs = Additional Libraries (include path if not in default). Use space as delimiter.
Additional Harbour Options = Additional Harbour Options.
Additional Linker Options = Additional iLink32 options.
[SettingsReps]
Automatic Memvar Declaration = no=|yes=/a
Variables Are Assumed = no=|yes=/v
Warning Level = no=|yes=/w1
Generate Preprocessed Output = no=|yes=/p
Use xHarbour Dll = no=|yes=harbour.lib
Use Multi Thread Library = no|yes
User Defines = @[;|/D%s]
User Include Path = ^^@[;|;%s]
User Include Path&1 = ^^@[;| /i%s]
[Variables]
FWPATH = C:\FWH
HPATH = C:\xHarbour
CPATH = C:\Borland\BCC55
HOPT = /i$(HPATH)\INCLUDE $(User Include Path&1) /i$(FWPATH)\include /n /go $(Automatic Memvar Declaration) $(Variables Are Assumed) $(Warning Level) /D__EXPORT__ $(User Defines) $(Additional Harbour Options) $(Generate Preprocessed Output) {[$(Include Debug)=][yes=/b]}
COPT = -c -I$(HPATH)\INCLUDE;$(CPATH)\INCLUDE$(User Include Path)$(FWPATH)\include
LOPT = -L$(CPATH)\LIB;$(CPATH)\LIB\PSDK;$(HPATH)\LIB;$(FWPATH)\lib -Gn -M -m -s -Tpe -x -aa $(Additional Linker Options)
LIB1 = vm.lib rtl.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib dbffpt.lib ct.lib tip.lib hsx.lib hbsix.lib cw32.lib
LIBM = vmmt.lib rtlmt.lib rddmt.lib macromt.lib ppmt.lib dbfntxmt.lib dbfcdxmt.lib dbffptmt.lib ctmt.lib tipmt.lib hsxmt.lib hbsixmt.lib cw32mt.lib
LIBX = {[$(Use MT Library)=][no=$(LIB1)][yes=$(LIBM)]}
LIBS = {[$(Harbour Type)=][xHarbour=FiveHx][Harbour=FiveH]} fivehc.lib $(Use xHarbour Dll) {[$(Include Debug)=][no=gtgui.lib][yes= gtwin.lib debug.lib]} $(3rd Party Libs) lang.lib common.lib codepage.lib pcrepos.lib import32.lib odbc32.lib rasapi32.lib nddeapi.lib iphlpapi.lib $(LIBX)
[Environment]
PATH = $(HPATH)\Bin;$(CPATH)\Bin;%PATH%
INCLUDE = $(HPATH)\Include;$(CPATH)\Include$(User Include Path);$(FWPATH)\Include
LIB = $(HPATH)\Lib;$(CPATH)\Lib;$(CPATH)\Lib\PsDk;$(FWPATH)\Lib
[General]
TargetExt = .EXE
ReleaseOut = Release
DebugOut = Debug
UseFullPaths = 1
UseDosNames = 0
[MakeCommands]
run = Execute Application
makef = Show Makefile
[Execute Application]
Title = Execute $T
Cmd0 = $(Command Line Arguments)
Depends = $T
ShowWindow = 1
DisplayConsole = 0
[Show Makefile]
Title=Show makefile
Cmd0=uestudio makefile
ShowWindow=1
DisplayConsole=0
[InsertFiles]
[FileGroups]
FGO = .obj;
FGR = .res;
FGL = .lib;
FGD = .def;
[GroupFormats]
FGO = %s
FGR = %s
FGL = %s
[Build]
Out = $T
Depends = $FGO $FGR
DebugFlag =
ReleaseFlag =
Cmd0 = iLink32 $(LOPT) $R c0w32.obj $FGO, $Op$On, , $(LIBS) $FGL, $FGD, $FGR
[.PRG]
Out = $In.c
DebugFlag =
ReleaseFlag = /l
Cmd0 = Harbour $I $(HOPT) $R /o$O
IncFiles = 1
CaseSensitive = 0
IncDirs = .;$(INCLUDE);
IncKeyWords = #include;
Comments = /*.*/.//.eol.
[.C]
Out = $In.obj
Cmd0 = Bcc32 $(COPT) -O2 -O -OS -3 -o$O $I
[.RC]
Out = $In.res
Cmd0 = Brcc32 -r -32 -fo$O $I
IncFiles = 1
CaseSensitive = 0
IncDirs = .;$(INCLUDE);
IncKeyWords = #include;
Comments = /*.*/.//.eol.