UEStudio Builder Configuration File

UEStudio Builder Configuration File

Postby Ken Wantz » Sun Mar 25, 2007 12:21 am

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  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
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  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.
Last edited by Ken Wantz on Mon Mar 26, 2007 4:22 pm, edited 3 times in total.
Ken Wantz
 
Posts: 45
Joined: Wed Nov 29, 2006 7:48 pm
Location: Toronto Canada

Postby Antonio Linares » Sun Mar 25, 2007 6:07 am

Ken,

Many thanks! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Antonio Linares » Sun Mar 25, 2007 6:09 am

Ken,

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

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Richard Chidiak » Sun Mar 25, 2007 8:25 am

Yes and also allow third party libs to be linked like tsbutton.lib, tsbrowse...

Regards

Richard
http://www.cbati.com

Uestudio
Fwh 13.05 Harbour 3.2 MSVC 2013
User avatar
Richard Chidiak
 
Posts: 946
Joined: Thu Oct 06, 2005 7:05 pm
Location: France

Postby Ken Wantz » Sun Mar 25, 2007 8:19 pm

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
Ken Wantz
 
Posts: 45
Joined: Wed Nov 29, 2006 7:48 pm
Location: Toronto Canada

Postby Antonio Linares » Sun Mar 25, 2007 9:37 pm

Ken,

Where is the modified config file ? thanks
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Ken Wantz » Mon Mar 26, 2007 4:21 pm

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
Ken Wantz
 
Posts: 45
Joined: Wed Nov 29, 2006 7:48 pm
Location: Toronto Canada

Postby Antonio Linares » Mon Mar 26, 2007 6:43 pm

Ken,

Ok, thanks

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

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 53 guests

cron