Announcing Harbour Builder

229 views
Skip to first unread message

antonio....@gmail.com

unread,
Apr 2, 2026, 12:34:27 AM (3 days ago) Apr 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 AM (3 days ago) Apr 2
to Harbour Users
Screenshot 2026-04-02 at 06.32.58.png

antonio....@gmail.com

unread,
Apr 2, 2026, 2:43:54 AM (3 days ago) Apr 2
to Harbour Users
Screenshot 2026-04-02 at 08.40.39.png

antonio....@gmail.com

unread,
Apr 2, 2026, 4:27:20 AM (3 days ago) Apr 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 AM (yesterday) Apr 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 AM (yesterday) Apr 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 AM (yesterday) Apr 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 AM (yesterday) Apr 3
to harbou...@googlegroups.com, antonio....@gmail.com

Sorry, I missed it was in samples. :/

Alain Aupeix

unread,
Apr 3, 2026, 5:38:47 AM (yesterday) Apr 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 AM (yesterday) Apr 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
Reply all
Reply to author
Forward
0 new messages