UEStudio - Build a library

Post Reply
User avatar
Richard Chidiak
Posts: 946
Joined: Thu Oct 06, 2005 7:05 pm
Location: France
Contact:

UEStudio - Build a library

Post by Richard Chidiak »

Hello

Has anyone used UESTUDIO to build a lib with Borland ?

If yes, can you please share a prj file to see how it is done.

Thanks for your time,

Richard
http://www.cbati.com

Uestudio
Fwh 13.05 Harbour 3.2 MSVC 2013
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Richard,

Please copy "Library" file to:
c:\Program Files\IDM Computer Solutions\UEStudio '06\configs\Harbour\

Then create a folder somewhere and copy inside:
Test.prj
Test1.prg
Test2.prg

And open Test.prj as a Project from UEStudio. Then select Build and you get the LIB :-)

Library file:
# --------- Harbour y FWH 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
Automatic Memvar Declaration = no|yes
Variables Are Assumed = no|yes
Generate Preprocessed Output = no|yes
Warning Level = 1|2|3|4|0
User Include Path =
User Defines =

Compiler Options =

Excluded Files = Excludes

[SettingsInfo]
Target = Provides a space for you to specify an output file and location of the program that the linker creates.
Working Directory = Provides a space for you to specify the directory in which executing occurs. If you do not specify a directory, executing occurs in the directory where the executable is located.
Command Line Arguments = Provides a space for you to specify command-line arguments you want to pass to the program at startup.
Compiler Options = Provides a space for you to specify an additional compiler options.
User Defines = Shows the switches the tool will use to build. Use ';' as delimiter.
Excluded Files = This will exclude the file(s) included in this UE project group from the build.

[SettingsReps]
User Defines = @[;|-D%s]
Automatic Memvar Declaration = no=|yes=/a
Variables Are Assumed = no=|yes=/v
Generate Preprocessed Output = no=|yes=/p
User Include Path = ^^@[;|;%s]
User Include Path&1 = ^^@[;| /i%s]
Use Multi Thread Library = no|yes
Warning Level = @/w%s

[Variables]
FWH = c:\FWH
HPATH = c:\Harbour
CPATH = c:\bcc55
HOPT = /n /gc0 /q $(Compiler Options) /i$(HPATH)\INCLUDE $(User Include Path&1) $(User Defines) $(Automatic Memvar Declaration) $(Variables Are Assumed) $(Generate Preprocessed Output) $(Warning Level)
COPT = -O2 -M -c -v -I$(HPATH)\INCLUDE

[Environment]
PATH = $(HPATH)\BIN;$(CPATH)\BIN;%PATH%
INCLUDE = $(HPATH)\INCLUDE;$(CPATH)\INCLUDE;$(FWH)\INCLUDE
LIB = $(HPATH)\LIB;$(CPATH)\LIB
BuildMode = %UESMode%

[General]
TargetExt = .LIB
ReleaseOut = Release
DebugOut = Debug
UseFullPaths = 1
UseDosNames = 1
Excludes = $(Excluded Files)
GenerateEDGroup=$(External Dependencies)
.CPP = .C

[MakeCommands]
run = Show Makefile
makef = Show Makefile

[Show Makefile]
Title=Show makefile
Cmd0=uestudio makefile
ShowWindow=1
DisplayConsole=0

[InsertFiles]

[FileGroups]
FGO = .obj;

[GroupFormats]
FGO = %s

[Build]
Out = $T
Depends = $FGO
DebugFlag =
ReleaseFlag =

[.PRG]
Out = $In.c
DebugFlag = /b
ReleaseFlag = /l
Cmd0 = harbour $I $(HOPT) $R /o$O

CaseSensitive = 0
IncDirs = .;$(INCLUDE);
IncKeyWords = #include;
Comments = /*.*/.//.eol.

[.C]
Out = $In.obj
Cmd0 = bcc32 $(COPT) -o$O $I
Cmd1 = $(CPATH)\bin\tlib $T -+ $O

CaseSensitive = 0
IncDirs = .;$(INCLUDE);
IncKeyWords = #include;
Comments = /*.*/.//.eol.

Test.prj file:
[Files]
0=test1.prg
1=test2.prg
[Debug Settings]
Program Arguments=
Selected Debugger=0
Source Paths=
Symbol Paths=
Working Directory=
[Open Files]
Active File Display Mode=-1
Open File0=
[uemakeXp]
Compiler=Configs\Harbour\Library
ReleaseMode=1
[Configs\Harbour\Library]
Automatic Memvar Declaration=no
Command Line Arguments=test.LIB
Compiler Options=
Excluded Files=Excludes
Generate Preprocessed Output=no
Linker Options=
OutputDirectory_DebugMode=Debug
OutputDirectory_ReleaseMode=Release
Target=test.LIB
User Defines=
User Include Path=
Variables Are Assumed=no
Warning Level=1
Working Directory=.
[Project Information]
Compilable=1
Use Relative Directory=1
Relative to Project File=1
Include Sub Directories=1
Project Tagfile=
Project Wordfile=
Filter=
Using VCS=0
Save Account=0
Create Tagfile=0
CTags Legacy Support=0
[Project ID]
Signature=UE Proj: v.1

Test1.prg

Code: Select all

#include "FiveWin.ch"

function Test1()

   MsgInfo( "inside Test1" )

return nil
Test2.prg

Code: Select all

#include "FiveWin.ch"

function Test2()

   MsgInfo( "inside Test2" )

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Richard Chidiak
Posts: 946
Joined: Thu Oct 06, 2005 7:05 pm
Location: France
Contact:

Post by Richard Chidiak »

Antonio :D

Thank you, the lib is correctly built with harbour or xharbour

Just a last question, how to add a "C file" to a project and not have it compiled by harbour or xharbour

Thanks for your help,

Richard
http://www.cbati.com

Uestudio
Fwh 13.05 Harbour 3.2 MSVC 2013
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Richard,

Have you tried to add it here ?

Test.prj file:
[Files]
0=test1.prg
1=test2.prg
2=test3.c
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Richard Chidiak
Posts: 946
Joined: Thu Oct 06, 2005 7:05 pm
Location: France
Contact:

Post by Richard Chidiak »

Antonio

I did, but io am getting errors on all .h files

Seems that include directories are not being searched correctly, if i specify full path for .h files, generation is ok

Richard
http://www.cbati.com

Uestudio
Fwh 13.05 Harbour 3.2 MSVC 2013
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Richard,

Please try this:

COPT = -O2 -M -c -v -I$(HPATH)\INCLUDE -I$(CPATH)\INCLUDE
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Richard Chidiak
Posts: 946
Joined: Thu Oct 06, 2005 7:05 pm
Location: France
Contact:

Post by Richard Chidiak »

Antonio

Still missing, with this one it is OK

COPT = -O2 -M -c -v -I$(HPATH)\INCLUDE -I$(CPATH)\INCLUDE -I$(FWH)\INCLUDE

Richard :D
http://www.cbati.com

Uestudio
Fwh 13.05 Harbour 3.2 MSVC 2013
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Excellent! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
fgondi
Posts: 636
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España
Contact:

Post by fgondi »

Hola,

Estoy empezando a usar UEStudio

Genero las lib sin ningún error gracias a las indicaciones dadas en este post.

El problema lo tengo al generar el exe en el que esta incluido las lib. Me muestra el siguiente error:
Error: Unresolved external '_HB_FUN_ROWFROMPIX' referenced from C:\FIVE\TSBROWSE\RELEASE\XTSBROWSEH.LIB|TSBROWSE

La función RowFromPix esta definida en una función C incluida en la librería.
Un saludo
Fernando González Diez
ALSIS GHE Sistemas Informáticos
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Fernando,

Una forma fácil de comprobar que la función se ha incluido correctamente en la librería es abrir el fichero LIB con el propio UEStudio y buscar la cadena HB_FUN_ROWFROMPIX a ver si está
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply