Announcing Harbour Builder

1,149 views
Skip to first unread message

antonio....@gmail.com

unread,
Apr 2, 2026, 12:34:27 AMApr 2
to Harbour Users
Free and open source:

Screenshot 2026-04-02 at 06.32.58.png

antonio....@gmail.com

unread,
Apr 2, 2026, 12:35:26 AMApr 2
to Harbour Users
Screenshot 2026-04-02 at 06.32.58.png

antonio....@gmail.com

unread,
Apr 2, 2026, 2:43:54 AMApr 2
to Harbour Users
Screenshot 2026-04-02 at 08.40.39.png

antonio....@gmail.com

unread,
Apr 2, 2026, 4:27:20 AMApr 2
to Harbour Users
https://github.com/FiveTechSoft/HarbourBuilder

Vibe coded in three days using Claude code !

best regards

antonio....@gmail.com

unread,
Apr 3, 2026, 3:04:29 AMApr 3
to Harbour Users
Harbour Builder it is just an experiment using "vibe coding" 

I haven't coded a single line ot it. All of it has been coded by Claude code.

I am just directing Claude code about what to do. I was curious to see how far we can reach just using vibe coding, same as famous OpenClaw success this year that has been bought by OpenAI.

Will it be good enough ? Will it be easy ? Will it be fast developed ?

Same as Harbour was born following Linux development technique great success and Harbour succeded too. This time I wanted to check how far we can go vibe coding. Up to now, I must say I am really impressed about the quality of the code.

Bruno Cantero provided me a small example of how to use C++ GUI controls with Harbour and I just gave that example to Claude code. From that moment on, in two days we had a first prototype running on Windows, Mac and Linux. In three days, its close to be completed. Maybe we just need a week ? 

If you run the Windows Harbour Builder IDE you will be much surprised about how incredibly fast it runs.

By this time many FWH users have invested years of development in their apps and they are not going to rewrite them, but for future generations this may be a nice legacy we can provide to them. Time will tell 

antonio....@gmail.com

unread,
Apr 3, 2026, 3:08:06 AMApr 3
to Harbour Users
Harbour Builder es solo un experimento usando "vibe coding" :)

No he escrito ni una sola línea de código. Todo ha sido programado por Claude Code.

Yo simplemente estoy dirigiendo a Claude Code sobre qué hacer. Tenía curiosidad por ver hasta dónde podemos llegar usando solo vibe coding, al igual que el famoso éxito de OpenClaw este año, que fue comprado por OpenAI.

¿Será lo suficientemente bueno? ¿Será fácil? ¿Se desarrollará rápido?

Del mismo modo que Harbour nació siguiendo el gran éxito de las técnicas de desarrollo de Linux y también triunfó, esta vez quería comprobar hasta dónde podemos llegar con el vibe coding. Hasta ahora, debo decir que estoy realmente impresionado con la calidad del código.

Bruno Cantero me proporcionó un pequeño ejemplo de cómo usar controles GUI de C++ con Harbour, y simplemente le di ese ejemplo a Claude Code. A partir de ese momento, en dos días ya teníamos un primer prototipo funcionando en Windows, Mac y Linux. En tres días, está cerca de completarse. ¿Quizás solo necesitemos una semana?

Si ejecutas el IDE de Harbour Builder en Windows, te sorprenderá lo increíblemente rápido que funciona.

A estas alturas, muchos usuarios de FWH han invertido años de desarrollo en sus aplicaciones y no van a reescribirlas, pero para las futuras generaciones, este puede ser un bonito legado que podemos ofrecerles. El tiempo dirá

Alain Aupeix

unread,
Apr 3, 2026, 3:45:45 AMApr 3
to harbou...@googlegroups.com, antonio....@gmail.com

Hi,

I have clone the project, but it seems there is no way to build under linux.

build_gtk.sh is missing.

Not ready now ?

Thanks

A+

--
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: https://groups.google.com/group/harbour-users
---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/harbour-users/a15a2d6c-35e0-47ab-9e77-203ae23e3084n%40googlegroups.com.
--

Alain Aupeix
Sites web : JujuLand | Pissobi-Lacassagne | Gadel
X.ubuntu 16.04 | H.arbour 3.2.0-1 (r2025-08-22 10:00) | Hw.gui 2.23-8dev (r3792) | G.ramps 5.1.2


Alain Aupeix

unread,
Apr 3, 2026, 4:16:43 AMApr 3
to harbou...@googlegroups.com, antonio....@gmail.com

Sorry, I missed it was in samples. :/

Alain Aupeix

unread,
Apr 3, 2026, 5:38:47 AMApr 3
to harbou...@googlegroups.com, antonio....@gmail.com

Hi,

Now I tried to build under Xubuntu 24.04.

There are a lot of warnings, and finally it failed when linking:

beatrice@hp15-ubuntu:/opt/TuxPrograms/trunks/HarbourBuilder/samples$ ./build_gtk.sh
/opt/TuxPrograms/trunks/HarbourBuilder
hbbuilder_linux
Using Harbour: /usr/bin
Building: hbbuilder_linux

[1/5] Compiling hbbuilder_linux.prg...
Harbour 3.2.0dev (r2502110321)
Copyright (c) 1999-2024, https://harbour.github.io/
[2/5] Compiling hbbuilder_linux.c...
[3/5] Compiling GTK3 core...
In file included from /usr/include/harbour/hbdefs.h:56,
                 from /usr/include/harbour/hbvmpub.h:50,
                 from /usr/include/harbour/hbapi.h:55,
                 from /opt/TuxPrograms/trunks/HarbourBuilder/backends/gtk3/gtk3_core.c:9:
/usr/include/harbour/hbsetup.h:557: warning: "HB_DEPRECATED" redefined
  557 |    #define HB_DEPRECATED __attribute__ (( __deprecated__ ))
      |
In file included from /usr/include/harfbuzz/hb-blob.h:34,
                 from /usr/include/harfbuzz/hb.h:31,
                 from /usr/include/pango-1.0/pango/pango-coverage.h:28,
                 from /usr/include/pango-1.0/pango/pango-font.h:25,
                 from /usr/include/pango-1.0/pango/pango-attributes.h:25,
                 from /usr/include/pango-1.0/pango/pango.h:25,
                 from /usr/include/gtk-3.0/gdk/gdktypes.h:35,
                 from /usr/include/gtk-3.0/gdk/gdkapplaunchcontext.h:30,
                 from /usr/include/gtk-3.0/gdk/gdk.h:32,
                 from /usr/include/gtk-3.0/gtk/gtk.h:30,
                 from /opt/TuxPrograms/trunks/HarbourBuilder/backends/gtk3/gtk3_core.c:8:
/usr/include/harfbuzz/hb-common.h:73: note: this is the location of the previous definition
   73 | #define HB_DEPRECATED __attribute__((__deprecated__))
      |
/opt/TuxPrograms/trunks/HarbourBuilder/backends/gtk3/gtk3_core.c: In function ‘HB_FUN_GTK_ABOUTDIALOG’:
/opt/TuxPrograms/trunks/HarbourBuilder/backends/gtk3/gtk3_core.c:3915:10: warning: ‘gtk_message_dialog_set_image’ is deprecated [-Wdeprecated-declarations]
 3915 |          gtk_message_dialog_set_image( GTK_MESSAGE_DIALOG(dialog), img );
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/gtk-3.0/gtk/gtk.h:150:
/usr/include/gtk-3.0/gtk/gtkmessagedialog.h:115:12: note: declared here
  115 | void       gtk_message_dialog_set_image    (GtkMessageDialog *dialog,
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/TuxPrograms/trunks/HarbourBuilder/backends/gtk3/gtk3_core.c: In function ‘HB_FUN_UI_GETPROP’:
/opt/TuxPrograms/trunks/HarbourBuilder/backends/gtk3/gtk3_core.c:2103:47: warning: ‘,12’ directive output may be truncated writing 3 bytes into a region of size between 1 and 128 [-Wformat-truncation=]
 2103 |          snprintf( szFont, sizeof(szFont), "%s,12", desc );
      |                                               ^~~
/opt/TuxPrograms/trunks/HarbourBuilder/backends/gtk3/gtk3_core.c:2103:10: note: ‘snprintf’ output between 4 and 131 bytes into a destination of size 128
 2103 |          snprintf( szFont, sizeof(szFont), "%s,12", desc );
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/TuxPrograms/trunks/HarbourBuilder/backends/gtk3/gtk3_core.c: In function ‘HB_FUN_UI_GETALLPROPS’:
/opt/TuxPrograms/trunks/HarbourBuilder/backends/gtk3/gtk3_core.c:2238:39: warning: ‘,12’ directive output may be truncated writing 3 bytes into a region of size between 1 and 128 [-Wformat-truncation=]
 2238 |          snprintf( sf, sizeof(sf), "%s,12", p->FFontDesc );
      |                                       ^~~
/opt/TuxPrograms/trunks/HarbourBuilder/backends/gtk3/gtk3_core.c:2238:10: note: ‘snprintf’ output between 4 and 131 bytes into a destination of size 128
 2238 |          snprintf( sf, sizeof(sf), "%s,12", p->FFontDesc );
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[4/5] Compiling GTK3 inspector...
In file included from /usr/include/harbour/hbdefs.h:56,
                 from /usr/include/harbour/hbvmpub.h:50,
                 from /usr/include/harbour/hbapi.h:55,
                 from /opt/TuxPrograms/trunks/HarbourBuilder/backends/gtk3/gtk3_inspector.c:10:
/usr/include/harbour/hbsetup.h:557: warning: "HB_DEPRECATED" redefined
  557 |    #define HB_DEPRECATED __attribute__ (( __deprecated__ ))
      |
In file included from /usr/include/harfbuzz/hb-blob.h:34,
                 from /usr/include/harfbuzz/hb.h:31,
                 from /usr/include/pango-1.0/pango/pango-coverage.h:28,
                 from /usr/include/pango-1.0/pango/pango-font.h:25,
                 from /usr/include/pango-1.0/pango/pango-attributes.h:25,
                 from /usr/include/pango-1.0/pango/pango.h:25,
                 from /usr/include/gtk-3.0/gdk/gdktypes.h:35,
                 from /usr/include/gtk-3.0/gdk/gdkapplaunchcontext.h:30,
                 from /usr/include/gtk-3.0/gdk/gdk.h:32,
                 from /usr/include/gtk-3.0/gtk/gtk.h:30,
                 from /opt/TuxPrograms/trunks/HarbourBuilder/backends/gtk3/gtk3_inspector.c:9:
/usr/include/harfbuzz/hb-common.h:73: note: this is the location of the previous definition
   73 | #define HB_DEPRECATED __attribute__((__deprecated__))
      |
[5/5] Linking hbbuilder_linux...
/usr/bin/ld: /usr/lib/harbour/libgttrm.a(gttrm.o): warning: relocation against `gpm_consolefd' in read-only section `.text'
/usr/bin/ld : /usr/lib/harbour/libgttrm.a(gttrm.o) : dans la fonction « hb_gt_trm_mouse_Hide » :
(.text+0x24e) : référence indéfinie vers « gpm_visiblepointer »
/usr/bin/ld : /usr/lib/harbour/libgttrm.a(gttrm.o) : dans la fonction « hb_gt_trm_Refresh » :
(.text+0x1f0d) : référence indéfinie vers « gpm_visiblepointer »
/usr/bin/ld : (.text+0x1f7c) : référence indéfinie vers « gpm_zerobased »
/usr/bin/ld : (.text+0x1f9d) : référence indéfinie vers « _gpm_arg »
/usr/bin/ld : (.text+0x1fa3) : référence indéfinie vers « _gpm_buf »
/usr/bin/ld : (.text+0x1fae) : référence indéfinie vers « gpm_consolefd »
/usr/bin/ld : (.text+0x1fc1) : référence indéfinie vers « _gpm_buf »
/usr/bin/ld : /usr/lib/harbour/libgttrm.a(gttrm.o) : dans la fonction « hb_gt_trm_mouse_SetPos » :
(.text+0x203a) : référence indéfinie vers « gpm_visiblepointer »
/usr/bin/ld : (.text+0x204c) : référence indéfinie vers « gpm_zerobased »
/usr/bin/ld : (.text+0x205b) : référence indéfinie vers « _gpm_arg »
/usr/bin/ld : (.text+0x2066) : référence indéfinie vers « gpm_consolefd »
/usr/bin/ld : (.text+0x2071) : référence indéfinie vers « _gpm_buf »
/usr/bin/ld : (.text+0x2085) : référence indéfinie vers « _gpm_buf »
/usr/bin/ld : /usr/lib/harbour/libgttrm.a(gttrm.o) : dans la fonction « hb_gt_trm_mouse_Show » :
(.text+0x20f7) : référence indéfinie vers « gpm_consolefd »
/usr/bin/ld : (.text+0x210c) : référence indéfinie vers « gpm_zerobased »
/usr/bin/ld : (.text+0x211a) : référence indéfinie vers « _gpm_buf »
/usr/bin/ld : (.text+0x2122) : référence indéfinie vers « _gpm_arg »
/usr/bin/ld : (.text+0x2128) : référence indéfinie vers « gpm_visiblepointer »
/usr/bin/ld : (.text+0x2147) : référence indéfinie vers « _gpm_buf »
/usr/bin/ld : /usr/lib/harbour/libgttrm.a(gttrm.o) : dans la fonction « set_gpmevt » :
(.text+0x3f30) : référence indéfinie vers « Gpm_GetEvent »
/usr/bin/ld : /usr/lib/harbour/libgttrm.a(gttrm.o) : dans la fonction « hb_gt_trm_Exit » :
(.text+0x4e94) : référence indéfinie vers « gpm_fd »
/usr/bin/ld : (.text+0x51da) : référence indéfinie vers « Gpm_Close »
/usr/bin/ld : (.text+0x523c) : référence indéfinie vers « Gpm_Close »
/usr/bin/ld : /usr/lib/harbour/libgttrm.a(gttrm.o) : dans la fonction « hb_gt_trm_Init » :
(.text+0x7086) : référence indéfinie vers « gpm_zerobased »
/usr/bin/ld : (.text+0x7097) : référence indéfinie vers « gpm_visiblepointer »
/usr/bin/ld : (.text+0x70a0) : référence indéfinie vers « Gpm_Open »
/usr/bin/ld : (.text+0x70b2) : référence indéfinie vers « gpm_fd »
/usr/bin/ld : (.text+0x70da) : référence indéfinie vers « gpm_fd »
/usr/bin/ld : (.text+0x712b) : référence indéfinie vers « gpm_fd »
/usr/bin/ld : (.text+0x713a) : référence indéfinie vers « gpm_fd »
/usr/bin/ld : (.text+0x714a) : référence indéfinie vers « gpm_fd »
/usr/bin/ld : /usr/lib/harbour/libgttrm.a(gttrm.o):(.text+0x716a) : encore plus de références indéfinies suivent vers « gpm_fd »
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE
collect2: error: ld returned 1 exit status

Do I miss something ?

Thanks
A+

Antonio Linares

unread,
Apr 3, 2026, 5:40:07 AMApr 3
to Alain Aupeix, harbou...@googlegroups.com
Please create issues in the repo with your findings to instruct the AI to review them and solve them, 

thanks!
--
Antonio Linares
www.fivetechsoft.com

antonio....@gmail.com

unread,
Apr 5, 2026, 1:28:07 AMApr 5
to Harbour Users
Dear Alain,

We can built it on Xubuntu 24.04 to easier the testing from your side.

Would you be interested in alpha testing it ?

many thanks

antonio....@gmail.com

unread,
Apr 5, 2026, 1:29:36 AMApr 5
to Harbour Users
We have created a whatsapp group for testers.

If someone is interested to join ion, please email me

Thanks!

Davide Ricca

unread,
Apr 5, 2026, 12:54:19 PMApr 5
to Harbour Users
Hi Antonio, Alain,
great work Antonio !
build successfully in Linux Mint 20 Cinnamon (Ubuntu 20.04)

clone locally from git today at 11.01 
$ cd HarbourBuilder
$ ./build_scintilla.sh
$ cd samples
fix undefined references to `gpm_fd' with:
adding     -lgpm     in    build_gtk.sh line 86     after -lsqlite3
(i had libgpm e libgpm-dev already installed in my system)
$ ./build_gtk.sh
now try it
cd ../bin
$ ./hbbuilder_linux

Best regards

Alain Aupeix

unread,
Apr 6, 2026, 5:42:50 AMApr 6
to harbou...@googlegroups.com, Davide Ricca

Hi Davide,

Adding -lgpm did the job, and the program opens.

But I have no build_scintilla.sh

Thanks
A+
--
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: https://groups.google.com/group/harbour-users
---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.

kamlesh patel

unread,
Apr 6, 2026, 10:15:52 AMApr 6
to harbou...@googlegroups.com
Respected Sir,

Please see the video file.
compile time error generated.
Best Regards
Kamlesh

On Thu, Apr 2, 2026 at 10:04 AM antonio....@gmail.com <antonio....@gmail.com> wrote:
Free and open source:

Screenshot 2026-04-02 at 06.32.58.png

--
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: https://groups.google.com/group/harbour-users
---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.

antonio....@gmail.com

unread,
Apr 6, 2026, 10:53:22 AMApr 6
to Harbour Users
Dear Kamlesh,

We need to include build bat for MSVC and MinGW too, and 64 bits too. Claude Code working on that :-) In the meantime, please use the provided binaries.

We have just finished debug support for Harbour Builder on Mac, going to port it to Windows and Linux too.

Thanks for your patience and please apologies for these issues along the alpha development

best regards

Alain Aupeix

unread,
Apr 6, 2026, 1:02:10 PMApr 6
to harbou...@googlegroups.com, Davide Ricca

Hi,

I have pulled from github, but now, it fails when linking :

______________________________________________________________________________

[5/6] Linking hbbuilder_linux...
/usr/bin/ld : hbbuilder_linux.o:(.data.rel+0x1c30) : référence indéfinie vers « HB_FUN_UI_MEMONEW »
/usr/bin/ld : hbbuilder_linux.o:(.data.rel+0x1eb0) : référence indéfinie vers « HB_FUN_UI_LISTBOXNEW »
/usr/bin/ld : hbbuilder_linux.o:(.data.rel+0x2470) : référence indéfinie vers « HB_FUN_MAC_RUNTIMEERRORDIALOG »
/usr/bin/ld : hbbuilder_linux.o:(.data.rel+0x24b0) : référence indéfinie vers « HB_FUN_MAC_APPTERMINATE »

collect2: error: ld returned 1 exit status
-----------------------------------------------------------------------------------------------------

Where is the problem ?

Why mac functions ?

antonio....@gmail.com

unread,
Apr 6, 2026, 3:45:14 PMApr 6
to Harbour Users
Claude Code may had not completed all its work by that time :-)

kamlesh patel

unread,
Apr 7, 2026, 2:12:11 AMApr 7
to harbou...@googlegroups.com
Respected sir,

Please see the video and update the BAT file after the compile error is solved.

Best Regards
Kamlesh



--
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: https://groups.google.com/group/harbour-users
---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.

pete....@gmail.com

unread,
Apr 7, 2026, 6:13:48 AMApr 7
to Harbour Users
still no success building with mingw32  (on windows 11 ) 

Itamar Lins

unread,
Apr 7, 2026, 8:55:22 AMApr 7
to Harbour Users
Hi!
Linux OS.

[1] Saving project files...
    Form1.prg
[2] Building main.prg...
[3] Compiling main.prg...
    FAILED:
Harbour 3.2.0dev (r2602281433)
Copyright (c) 1999-2025, https://harbour.github.io/

/tmp/hbbuilder_build/main.prg(1) Error F0029  Can't open #include file 'hbbuilder.ch'

Best regards,
Itamar M. Lins Jr.

Itamar Lins

unread,
Apr 7, 2026, 9:20:07 AMApr 7
to Harbour Users
Hi!
Here found 2 problems.
The git clone into /home/itamar/dev

itamar@itamar-I7:~/dev$ git clone https://github.com/FiveTechSoft/HarbourBuilder.git
Cloning into 'HarbourBuilder'...
remote: Enumerating objects: 3307, done.
remote: Counting objects: 100% (264/264), done.
remote: Compressing objects: 100% (172/172), done.
remote: Total 3307 (delta 162), reused 159 (delta 73), pack-reused 3043 (from 1)
Receiving objects: 100% (3307/3307), 66.62 MiB | 4.00 MiB/s, done.
Resolving deltas: 100% (1380/1380), done.

Captura_de_tela_20260407_100138.png
But internal code use harbourbuilder instead HarbourBuilder (capitular)
And take into consideration the folder where it is located /home/itamar/dev/HarbourBuilder instead /home/itamar/harbourbuilder (hb_DirBase())


Best regards,
Itamar M. Lins Jr.

kamlesh patel

unread,
Apr 7, 2026, 10:20:18 AMApr 7
to harbou...@googlegroups.com
Respected Sir,

Thank you For Reply.

Another video for compile error
We are try 3 type compile
1 bcc
2 msvc
3 mingw

Best Regards
Kamlesh

antonio....@gmail.com

unread,
Apr 7, 2026, 1:20:47 PMApr 7
to Harbour Users
Please create an "issue" in the offical repo explaining what happens using "natural language" so the AI can review it and fix it  👍🏻

No videos, no screenshots. Just talk to the AI :-)


many thanks

Francesco Perillo

unread,
Apr 10, 2026, 10:54:28 AMApr 10
to harbou...@googlegroups.com
Hi Antonio,

I'm trying to follow the evolution of this project since it may be a new start for Harbour.

From time to time I try to inspect the code and there are some things that I can't understand.

There is documentation about classes and also sample code on how to use them but there is just a reference in the docs and in the ide, no real code yet: Like TPDFGenerator or TPermission. Is it possible to amend the readme to list all the classes and their implementation status as you do with databases ?

 TDBNavigator, as I understand it, should be a GUI widget but I find gui code only for linux (or am I not finding them ?)

classes.prg file (and probably other files) is duplicated.

Is it possible to just build the widgets library with my versione of harbour without using the ide?

The use of ASSIGN/ACCESS methods is smart, so you have a list of properties that you can retrieve, save and load, list and if necessary, you can act upon  when written or read.

Just looking at the commits it seems to me that some win32 code is not in the *_win file. Trying to follow how a TLabel is created, I see that for mac and linux UI_LABELNEW is in their files under backends, whilethe version for windows is defined in cpp\hbbridge.prg.


The project looks interesting and has some potential, I understand that AI can navigate and makes sense of the code better than me, but I think there should be a little bit more order in the code... what do you think ?

Francesco

antonio....@gmail.com

unread,
Apr 11, 2026, 12:57:44 PM (13 days ago) Apr 11
to Harbour Users
Dear Francesco,

Harbour Builder project started as a research project about deeply using AI on software development. Inspired by other developments where it has been cleared announced that AI is doing the coding job, in example OpenClaw or recently Claude Works. Claude Code`s developer confirmed that he no longer codes a single line of Claude Code new enhancements since past november to enhance Claude Code. Claude Code coding is used to enhance Claude Code itself. I wanted to check if this can be true. We just behave as general architects and supervisors of what is going on, instructing the AI as the project progress at the same time our understanding grows about what and how is being developed.

When I started the Harbour Project, my idea was to apply the same principles used to develop Linux (open source and cooperative development), that clearly were a proved success. Fortunately it succeded and with the help of lots of great developers, Harbour is a reality today and has a great community.

In a similar way, afte realizing how impressive Claude Code coding is, I decided to go for Harbour Builder. The idea was simple: to create a multi platform IDE based on the Borland C++ Builder IDE this time to be used with Harbour. My good friend Bruno Cantero (Harbour project contributor on initial RDDs design and author of private C3) explained me that his C3 GUI was based on C++ core classes and thus lots of messages are managed by C++ and avoid the use of HVM, speeding up very much the GUI execution. I asked Bruno to provide me a small GUI with C++ example I could provide to Claude Code. So these were the only two rules that I gave to Claude Code: go for a C++ Builder IDE to be used with Harbour language and use C++ for the core GUI implementation. Claude Code always had full access to Harbour project sources.

From that moment on I simply supervised Claude Code coding, doing tests and providing feedback exclusively using human language. Honestly I have not coded a single line of Harbour Builder. At the beginning it seemed messy and somehow out of control, but then I realized Claude Code was taking a clear and clever path and the results were very promising. Harbour Builder IDE execution is extremelly fast and executable sizes are quite small. Same implementation working on Windows, MacOS and Linux. The documentation was wrongly asked for at the beginning of the development, so it was quite hallucinated and it has to be redone (AI did it).

The speed of development and productivity are quite amazing. In about two weeks the IDE is working so nicely and the feeling you get when you use it is that you are working with a very professional tool. I am really enjoying it and would love to get more users feedback to provide better feedback to the AI. This AI development really changes the way we are used to develop software. Its a new experience highly recommended. Still I don't think its easy to have more contributors on the official repo and after much thinking, it seems as repo issues on GitHub using human language is the only way to provide feedback to it by users. When a alpha tester reports me an error, I simple give it to Claude Code and ask it to fix it. I have found that Claude Code can "read" the repo issues so we can ask it to review them and provide its advice about them. 

Two days ago I reorganized the project folders structure to have all the source code together. I provide many instructions to Claude Code based on my own tests using Harbour Builder. So yes, we have to help AI the same way AI is helping us. The fact is that Harbour Builder foundation is working nicely and it seems that can grow up and reach a very powerfull IDE we can all use and enjoy in a record time. There is no commercial interest from me at all on this. I am learning and enjoying it a lot.
You are all very welcome to participate on this new Harbour adventure!

best regards

Alain Aupeix

unread,
Apr 11, 2026, 1:27:18 PM (13 days ago) Apr 11
to harbou...@googlegroups.com
Hi Antonio,

First, hbbuilder_linux seems very interesting, but I found some problems:

1) The way to determine if harbour is installed is bad for me, as the
possible locatiuon is a little tricky, and can't found for example if
harbour is installed under /usr (it's my case).
So, I found a better way to determine it : using variables which
definition can be located in .profile. Example:

HBCOM=gcc
HBBIN=/usr/bin
HBLIB=/usr/lib/harbour
HBINC=/usr/include/harbour
HBDIR=/opt/TuxPrograms/trunks/harbour

With these variables, we can determine if harbour is installed or no,
and then, if needed, install it automatically under $HOME for exemple.
Else variables can be directly used with getenv().

2) -lgpm is always missing in build_linux.sh. After addind it in the
script, it builds

3)  But trying debug, I have these errors:

[6] Linking...
/usr/bin/ld : /tmp/hbbuilder_debug/debug_main.o:(.data.rel+0xcf0) :
référence indéfinie vers « HB_FUN_UI_BROWSESETCELL »
/usr/bin/ld : /tmp/hbbuilder_debug/debug_main.o:(.data.rel+0xdf0) :
référence indéfinie vers « HB_FUN_UI_BROWSESETCOLPROP »
/usr/bin/ld : /tmp/hbbuilder_debug/debug_main.o:(.data.rel+0xe10) :
référence indéfinie vers « HB_FUN_UI_BROWSECOLCOUNT »
/usr/bin/ld : /tmp/hbbuilder_debug/debug_main.o:(.data.rel+0xe30) :
référence indéfinie vers « HB_FUN_UI_BROWSEREFRESH »
/usr/bin/ld : /tmp/hbbuilder_debug/debug_main.o:(.data.rel+0x1650) :
référence indéfinie vers « HB_FUN_GTK_RUNTIMEERRORDIALOG »
/usr/bin/ld : /tmp/hbbuilder_debug/debug_main.o:(.data.rel+0x1690) :
référence indéfinie vers « HB_FUN_GTK_APPTERMINATE »
/usr/bin/ld : /tmp/hbbuilder_debug/debug_main.o:(.data.rel+0x4090) :
référence indéfinie vers « HB_FUN_UI_TIMERNEW »
collect2: error: ld returned 1 exit status

A+

antonio....@gmail.com

unread,
Apr 12, 2026, 9:02:36 PM (12 days ago) Apr 12
to Harbour Users
Dear Alain,

Please git pull and try it again

many thanks for your feedback

Alain Aupeix

unread,
Apr 13, 2026, 10:56:05 AM (11 days ago) Apr 13
to harbou...@googlegroups.com, antonio....@gmail.com


Le 13/04/2026 à 03:02, antonio....@gmail.com a écrit :
Dear Alain,

Please git pull and try it again

many thanks for your feedback

Hi, there is always lgpm error :

beatrice@hp15-ubuntu:/opt/TuxPrograms/trunks/hbbuilder$ ./build_linux.sh
Using Harbour: /opt/TuxPrograms/trunks/harbour
Building: hbbuilder_linux

[1/6] Compiling hbbuilder_linux.prg...


Harbour 3.2.0dev (r2502110321)
Copyright (c) 1999-2024, https://harbour.github.io/

[2/6] Compiling hbbuilder_linux.c...
[3/6] Compiling GTK3 core...
[4/6] Compiling GTK3 inspector...
[5/6] Linking hbbuilder_linux...
/usr/bin/ld: /opt/TuxPrograms/trunks/harbour/lib/linux/gcc/libgttrm.a(gttrm.o): warning: relocation against `gpm_consolefd' in read-only section `.text'
/usr/bin/ld : /opt/TuxPrograms/trunks/harbour/lib/linux/gcc/libgttrm.a(gttrm.o) : dans la fonction « hb_gt_trm_mouse_Hide » :
gttrm.c:(.text+0x24e) : référence indéfinie vers « gpm_visiblepointer »
/usr/bin/ld : /opt/TuxPrograms/trunks/harbour/lib/linux/gcc/libgttrm.a(gttrm.o) : dans la fonction « hb_gt_trm_Refresh » :
gttrm.c:(.text+0x1f0d) : référence indéfinie vers « gpm_visiblepointer »
/usr/bin/ld : gttrm.c:(.text+0x1f7c) : référence indéfinie vers « gpm_zerobased »
/usr/bin/ld : gttrm.c:(.text+0x1f9d) : référence indéfinie vers « _gpm_arg »
/usr/bin/ld : gttrm.c:(.text+0x1fa3) : référence indéfinie vers « _gpm_buf »
/usr/bin/ld : gttrm.c:(.text+0x1fae) : référence indéfinie vers « gpm_consolefd »
/usr/bin/ld : gttrm.c:(.text+0x1fc1) : référence indéfinie vers « _gpm_buf »
/usr/bin/ld : /opt/TuxPrograms/trunks/harbour/lib/linux/gcc/libgttrm.a(gttrm.o) : dans la fonction « hb_gt_trm_mouse_SetPos » :
gttrm.c:(.text+0x203a) : référence indéfinie vers « gpm_visiblepointer »
/usr/bin/ld : gttrm.c:(.text+0x204c) : référence indéfinie vers « gpm_zerobased »
/usr/bin/ld : gttrm.c:(.text+0x205b) : référence indéfinie vers « _gpm_arg »
/usr/bin/ld : gttrm.c:(.text+0x2066) : référence indéfinie vers « gpm_consolefd »
/usr/bin/ld : gttrm.c:(.text+0x2071) : référence indéfinie vers « _gpm_buf »
/usr/bin/ld : gttrm.c:(.text+0x2085) : référence indéfinie vers « _gpm_buf »
/usr/bin/ld : /opt/TuxPrograms/trunks/harbour/lib/linux/gcc/libgttrm.a(gttrm.o) : dans la fonction « hb_gt_trm_mouse_Show » :
gttrm.c:(.text+0x20f7) : référence indéfinie vers « gpm_consolefd »
/usr/bin/ld : gttrm.c:(.text+0x210c) : référence indéfinie vers « gpm_zerobased »
/usr/bin/ld : gttrm.c:(.text+0x211a) : référence indéfinie vers « _gpm_buf »
/usr/bin/ld : gttrm.c:(.text+0x2122) : référence indéfinie vers « _gpm_arg »
/usr/bin/ld : gttrm.c:(.text+0x2128) : référence indéfinie vers « gpm_visiblepointer »
/usr/bin/ld : gttrm.c:(.text+0x2147) : référence indéfinie vers « _gpm_buf »
/usr/bin/ld : /opt/TuxPrograms/trunks/harbour/lib/linux/gcc/libgttrm.a(gttrm.o) : dans la fonction « set_gpmevt » :
gttrm.c:(.text+0x3f30) : référence indéfinie vers « Gpm_GetEvent »
/usr/bin/ld : /opt/TuxPrograms/trunks/harbour/lib/linux/gcc/libgttrm.a(gttrm.o) : dans la fonction « hb_gt_trm_Exit » :
gttrm.c:(.text+0x5a24) : référence indéfinie vers « gpm_fd »
/usr/bin/ld : gttrm.c:(.text+0x5d7a) : référence indéfinie vers « Gpm_Close »
/usr/bin/ld : gttrm.c:(.text+0x5ddc) : référence indéfinie vers « Gpm_Close »
/usr/bin/ld : /opt/TuxPrograms/trunks/harbour/lib/linux/gcc/libgttrm.a(gttrm.o) : dans la fonction « hb_gt_trm_Init » :
gttrm.c:(.text+0x70a6) : référence indéfinie vers « gpm_zerobased »
/usr/bin/ld : gttrm.c:(.text+0x70b7) : référence indéfinie vers « gpm_visiblepointer »
/usr/bin/ld : gttrm.c:(.text+0x70c0) : référence indéfinie vers « Gpm_Open »
/usr/bin/ld : gttrm.c:(.text+0x70d2) : référence indéfinie vers « gpm_fd »
/usr/bin/ld : gttrm.c:(.text+0x70fa) : référence indéfinie vers « gpm_fd »
/usr/bin/ld : gttrm.c:(.text+0x714b) : référence indéfinie vers « gpm_fd »
/usr/bin/ld : gttrm.c:(.text+0x715a) : référence indéfinie vers « gpm_fd »
/usr/bin/ld : gttrm.c:(.text+0x716a) : référence indéfinie vers « gpm_fd »
/usr/bin/ld : /opt/TuxPrograms/trunks/harbour/lib/linux/gcc/libgttrm.a(gttrm.o):gttrm.c:(.text+0x718a) : encore plus de références indéfinies suivent vers « gpm_fd »

-lgpm missing !

and a new one :

/usr/bin/ld : hbbuilder_linux.o:(.data.rel+0x1d70) : référence indéfinie vers « HB_FUN_UI_SETCTRLOWNER »
/usr/bin/ld : hbbuilder_linux.o:(.data.rel+0x1d90) : référence indéfinie vers « HB_FUN_UI_GETCTRLPAGE »
/usr/bin/ld : hbbuilder_linux.o:(.data.rel+0x1db0) : référence indéfinie vers « HB_FUN_UI_GETCTRLOWNER »
/usr/bin/ld : hbbuilder_linux.o:(.data.rel+0x24f0) : référence indéfinie vers « HB_FUN_UI_SETPENDINGPAGEOWNER »
/usr/bin/ld : hbbuilder_linux.o:(.data.rel+0x25d0) : référence indéfinie vers « HB_FUN_UI_TABCONTROLNEW »
/usr/bin/ld : hbbuilder_linux.o:(.data.rel+0x26b0) : référence indéfinie vers « HB_FUN_UI_TREEVIEWNEW »


/usr/bin/ld: warning: creating DT_TEXTREL in a PIE

collect2: error: ld returned 1 exit status

A+

antonio....@gmail.com

unread,
Apr 13, 2026, 11:20:39 AM (11 days ago) Apr 13
to Harbour Users
Dear Alain,

1. -lgpm missing (Harbour issue, not the project):                                                          

  Harbour's libgttrm.a was built with gpm support but the dev library is missing. On Ubuntu:

  sudo apt install libgpm-dev                                                                                 

                                                       

  2. UI_SetCtrlOwner et al. missing on Linux:                                                                 

  Already fixed upstream. The user just needs to:           

  cd /opt/TuxPrograms/trunks/hbbuilder                                                                        

  git pull                            

  ./build_linux.sh                                                                                            

                                                            

  Both actions together should produce a clean build.

https://fivetechsoft.github.io/HarbourBuilder/


antonio....@gmail.com

unread,
Apr 13, 2026, 12:41:20 PM (11 days ago) Apr 13
to Harbour Users
Android_IOS.jpg

antonio....@gmail.com

unread,
Apr 13, 2026, 10:35:58 PM (11 days ago) Apr 13
to Harbour Users
android_builder.jpg

kamlesh patel

unread,
Apr 14, 2026, 2:14:55 AM (11 days ago) Apr 14
to harbou...@googlegroups.com
Respected Sir,
Good news for harbour users for android and ios apps.

Best Regards
Kamlesh

--
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: https://groups.google.com/group/harbour-users
---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.

antonio....@gmail.com

unread,
Apr 15, 2026, 12:43:53 AM (10 days ago) Apr 15
to Harbour Users
Screenshot 2026-04-15 at 06.35.00.png
Reply all
Reply to author
Forward
0 new messages