Page 1 of 1

UEStudio Builder Configuration File

Posted: Sun Mar 25, 2007 12:21 am
by Ken Wantz
UEStudio Builder Configuration File

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
UEStudio\config\xHarbour
using a name without an extention such as
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
The Tutor01 source was modified as below to test the full debug mode:

Code: Select all

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
3. Select the Compiler from the Build menu

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

# --------- 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.

Posted: Sun Mar 25, 2007 6:07 am
by Antonio Linares
Ken,

Many thanks! :-)

Posted: Sun Mar 25, 2007 6:09 am
by Antonio Linares
Ken,

We should modify it to allow the use of Harbour or xHarbour alternatively, as there are both kind of users

Posted: Sun Mar 25, 2007 8:25 am
by Richard Chidiak
Yes and also allow third party libs to be linked like tsbutton.lib, tsbrowse...

Regards

Richard

Posted: Sun Mar 25, 2007 8:19 pm
by Ken Wantz
OK. You now have both options added, however, with one caveat for each.

For Harbour/xHarbour, for each project you will need to make sure the correct Harbour Type has been selected.

For 3rd Party Libraries, they need to be added to each Project file that is created. An alternative would be to manually add these libraries to the end of the “Libs =” line in the main config file in the UEStudio folder.

I removed the Advantage RDD Driver option. It can now be added, if required, on the 3rd Party Libs = line
Regards,

Ken

Posted: Sun Mar 25, 2007 9:37 pm
by Antonio Linares
Ken,

Where is the modified config file ? thanks

Posted: Mon Mar 26, 2007 4:21 pm
by Ken Wantz
Antonio

I replaced the previous config with the new one above.

Near the top you seea new variable "Harbour Type" and further down "3rd Party Libs."

One question. I first thought you were looking for a config file to build FiveWin and Text Console applications. Then I thought you meant to build Harbour or xHarbour FiveWin applications.

If you also need the Text Console config script I will add it also.

Regards,

Ken

Posted: Mon Mar 26, 2007 6:43 pm
by Antonio Linares
Ken,

Ok, thanks

No, text console applications are not needed (for FWH)