source: trunk/README.OS2@ 1077

Last change on this file since 1077 was 1058, checked in by Dmitry A. Kuminov, 14 years ago

OS/2: Enable linking to cups.dll at runtime.

This requires CUPS 1.4.8 and above. Older versions will not
work anymore.

File size: 33.1 KB
Line 
1This is Qt version 4.6.3 for OS/2 and eCS.
2
3This document contains a brief information on the OS/2 version of the Qt
4library. Please read it carefully before starting your work. You may also
5visit the project page at
6
7 http://svn.netlabs.org/qt4/wiki
8
9to get more information and the latest news and also to report bugs.
10
11To get a brief list of OS/2-specific changes from release to release
12please see the CHANGES.OS2 file included in this distribution.
13
14Please note that this version is binary incompatible with previous versions of
15Qt 4 for OS/2! This is not a behavior of the original Qt library (where versions
16with the same major number are usually binary compatible), but it is due to the
17fact that we continue to add missing features to the OS/2 version ot Qt and this
18cannot be done witout breaking the binary compatibility. On practice, this means
19that you need to recompile your applications with the new version of the Qt
20library in order to make them work with it.
21
22
23
24REQUIREMENTS
25
26In order to compile the Qt library and Qt-based applications, you will need
27the following tools:
28
29 - One of the OS/2 Warp 4, OS/2 Warp 4.5 or eComStation operating systems.
30
31 - GCC compiler version 4.4.2 for OS/2, patched OpenWatcom linker and
32 GNU Make 3.81beta1 or above. The GCC compiler must be set up to use the
33 OpenWatcom linker for linking.
34
35 If you do not have a working GCC environment with the above requirements, it
36 is recommended to download a ready-to-use GCC 4.2.2 distribution from here:
37
38 ftp://ftp.netlabs.org/pub/qt4/gcc-4_4_2-complete-20091205.zip
39
40 This distribution includes all tools necessary to compile and build the Qt
41 library from the source code. Just follow the installation instructions
42 contained in the README file inside this ZIP archive to set up the GCC
43 environment.
44
45 Please note that starting from Qt 4.6.2, support for GCC 3.3.5 and earlier
46 versions of the compiler has been dropped and the Qt library will most
47 likely not build if you use one of these compilers. Later versions prior to
48 GCC 4.4.2 may work but they are not tested and not supported.
49
50 - IBM RC (Resource Compiler) Version 5.00.007 (comes with OS/2 Toolkit 4.5)
51 or Version 4.00.011 (comes with eCS 2.0). Other versions may not work
52 correctly.
53
54There is also a set of optional tools which are necessary to enable the selected
55features of the Qt library. If these tools are missing, the Qt configuration
56script (discussed in section "COMPILING QT" below) will automatically disable
57the corresponding feature:
58
59 - Perl 5.8.2 or above. This is required if you want to perform a shadow build
60 of the Qt library (which is a recommended way to go). Please refer to
61 section "COMPILING QT" for more information about shadow builds. Recent
62 builds of Perl for OS/2 are available here:
63
64 http://os2ports.smedley.info/index.php?page=perl
65
66 - MAPSYM 4.00.000 (Oct 4 2001) to enable generation of symbol (.SYM) files for
67 DLLs and executables. This tool comes with OS/2 Toolkit 4.5. Note that other
68 versions of this tool may not work correctly.
69
70 - LxLite 1.3.3 or above (not tested) to enable the compression of DLLs and
71 executables (which saves hard disk space and application startup time). If
72 you use a recent version of eComStation (e.g. 2.0 rc6) you will already have
73 LxLite installed. Otherwise, you may take it from here:
74
75 http://www.os2site.com/sw/util/archiver/lxlt133.zip
76
77 - CUPS 1.4.8 or later to support printing in Qt. The CUPS libraries are
78 available at:
79
80 http://sourceforge.net/projects/ecsports/files/CUPS/cups-1.4.8-os2-20110831.zip/download
81 http://svn.netlabs.org/ecups/wiki/CupsPort
82
83 - OpenSSL 0.9.8o or later to support OpenSSL in Qt. The OpenSSL libraries are
84 available at:
85
86 http://bauxite.sakura.ne.jp/tmp/os2/openssl-1.0.0a-os2knix-20100706-runtime.zip
87 http://bauxite.sakura.ne.jp/tmp/os2/openssl-1.0.0a-os2knix-20100706-dev.zip
88
89 - MySQL 5.1 or later for the MySQL Qt plugin. The MySQL libraries are
90 available at:
91
92 http://download.smedley.info/mysql-5.1.51-os2-20101001.zip
93
94 Linking against this MySQL build also requires pthread.lib:
95
96 http://web.os2power.com/download/lib/pthread-20100217-os2.zip
97
98 Note that you will also need the above OpenSSL libraries to be able to use
99 this MySQL build. The MySQL Qt plugin itself will require OpenSSL DLLs in
100 your LIBPATH at runtime.
101
102 - PostgersSQL 9.0.1 or later to support the PostgresSQL Qt plugin. The
103 PostgresSQL libraries are available at:
104
105 http://download.smedley.info/postgresql-9.0.1-os2-20101108.zip
106
107 Note that you will also need libc064x.dll for this PostgresSQL build:
108
109 http://download.smedley.info/libc064x.zip
110
111 Note that you will also need the above OpenSSL libraries and pthread.lib to
112 be able to use this PostgresSQL build. The PostgresSQL Qt plugin itself will
113 require OpenSSL DLLs in your LIBPATH at runtime.
114
115
116
117SETTING UP THE ENVIRONMENT
118
119First of all, make sure that your GCC environment is set up and meets the
120specified requirements. To perform a quick check, you may run the following
121command:
122
123 gcc --version && make --version && wl /version
124
125If the setup is done properly, it will print the versions of the key tools
126to the console.
127
128The next step is to set up the Qt environment. If you installed the Qt
129development libraries from the WPI archive (refer to section "USING OFFICIAL
130BINARY QT ARCHIVES" below for more details about existing WPI archives), you
131will only need to run the supplied "QtEnv.cmd" script which will do all the
132setup job for you. The script is located in the directory where you installed
133the developmnent libraries (or in the WPS folder created by the WPI installer).
134Execute this script in a command line session to make it ready for building
135Qt 4 applications (for example, using the "qmake" command follwed by "make"
136for applications based on qmake project files which most of them are). If you
137go that way, you may skip the rest of this section and proceed directly to
138section "USING OFFICIAL BINARY QT ARCHIVES" below.
139
140If you use the full source code ZIP distribution of the Qt library or work
141directly with the Qt SVN tree, you will need to set up the environment yourself
142by performing the following steps:
143
144 - Add the "bin" subdirectory of the directory where you unpacked the Qt4
145 source tree to PATH and BEGINLIBPATH, like this:
146
147 set PATH=D:\Coding\Qt4\bin;%PATH%
148 set BEGINLIBPATH=D:\Coding\Qt4\bin;%BEGINLIBPATH%
149
150 - Add the system DLLs to the GCC library path with the following command:
151
152 set LIBRARY_PATH=C:\OS2\DLL;C:\MPTN\DLL;%LIBRARY_PATH%
153
154 where C: is your boot drive.
155
156 - Make sure CMD.EXE is your command line processor (the generated makefiles
157 will rely on its 'copy', 'if' and other commands). If you have a Unix shell
158 (SH.EXE) in your environment, you may need to force GNU make to use CMD.EXE
159 by executing the followingn command:
160
161 set MAKESHELL=C:\OS2\CMD.EXE
162
163 where C: is your boot drive.
164
165Note that the QTDIR environment variable used in previous Qt versions is not
166used in Qt4 anymore. Therefore, there is no need to set this variable
167explicitly.
168
169There is also no need to set the QMAKESPEC variable explicitly. If it is absent,
170qmake will use the specification stored in the <Qt4_Home>/mkspecs/default
171directory, which on OS/2 always refers to the "os2-g++" specification, the only
172one supported at the present time.
173
174NOTE:
175
176 It is especially important to make sure that there are no traces of any
177 other Watcom or OpenWatcom installation in the environment where you build
178 Qt as it will interfere with the patched OpenWatcom linker we use. This
179 basically means removing all environment variables containing "WATCOM" in
180 their names and also removing references to all those Watcom installations
181 from PATH.
182
183
184
185SETTING UP OPTIONAL TOOLS
186
187The following list describes the steps necessary to set up the optional tools
188that the Qt library depends on:
189
190 - Unzip the CUPS libraries to some directory and set the following environment
191 variables to tell the Qt configure script its location:
192
193 set CUPS_INCLUDEPATH=<path_to_CUPS>\include
194 set CUPS_LIBS=
195
196 Note that you will also need to add the location of cups.dll to BEGINLIBPATH
197 (if it is not already in your LIBPATH) so that Qt applications can find it
198 at runtime:
199
200 set BEGINLIBPATH=<path_to_CUPS>\sbin;%BEGINLIBPATH%
201
202 - Unzip the OpenSSL libraries to some directory and set the following
203 environment variables to tell the Qt configure script its location:
204
205 set OPENSSL_INCLUDEPATH=<path_to_OpenSSL>\include
206 set OPENSSL_LIBS=
207
208 Note that you will also need to add the location of OpenSSL DLLs to
209 BEGINLIBPATH (if they are not already in your LIBPATH) so that Qt
210 applications can find them at runtime:
211
212 set BEGINLIBPATH=<path_to_OpenSSL>\dll;%BEGINLIBPATH%
213
214 - Unzip the MySQL archive to some directory and set the following environment
215 variables to tell the Qt configure script the library location:
216
217 set MYSQL_INCLUDEPATH=<path_to_MySQL>\include'
218 set MYSQL_LIBS=-L<path_to_MySQL>\lib -lmysqlclient_r -L<path_to_OpenSSL>\lib -llibssl -llibcrypto -L<path_to_pthread> -lpthread
219
220 Note that you will also need to place OpenSSL DLLs to BEGINLIBPATH (as
221 described above) because the MySQL plugin links statically to them and Qt
222 will not be able to load it otherwise.
223
224 - Unzip the PostgresSQL archive to some directory and set the following
225 environment variables to tell the Qt configure script the library location:
226
227 set PSQL_INCLUDEPATH=<path_to_PostgresSQL>\include'
228 set PSQL_LIBS=-L<path_to_PostgresSQL>\lib -llibpq -L<path_to_OpenSSL>\lib -llibssl -llibcrypto -L<path_to_pthread> -lpthread
229
230 Note that you will also need to place OpenSSL DLLs to BEGINLIBPATH (as
231 described above) because the PostgresSQL plugin links statically to them and
232 Qt will not be able to load it otherwise.
233
234Note that you need to make sure that OpenSSL DLLs are in BEGINLIBPATH or in
235LIBPATH before Qt attempts to load the SQL plugins for the first time. If it
236fails to load them, it will cache a failure and will not retry even if the
237plugins can be loaded later. To fix that, you need to delete the file
238%HOME%\.config\Trolltech.ini where this cache is stored.
239
240
241
242COMPILING QT
243
244You should skip this section if you installed the Qt development libraries using
245the WPI archive (that already contains compiled release versions of the
246libraries) and proceed directly to the next section.
247
248When the environment is set up as described above, you may build the Qt library.
249There are two distinct ways of doing this: in the source tree or in a separate
250directory of your choice. In the first case, all results of the build process
251(intermediate object files as well as final executables and DLLs) will be placed
252right in the source tree. In the second case, they will be placed in the
253separate directory -- this is called a shadow build.
254
255Shadow builds are the recommended way to go because they keep the source
256directories clean and also allow to use the same source tree for creating any
257number of builds, each with its own build options.
258
259To perform a shadow build, do the following steps:
260
261 1. Create a directory outside the Qt4 source tree.
262
263 2. Go to that directory.
264
265 3. Type:
266
267 <source_tree>\configure.cmd
268
269 where <source_tree> is the directory containing the Qt4 source tree. This
270 will create all necessary configuration files, headers, Makefiles and will
271 also build the qmake tool which is necessary to control the rest of the
272 build process (note that building qmake will take some time).
273
274 4. Once the configure process is finished, type:
275
276 make
277
278 Note that by the default the shadow build will produce the release version of
279 the Qt library. This may be changed by passing command line options to
280 configure.cmd at step 3. For example, the debug build can be requested using
281 the '-debug' option. For a full list of options supported by configure.cmd,
282 type:
283
284 configure.cmd -h
285
286To perform a normal build, you execute 'configure.cmd' followed by 'make' right
287in the directory containing the Qt4 source tree. The default in this case is to
288build both the debug and release versions of the Qt library.
289
290Please keep in mind that in case of the dual debug and release build (where both
291flavors are stored in the same build directory), only DLL and LIB files will be
292separated (because the debug versions of them will have the 'd' suffix in the
293file name). Executable files are normally taken from the release build but,
294since the file names are identical, sometimes they may be overwritten by the
295debug versions (e.g. when you rebuild parts of the library later). For this
296reason, performing dual builds is not recommended.
297
298The Qt library is huge so the build process will take several hours (or even
299several dozen of hours) depending on your hardware and configure options.
300
301Once the library is successfully built, you may try to compile the demos and
302examples by visiting the individual example subdirectories in the source tree
303and typing 'qmake' followed by 'make'.
304
305NOTE:
306
307 This version of Qt for OS/2 includes the Extended system tray plugin for
308 XCenter/eCenter which is necessary to enable Qt support for the special
309 notification area on the XCenter/eCenter panel (called the "system tray")
310 which is used by many long-running applications to display their status.
311 In order to activate this support, you need to install this plugin to your
312 XCenter or eCenter. The plugin is split in two DLLs, the plugin DLL and
313 the API DLL. Both are built as part of the normal build process and can be
314 found in the "src\3rdparty\os2\xsystray\tmp\dist" subdirectory of the Qt
315 build tree. In order to install them, do the following:
316
317 a. Copy "plugin\xsystray.dll" to "<XWorkplace_install>\plugins\xcenter\"
318 (on eComStation, this will be "C:\ecs\system\ewps\plugins\xcenter\"
319 where C: is your boot drive).
320
321 b. Copy "apilib\xsystray.dll" to a directory listed in LIBPATH.
322
323 b. Restart WPS.
324
325 c. Add the "Extended system tray" widget to the XCenter/eCenter panel using
326 the XCenter context menu ('Create new widget').
327
328 Note that if you upgrade from the previous version of the plugin then
329 please unlock xsystray.dll in the target folder using the UNLOCK.EXE
330 utility (which you can find in the LxLite package, for example) before
331 performing step a., otherwise the copy operation will fail.
332
333IMPORTANT NOTE:
334
335 Please take into account that the Qt library you build on your own as
336 described above is NOT intended for wide distribution with Qt applications
337 you port or create. Such private Qt builds help you develop Qt applications
338 (because you can easily debug your program and parts of the Qt framework at
339 the source level) but being widely distributed they will create a so-called
340 DLL hell when a program running on a user computer crashes because it picks
341 up a wrong build of the Qt library. This will happen because even a single
342 change to Qt configuration options may make your build binary incompatible
343 with another build. And even if you convince the user to isolate different
344 DLLs (using LIBPATHSTRICT and BEGINLIBPATH) it will create another major
345 problem: two different Qt applications will load two different copies of Qt
346 into memory which will create an unnecessary overhead by doubling the
347 amount of used system resources.
348
349 In order to nicely solve this problem, netlabs.org provides the official
350 binary builds of the Qt library distributed as WPI archives which are
351 described in the next section.
352
353
354
355USING OFFICIAL BINARY QT ARCHIVES
356
357For your convenience, netlabs.org provides the following binary distributions
358of the Qt library (where X_Y_Z is the Qt version number) distributed as WPI
359archives:
360
361 qt-lib-X_Y_Z.wpi - Runtime DLLs and binaries ("lib" archive)
362 qt-dev-X_Y_Z.wpi - Development libraries, tools and headers ("dev" archive)
363
364These archives are called the official binary archives of the Qt library for
365OS/2. An official binary archive contains the most complete Qt build that
366enables all features of the Qt library and includes all standard Qt plugins
367implemented for the OS/2 platform at the time of the release.
368
369The "lib" archive contains the release versions of DLLs (and may contain a few
370helper binaries) necessary to run applications created using the Qt framework.
371This package is usually installed by end users together with Qt applications
372they want to use.
373
374The "dev" archive contains pre-built release versions of import libraries and
375a complete set of C++ include headers of the Qt framework. This package is used
376by developers and porters of Qt applications to build release versions of the
377applications that are binary compatibie with the Qt runtime provided by the
378official "lib" archive described above. Using the "dev" package requires the
379same environment as described in section "SETTING UP THE ENVIRONMET" above.
380
381Please note again that the "dev" archive is intended to make a final release
382build of the Qt application which you do when you decide to ship a new version
383to the end users -- makes sure that the deployed application will share the same
384Qt runtime with other Qt applications. However, for daily work it is highly
385recommended that you build the debug version of the Qt library yourself (using
386the full source code ZIP archive or directly from SVN) as described in section
387"COMPILING QT").
388
389Besides the "lib" and the "dev" archives, the following official archives exist
390that you may also find useful:
391
392 qt-examples-X_Y_Z.wpi - Demo and example sources ("examples")
393
394The "examples" archive contains the source code and compiled binaries of the
395demo and example applications shipped with Qt. They serve as a good
396demonstration of the Qt library features and it is recommended to look at them.
397The binaries are compiled using the official "lib" archive. Please note that
398some demos and examples may miss from the arcvhice since not all features have
399been implemented in the OS/2 version of Qt yet.
400
401NOTE:
402
403 All .DLL and .EXE files of the official binary build contain a DESCRIPTION
404 string with the vendor field set to "netlabs.org" (by contrast, all custom
405 Qt builds will set the vendor field to what the USER environment variable
406 contains or to "anonymous" if USER is not set). Please note that you must
407 NOT set vendor to "netlabs.org" when creating your own builds of the Qt
408 library because it will make it difficult to identify various distributions
409 and track possible problems with the builds.
410
411
412
413QMAKE CONFIG OPTIONS
414
415The following CONFIG options of the qmake tool have a special meaning in OS/2:
416
417 windows Turns on generation of PM (WINDOWAPI) executables. By
418 default, this option is set for release builds that link
419 to the Qt GUI library.
420
421 console Turns on generation of text mode (WINDOWCOMPAT) executables.
422 By default, this option is set when setting the "windows"
423 option is not appropriate (see above).
424
425In addition, qmake recognizes the following OS/2-specific CONFIG options:
426
427 map Turns on generation of the .map files for executables and
428 DLLs. Note that this option is not set by default.
429
430 sym Turns on generation of the .sym files for executables and
431 DLLs. The option is turned on by default if configure.cmd
432 is able to find the MAPSYM tool in PATH.
433
434 exepack Turns on compression for executables and DLLs. The option is
435 turned on by default for release builds if configure.cmd
436 is able to find a compression tool (LxLite) in PATH.
437
438 highmem Turns on high memory usage for dynamically allocated memory
439 in DLLs and executables. When this option is set, a special
440 compiler flag (-Zhigh-mem for GCC) is used to enable high
441 memory support in the C library (LIBC). This option is set
442 by default so that all Qt DLLs and Qt applications built
443 with qmake are enabled for high memory. Note that high
444 memory support must be enabled for all LIBC-based DLLs
445 linked to the executable as well as for the executable
446 itself: high memory usage will be disabled if one of them
447 votes against it.
448
449 export_all Cause the linker to export all public symbols in a generated
450 DLL. By default (when this option is absent), only the
451 symbols marked with the __declspec(dllexport) compiler
452 directive in the source files.
453
454
455
456PRINTING SUPPORT
457
458Starting with version 4.6.2, Qt for OS/2 supports printing through the CUPS
459framework (provided that this support is enabled when building Qt, see the
460respective sections in the beginning of this document). The OS/2 implementation
461of the CUPS framework is provided by the eCUPS package available at
462http://svn.netlabs.org/ecups/.
463
464The Qt Runtime detects the presence of eCUPS in the system on the fly and talks
465to the CUPS daemon directly, bypassing the standard OS/2 printing subsystem.
466This means that in order to print from Qt applications, you don't need to create
467and configure printer objects using the standard OS/2 system printer setup
468procedure -- you only need to install eCUPS and configure your printers in
469there. Please refer to the eCUPS user manual to obtain the detailed instructions
470on how to configure CUPS printers.
471
472
473
474FILE WATCHING FUNCTION
475
476Qt supports a mechanism of notifying Qt applications about changes to the file
477system, such as creating files or directories, changing their attributes or
478deleting them, even if these changes are performed outside Qt applications. In
479particular, this is used in standard Qt open file dialogs where you can
480instantly observe changes made to the directory contents by third-party
481applications running in the background.
482
483In order to support this functionality on OS/2, Qt relies on the file watching
484mechanism provided by the Presentation Manager. This mechanism is a global
485system resource so that only one process may use it at a time. In a standard
486installation of OS/2 or eComStation this resource is exclusively used by the
487Workplace Shell and is not available to other applications. In order to overcome
488this limitation, a respective function was included to xWorkplace, the famous
489WPS extension (which lives inside the WPS process), starting with version 1.0.8.
490This function allows any number of other processes to receive notifications
491about file system changes and it gets utilized by Qt as well.
492
493If an earlier version of xWorkplace is installed on the user system, or if no
494xWorkplace extension is present at all, Qt uses its own method of detecting
495file system changes which is based on polling the directory contents in regular
496intervals. While this method works well for a small number of watched
497directories with just few files in them, it may significantly slow down the
498system if you work with a directory containing thousands of files.
499
500Therefore, is strongly recommended to install or upgrade to xWorkplace version
5011.0.8 or above to make sure that you will not suffer from the described problem.
502You will also need to make sure that the "Enable folder auto-refresh" check box
503located on the "Folder Views" page in the Workplace Shell settings notebook is
504turned on in order to enable the notification mechanism (note that you may need
505to reboot after changing its state).
506
507
508
509ENVIRONMENT VARIABLES
510
511The Qt library recognizes a number of OS/2-specific environment variables that
512affect its functionality at runtime. The table below lists these variables and
513their meaning:
514
515 QT_PM_NO_DIVE If set, Qt will not use DIVE (direct interface video
516 extensions) for painting widgets even if DIVE (which
517 provides a much faster painting speed than the
518 regular GPI approach) is available. Currently, this
519 is the default setting if the Panorama video driver
520 is detected because its DIVE implementation contains
521 a number of bugs.
522
523 QT_PM_DIVE=<mode> Enables using DIVE for painting widgets. <mode> is
524 one of:
525
526 - FB (direct framebuffer access, which is the
527 fastest mode but causes the curruption of the
528 screen under the software mouse pointer due to
529 the limitation of DIVE). If this mode is not
530 available, BLIT will be used (see below).
531
532 - FBSWM (the same FB but hides the mouse pointer
533 before painting which introduces mouse flicker
534 and may be a bit slower than the raw FB).
535
536 - BLIT (slower than both FB and FBSWM but prevents
537 screen corruption under the mouse pointer and
538 does not produce the mouse pointer flicker
539 effect).
540
541 This variable is ignored if QT_PM_NO_DIVE is set. If
542 neither this nor the QT_PM_NO_DIVE variable is set,
543 the FBSWM mode is used by default (unless the
544 current video driver is Panorama, see above).
545
546 QT_PM_NO_SOUND_SHARE If set, Qt will open the audio device in exclusive
547 only one sound may be played on the computer at a
548 time. This mode is necessary for some sound cards
549 when using the Uniaud audio driver as it is known to
550 have problems with simultaneous playback.
551 Qt builds,
552
553 QT_PM_SOUND_SHARE The opposite to the above. If set, Qt will open the
554 audio device in shared mode. This is the default
555 behavior if neither this nor the
556 QT_PM_NO_SOUND_SHARE variable is set. This variable
557 is ignored if QT_PM_NO_SOUND_SHARE is set.
558
559 QT_PM_NO_REGISTRY If set, Qt will not use the Open32 registry to store
560 application settings with QSettings. Instead, plain
561 text INI files will be used for both NativeFormat
562 and IniFormat. Due to a number of problems in the
563 Open32 registry implementation (that may easily lead
564 to registry corruption), this is the default
565 behavior if neither this nor the QT_PM_REGISTRY
566 variable is set.
567
568 QT_PM_REGISTRY The opposite to the above. If set, Qt will use the
569 Open32 registry to store application settings. This
570 variable is ignored if QT_PM_NO_REGISTRY is set.
571
572 QT_PM_NO_SYSTEM_LOCALE If set, Qt will ignore the regional settings from
573 the system locale object found in the Country
574 Palette located in the System Setup folder and will
575 take them from the internal Qt locale database
576 according to the current country and language
577 settings. Due to the fact that this internal Qt
578 database usually has a better representation of the
579 regional settings, this is the default behavior if
580 neither this nor the QT_PM_SYSTEM_LOCALE variable is
581 set.
582
583 QT_PM_SYSTEM_LOCALE The opposite to the above. If set, Qt will use the
584 regional settings as found in the default locale
585 object set the Country Palette. This variable is
586 ignored if QT_PM_NO_SYSTEM_LOCALE is set.
587
588 LANG This variable can be used to override the default
589 country and language used in the Qt application both
590 for regional settings and for translations. The
591 format of the value is "ll_CC" where <ll> is the
592 two-letter ISO language code and <CC> is the two-
593 letter ISO country code. Note that if this variable
594 is not set, Qt will derive the language and country
595 from the system country code specified in the
596 COUNTRY statement of CONFIG.SYS.
597
598
599
600COMMAND LINE OPTIONS
601
602Any Qt executable recognizes a number of command line options that may change
603the behavior of the Qt application. Here are the most interesting ones:
604
605 -style <name> Changes the default Qt widget style (theme) to a
606 style with the given name. The buiil-in styles which
607 are always available in the official build include:
608 "windows" (currently, the default on OS/2), "motif",
609 "cde", "plastique" and "cleanlooks". Other styles
610 may be also provided by the style plugins.
611
612 -graphicssystem <name> Changes the graphics system used to paint widgets.
613 On OS/2, only two values are supported: "native"
614 (the default one) and "raster". The "native" system
615 uses DIVE (direct interface video extensions) when
616 it is available. If DIVE is not available or if it
617 is disabled (see the QT_PM_NO_DIVE environment
618 variable description for details), the "raster"
619 system will be automatically selected as a fallback.
620
621
622
623CURRENT LIMITATIONS
624
625 1. configure.cmd does not understand all command line options understood by
626 configure scripts on other platforms. If you want to customize your build
627 of the Qt library (which is normally not recommended and not supported),
628 you may try to modify configure.cmd itself.
629
630 2. OS/2 bitmap fonts are not supported. Use TTF or Type1 (PFB) fonts with Qt.
631
632 3. No support for widget masks and trapsparency in top-level widgets and in
633 child widgets with native window IDs (Presentation Manager limitation).
634
635 4. No native PM style, but Qt will use fonts and colors from the current
636 OS/2 theme. Hint: if your default OS/2 font is "WarpSans", install the
637 "Workplace Sans" TTF font from Alex Taylor to get more native look & feel.
638 It is recommended to install version 0.7 of the Normal face and version 0.3
639 of the Bold face which you can find here:
640
641 http://users.socis.ca/~ataylo00/creative/fonts/workplace/
642
643 5. QProcess: when starting PM applications from text-mode applications, the
644 returned PID is a PID of the intermediate cmd.exe process, not the target
645 application.
646
647 6. The following classes are not available due to their rare usage or low
648 importance on the OS/2 platform: QSharedMemory, QSystemSemaphore,
649 QInputContext. On the source level, a number of macros is defined to
650 reflect this, respectively: QT_NO_SYSTEMSEMAPHORE, QT_NO_SHAREDMEMORY,
651 QT_NO_IM. Normally, Qt applications use these macros in the form of
652 "#fndef QT_NO_SOMEFEATURE" to isolate the relevant parts of the code that
653 uses these classes so that the application still builds when the
654 corresponding feature is missing.
655
656 7. No qt3support module. This functionality is rarely necessary in mature
657 real life Qt applications and has low priority. In the code, it is
658 reflected by the absense of the QT3_SUPPORT macro.
659
660 8. The following features are missing (either because of the lack of the
661 required support from the system side or because of the rare usage):
662
663 - IPV6 support in the network module (QT_NO_IPV6 is defined).
664 - phonon module (QT_NO_PHONON is defined).
665 - multimedia module (QT_NO_MULTIMEDIA is defined).
666 - OpenGL module (QT_NO_OPENGL is defined).
667 - declarative module (QT_NO_DECLARATIVE is defined).
668 - tablet support (QT_NO_TABLET is defined).
669
670 See the project roadmap for more information on the current progress and
671 future plans:
672
673 http://svn.netlabs.org/qt4/roadmap
674
675 Feel free to request new features and report bugs using the project bug
676 tracker abaialble at:
677
678 http://svn.netlabs.org/qt4/report
679
680
681
682CREDITS
683
684Dmitriy Kuminov (development)
685Silvan Scherrer (management)
686
687netlabs.org (hosting & support)
688
689Nokia Corporation (original Qt library)
690
691We also want to THANK all individuals and organizations who made the donations
692to this project and helped to make it happen. Please visit
693
694 http://qt.netlabs.org/en/site/index.xml
695
696to get the full list of sponsors and to find information on how you can support
697the project.
698
699
700Qt is a trademark of Nokia Corporation and/or its subsidiary(-ies).
701OS/2 and OS/2 Warp are trademarks of the IBM Corporation and/or its subsidiary(-ies).
702eComStation is a trademark of Serenity Systems International and/or its subsidiary(-ies).
703Etc.
Note: See TracBrowser for help on using the repository browser.