FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour UEStudio Builder Configuration File
Posts: 45
Joined: Wed Nov 29, 2006 07:48 PM
UEStudio Builder Configuration File
Posted: 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[/list:u]
    The Tutor01 source was modified as below to test the full debug mode:
    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[/list:u]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
      # --------- 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.
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
UEStudio Builder Configuration File
Posted: Sun Mar 25, 2007 06:07 AM

Ken,

Many thanks! :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
UEStudio Builder Configuration File
Posted: Sun Mar 25, 2007 06: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
Posts: 946
Joined: Thu Oct 06, 2005 07:05 PM
UEStudio Builder Configuration File
Posted: Sun Mar 25, 2007 08: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
Posts: 45
Joined: Wed Nov 29, 2006 07:48 PM
UEStudio Builder Configuration File
Posted: Sun Mar 25, 2007 08: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
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
UEStudio Builder Configuration File
Posted: Sun Mar 25, 2007 09:37 PM

Ken,

Where is the modified config file ? thanks

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 45
Joined: Wed Nov 29, 2006 07:48 PM
UEStudio Builder Configuration File
Posted: Mon Mar 26, 2007 04: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

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
UEStudio Builder Configuration File
Posted: Mon Mar 26, 2007 06:43 PM

Ken,

Ok, thanks

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

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion