PDA

View Full Version : makeqpf via command line requires X server?



dbaker
27th April 2015, 21:09
Hi all,

We're trying to make the generation of our font file for the Japanese version of our application part of our build process. Consequently we're attempting to run something like:


makeqpf -c arialuni.ttf arial_unicode_ms_14_50.qpf2 14 n n translation_files/japanese.txt

on our build machine. But an error is generated stating that makeqpf can't connect to an X server. Which of course is true because there is no X server to connect to, but I don't think one should be needed in this case. Is there anyway around this?

We're using Qt 4.5.x. The build process runs on a linux server and the application is deployed to a linux based embedded device.

Any help would be greatly appreciated.

Thanks in advance,
Derek

anda_skoa
28th April 2015, 07:10
I don't know makeqpf so I am going to speculate:

if it is a tool using Qt itself and using Qt's font classes or other classes from QtGui, then it requires the dependenices for QtGui.
Since we are talking about Qt4.5 here that means whatever UI plaform QtGui was built for. If it was built for X11, it will try to initiate a connection to the X server (after all that is its core functionality on X11).

It should be easy to check if makeqpf does indeed link with QtGui.

If it does you have two options:
- use Qt built for something non X11 on the build server, e.g. Linux framebuffer
- run a mock/simulated X server, e.g. Xvfb

Cheers,
_

dbaker
28th April 2015, 14:21
Makeqpf does have a GUI mode it can run in so it does link against QtGUI. We're looking into the Xfvb option.

Thanks!

wysota
28th April 2015, 15:13
Can't you simply run it on your desktop machine?

dbaker
29th April 2015, 14:05
We're making it part of the build process so that we don't have to do it manually everytime we add a new Japanese character to the application. Especially since we'll be adding alot of text in the near future. It just streamlines the process a bit.

The Xvfb approach is working great, btw.