Because LCL is not pure, it can't compile everywhere. lazarus / 31-LCL ---------------------------------------------------------------------- sainimu78 · 2016-08-26 13:50 I tried to cross compile a new LCL application project with arm-linux- gnueabihf- cross compiler to linux embeded(not ubuntu, it's linux of no GUI). it failed anyhow. It is because of widgetset gtk gtk2 and qt can't compile on that target. I tried out all widgetset and got some error like "libgdk_pixbuf undefined reference to 'g_type_class_adjust_private'", "-lQt4Pas not found", "undefined reference to '_init'" I searched throughout and got no solution. This makes me failed on my job. I chose lazarus because of it can be cross compiled, you know. Why is there no widgetset that it dosen't based on third part. ---------------------------------------------------------------------- marcov · 2016-08-26 14:10 There are several attempts (owner drawn etc), but the progression is slow. Maybe you could start to work on it? ---------------------------------------------------------------------- Thaddy · 2016-08-26 14:25 There is a "widget set" that probably works out of the box. It is in FPC and is called FreeVision. The Freepascal textmode ide is based on it As long as your linux embedded platform has a kernel with framebuffer support, you may try the ownerdrawn widget set with Lazarus, but last time I looked it still depended on X. What are you trying to achieve? If you want all the nuts and bolds that come with a gui framework based on one of the UI standards (windows, GTK, Qt) you are probably way in over your head to want those kind of looks implemented on an embedded device. On my Raspberry Pies I use OpenVG to build user interfaces that do not depend on X and so ulimately GTK or Qt , but that is based on classes and not on "drag and draw" i.e.: handcoded from these classes. ---------------------------------------------------------------------- mse · 2016-08-26 15:36 MSEide+MSEgui needs X11 only: https://sourceforge.net/projects/mseide-msegui/ A FPC Linux-X86->Linux-ARM cross-compiling environment (tested on Raspberry Pi) is here: https://sourceforge.net/projects/mseide-msegui/files/fpcrossarm/ MSEide has a project template for cross compiling, please read README.TXT. fpGUI also does not need an external widgetset: http://fpgui.sourceforge.net/ If there is no X11 support in your target you are out of luck. ---------------------------------------------------------------------- sainimu78 · 2016-08-26 16:35 Quote from: marcov on August 26, 2016, 04:10:05 pmThere are several attempts (owner drawn etc), but the progression is slow. Maybe you could start to work on it? oh, I think I would like to join some popular project. ---------------------------------------------------------------------- sainimu78 · 2016-08-26 16:46 Quote from: Thaddy on August 26, 2016, 04:25:50 pmThere is a "widget set" that probably works out of the box. It is in FPC and is called FreeVision. The Freepascal textmode ide is based on it As long as your linux embedded platform has a kernel with framebuffer support, you may try the ownerdrawn widget set with Lazarus, but last time I looked it still depended on X. What are you trying to achieve? If you want all the nuts and bolds that come with a gui framework based on one of the UI standards (windows, GTK, Qt) you are probably way in over your head to want those kind of looks implemented on an embedded device. On my Raspberry Pies I use OpenVG to build user interfaces that do not depend on X and so ulimately GTK or Qt , but that is based on classes and not on "drag and draw" i.e.: handcoded from these classes. My project started 2 years ago. My department manager decided to use lazarus+FPC+LCL to develop. This proj is good for both ubuntu and windows. I'n trying to port this proj to a arm-cortex-A9 device on linux embedded. I need a framework that my proj can be very easily ported to. ---------------------------------------------------------------------- sainimu78 · 2016-08-26 16:49 Quote from: mse on August 26, 2016, 05:36:46 pmMSEide+MSEgui needs X11 only: https://sourceforge.net/projects/mseide-msegui/ A FPC Linux-X86->Linux-ARM cross-compiling environment (tested on Raspberry Pi) is here: https://sourceforge.net/projects/mseide-msegui/files/fpcrossarm/ MSEide has a project template for cross compiling, please read README.TXT. fpGUI also does not need an external widgetset: http://fpgui.sourceforge.net/ If there is no X11 support in your target you are out of luck. X11 is OK. But fpGUI is far from LCL, its behavior like message processing is wierd and it needs hard work to porting to ---------------------------------------------------------------------- zeljko · 2016-08-26 16:57 Quote from: sainimu78 on August 26, 2016, 03:50:11 pmI tried to cross compile a new LCL application project with arm-linux-gnueabihf- cross compiler to linux embeded(not ubuntu, it's linux of no GUI). it failed anyhow. It is because of widgetset gtk gtk2 and qt can't compile on that target. I tried out all widgetset and got some error like "libgdk_pixbuf undefined reference to 'g_type_class_adjust_private'", "-lQt4Pas not found", "undefined reference to '_init'" I searched throughout and got no solution. This makes me failed on my job. I chose lazarus because of it can be cross compiled, you know. Why is there no widgetset that it dosen't based on third part. To compile Qt target you must have libQt4Pas compiled for your target platform (arm). ---------------------------------------------------------------------- Leledumbo · 2016-08-26 17:58 Quote from: sainimu78 on August 26, 2016, 03:50:11 pmI tried to cross compile a new LCL application project with arm-linux-gnueabihf- cross compiler to linux embeded(not ubuntu, it's linux of no GUI). This is already an abuse of LCL. LCL is a VISUAL component library over various GUI toolkits (or widgetset) that does the actual drawing and event handling mechanism. It makes no sense having LCL applications running in a GUI-less OS. Quote from: sainimu78 on August 26, 2016, 03:50:11 pmWhy is there no widgetset that it dosen't based on third part. There is fpGUI backend requiring only X11, but it still requires X11, which your GUI-less OS doesn't (or might not) have. There's also NoGUI backend for creating GUI-less LCL application, such as PDF printer requiring to draw on an invisible canvas. Neither will magically run your GUI application on the GUI-less OS, there's no (easy) way to create a platform neutral widgetset, modern OSes don't let you call interrupt directly from userland, which even if you made it, you will no longer be running on CLI. The only "GUI" (it's actually a TUI) framework capable of running in CLI environment is FreeVision, but there's no LCL backend for it. ---------------------------------------------------------------------- sainimu78 · 2016-08-26 18:04 Quote from: zeljko on August 26, 2016, 06:57:06 pmQuote from: sainimu78 on August 26, 2016, 03:50:11 pmI tried to cross compile a new LCL application project with arm-linux-gnueabihf- cross compiler to linux embeded(not ubuntu, it's linux of no GUI). it failed anyhow. It is because of widgetset gtk gtk2 and qt can't compile on that target. I tried out all widgetset and got some error like "libgdk_pixbuf undefined reference to 'g_type_class_adjust_private'", "-lQt4Pas not found", "undefined reference to '_init'" I searched throughout and got no solution. This makes me failed on my job. I chose lazarus because of it can be cross compiled, you know. Why is there no widgetset that it dosen't based on third part. To compile Qt target you must have libQt4Pas compiled for your target platform (arm). I have no idea for what params should be passed to qmake and make, so I had gave it up. I cannot do this without examples. Maybe I can get some hints on the release  for Nokia N900... this is so hard for me. ---------------------------------------------------------------------- sainimu78 · 2016-08-26 18:12 Quote from: Leledumbo on August 26, 2016, 07:58:28 pmThere is fpGUI backend requiring only X11, but it still requires X11, which your GUI- less OS doesn't (or might not) have. I can use buildroot to add X11 libs, gtk2 libs, qt5 libs, isn't it enough? I truely don't know except specific graphics libraries what else a GUI program runs OK on windows needs for running on no GUI OS. ---------------------------------------------------------------------- Thaddy · 2016-08-26 18:44 Quote from: sainimu78 on August 26, 2016, 08:12:24 pmQuote from: Leledumbo on August 26, 2016, 07:58:28 pmThere is fpGUI backend requiring only X11, but it still requires X11, which your GUI-less OS doesn't (or might not) have. I can use buildroot to add X11 libs, gtk2 libs, qt5 libs, isn't it enough? I truely don't know except specific graphics libraries what else a GUI program runs OK on windows needs for running on no GUI OS. Yes that's enough even now. But hardly "embedded" pulling in multi mb's of code. That's not embedded that's a full - maybe lightweight - linux. For that the best way is to use the fbdev option. That's in the kernel and I know there is someone working on ownerdrawn controls icm framebuffer only. In that case, it would make sense. Embedded has multiple meanings. I for one consider it to be a system that only can bootstrap code. nothing else. It is your responsability to write that code. ---------------------------------------------------------------------- mse · 2016-08-26 18:56 Quote from: sainimu78 on August 26, 2016, 06:49:59 pmX11 is OK. But fpGUI is far from LCL, its behavior like message processing is wierd and it needs hard work to porting to Then try MSEgui. It needs possibly even more work to port but it is worth the effort. ;-) ---------------------------------------------------------------------- mse · 2016-08-26 18:58 Quote from: sainimu78 on August 26, 2016, 08:12:24 pmI can use buildroot to add X11 libs, gtk2 libs, qt5 libs, isn't it enough? X11 libs are not enough, an X11 server implementation is necessary too. ---------------------------------------------------------------------- Thaddy · 2016-08-26 19:22 Quote from: mse on August 26, 2016, 08:58:34 pmQuote from: sainimu78 on August 26, 2016, 08:12:24 pmI can use buildroot to add X11 libs, gtk2 libs, qt5 libs, isn't it enough? X11 libs are not enough, an X11 server implementation is necessary too. I was not clear, you are correct. A Full X install. ---------------------------------------------------------------------- Blestan · 2016-08-27 07:22 GUI on a NON GUI OS ???? and blameing lazarus/fpc for that is a  complete nonsense ... lazarus is cross platform not bare metal )) ---------------------------------------------------------------------- DonAlfredo · 2016-08-27 07:43 There is Ultibo. https://ultibo.org/ Bare metal GUI with FPC/Lazarus on ARM. Catch: RPi only ! ---------------------------------------------------------------------- felipemdc · 2016-08-27 09:14 Quote from: sainimu78 on August 26, 2016, 03:50:11 pmI tried to cross compile a new LCL application project with arm-linux-gnueabihf- cross compiler to linux embeded(not ubuntu, it's linux of no GUI). it failed anyhow. It is because of widgetset gtk gtk2 and qt can't compile on that target. Use the customdrawn widgetset, it supports anything with X11: http://wiki.lazarus.freepascal.org/Custom_Drawn_Interface ---------------------------------------------------------------------- Graeme · 2016-08-27 23:22 Quote from: sainimu78 on August 26, 2016, 06:49:59 pmX11 is OK. Then there is some hope. ;-) QuoteBut fpGUI is far from LCL, By design. Simply because fpGUI had no requirement or design goal to be a VCL (Delphi) clone. That meant I could do things different and better. There was no backwards compatibility issues to worry about either. Quote its behavior like message processing is wierd Then maybe their is something you don't understand. Messaging in fpGUI is implement as designed by the FPC team and it uses the message feature from the Object Pascal language syntax. Nothing weird or odd about that. LCL does exactly the same. Quote and it needs hard work to porting to On the contrary, I found it actually very easy to port VCL or LCL components to fpGUI, and I've done so many times. The reason being, fpGUI is 100% cross-platform, so you don't need IFDEF's in your application or component code, you don't need platform specific API calls etc. I'm not the only one that has experienced the ease of porting VCL or LCL components to fpGUI - others have done so too. fpGUI's code repository even contains some of those contributions. ---------------------------------------------------------------------- Graeme · 2016-08-27 23:31 Quote from: DonAlfredo on August 27, 2016, 09:43:03 amThere is Ultibo. https://ultibo.org/ And there is a fpGUI port for Ultibo too. As far as I understand Ultibo doesn't use X11 at all.   https://ultibo.org/forum/viewtopic.php?f=10&t=38&start=10   https://ultibo.org/forum/viewtopic.php?f=10&t=38&p=121#p121 ---------------------------------------------------------------------- Thaddy · 2016-08-28 05:29 Quote from: Graeme on August 28, 2016, 01:31:26 amAnd there is a fpGUI port for Ultibo too. As far as I understand Ultibo doesn't use X11 at all.   https://ultibo.org/forum/viewtopic.php?f=10&t=38&start=10   https://ultibo.org/forum/viewtopic.php?f=10&t=38&p=121#p121 That's correct. ULTIBO uses the videocore direct and only uses the videocore provided libaries. Afaik this will only work on the computer running the software and not via any kind of remoting. At least: I don't know of that. I guess the port uses either vc mailbox or fb's. I will have to try and look...Ultibo is really nice to play with on the Raspberry Pi.