Changeset 740


Ignore:
Timestamp:
May 14, 2010, 12:40:29 AM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

Updated README and CHANGES for 4.6.2.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/CHANGES.OS2

    r542 r740  
    44
    55CHANGES
     6
     7
     84.6.2 (14-05-2010)
     9
     10  Improvements:
     11
     12  - general: Updated Qt codebase to version 4.6.2 (see the changes-4.6.2 file
     13    for details). Note that this version is binary incompatible with the
     14    previous version (see README.OS2 for more information).
     15
     16  - general: Implemented support for the OS/2 platform in the webkit module. The
     17    webkit module is used in many complex web-based applications such as web
     18    browsers to implement the JavaScript support. Note that the script module
     19    uses the JavaScript implementation from the WebKit project too and it was
     20    also ported to OS/2. The webkit module is always present in the official Qt
     21    build but is disabled by defautl in the custom builds due to big compilation
     22    times.
     23
     24  - general: Use declspec(dllexport) on OS/2 to significantly reduce the number
     25    of exports in generated DLLs. This mode is on by default which reduces the
     26    number of exported symbols by 90-100% in Qt DLLs and makes it not necessary
     27    to split the QtGui DLL in 3 parts in debug mode. The old method which causes
     28    all public symbols to be exported is still available using the "export_all"
     29    CONFIG option (see README.OS2 for details).
     30
     31  - general: Provide the "doc" WPI archive that contains the Qt reference
     32    documentation.
     33
     34  - corelib: Implemented native (XWP-based) file system watcher for OS/2 that
     35    does not eat CPU (which is best noticed in file dialogs showing directories
     36    containing hundreds of files. Requires XWorkplace to be installed.
     37
     38  - corelib: Implemented deriving the defaut locale from the process country
     39    code if LANG is not set and integration with the system locale object
     40    (System Setup -> Country Palette). See the QT_PM_NO_SYSTEM_LOCALE
     41    description in README.OS2 for details.
     42
     43  - gui: Implemented printing support through CUPS. Refer to section "PRINTING
     44    SUPPORT" in README.OS2 for details.
     45
     46  - gui: Implemented painting in widgets using DIVE (direct interface video
     47    extensions). Using DIVE gives a significant graphical performance boost, up
     48    to 100% in BLIT mode and 130% in FBSWM mode, depending on the combination of
     49    the graphics hardware, video driver and the current screen mode. See the
     50    QT_PM_DIVE and QT_PM_NO_DIVE description in README.OS2 for more details.
     51
     52  - gui: Improved the painting speed when not using DIVE. The performance boost
     53    varies from 30% to 200% (e.g. 3 times faster), depending on the combination
     54    of the graphics hardware, video driver and the current screen mode.
     55
     56  - gui: Enabled MMX/SSE support (on by default) to speed up graphical
     57    operations by a couple of percents.
     58
     59  - gui: Enabled accessibility support on OS/2. Note that in order to use the
     60    accessibility functions, a QAccessibleBridge plugin for the corresponding
     61    accessibility device is necessary but none of them exist at the present
     62    time.
     63
     64  - gui: Use native file icons in standard Qt file dialogs.
     65
     66  - assistant: Enabled the help module and made the Qt Assistant tool build on
     67    OS/2. Also enabled help and assistant examples and demos.
     68
     69  - demos: Enabled the browser demo application that makes use of the webkit
     70    module.
     71
     72  - demos: Enabled the qtdemo example that demonstrates all Qt features and
     73    acts as a launcher for other example and demo applications.
     74
     75  - gnumake/os2-g++: Switch the compiler to using the i486 instruciton set for
     76    code generation. This gives around 3% of the performance boost when
     77    painting. As a drawback, the code will no longer run on i386 PCs but it is
     78    assumed that it does not make sense to use Qt4 on these computers.
     79
     80  Fixes:
     81
     82  - general: Fixed: Building Qt applications with the "dev" WPI archive would
     83    fail due to extra spaces in the output object file names.
     84
     85  - corelib: Fixed: Regular files were treated as sequential streams which made
     86    the seek functionality unavailable. This in particular affected Qt Designer
     87    that didn't expect sequential streams when reading .ui files and refused to
     88    load files bigger than 8192 bytes as a result.
     89
     90  - corelib: Make sure the hardware error popup dialogs do not appear when
     91    opening the standard Qt file dialog and selecting a removable drive with no
     92    media inserted even with AUTOFAIL=YES in CONFIG.SYS
     93
     94  - corelib: QProcess: Fixed: Data could not be successfully read or written to
     95    the standard streams of the started process in 'highmem' link mode (which is
     96    on by default since 4.5.1 GA), as well as in normal link mode in some
     97    situations.
     98
     99  - corelib: Fixed QProcess::startDetached() which would not work in 'highmem'
     100    mode.
     101
     102  - corelib: QProcess: Fixed: Having stderr of a started child process
     103    redirected to a pipe (which is the default) would indirectly cause an
     104    impossibility to write anything to its stdin.
     105
     106  - corelib: QProcess: Get rid of the unexpected "DosQueryNPipeSemState returned
     107    87" warning.
     108
     109  - corelib: QFileSystemWatcher: In the fall-back polling watcher, increased the
     110    sleep time between checks of all watched files from 1 second to 3 seconds to
     111    decrease the CPU load on big sets of watched files. Also, replaced the sleep
     112    between checking individual items with the yield call as it doesn't give
     113    significant improvement but just causes more CPU cycles to be spent between
     114    each check.
     115
     116  - corelib: Always return true from QFileInfo::isRoot()/isDir() for paths
     117    referring to root directories of drives with no media and always return
     118    false from QFileInfo::exists() for them. Also, don't lstat() on such paths
     119    since they are definitely not symlinks. This improves the file dialog
     120    appearance and behavior for removable drives.
     121
     122  - corelib: Protect against the frozen system when QSocketNotifier is given an
     123    unsupported socket (for example, an OS/2 file handle). There is still 100%
     124    CPU load in this case, but the application can be at least closed using
     125    normal means.
     126
     127  - corelib: Sockets: Fixed: "has data to read" socket notifications would be
     128    sometimes delivered with a delay depending on the frequency of timers which
     129    could significantly slow down network data transfer.
     130
     131  - corelib: QTemporaryFile: Fixed: Files were opened in O_TEXT mode which
     132    caused unexpected LF <-> CRLF translation. In particular, this broke
     133    QNetworkDiskCache functionality (seen in e.g. demos/browser as missing
     134    images and CSS sheets when read from cache).
     135
     136  - corelib: Fixed: Clear FPU CW in qdtoa() to avoid the floating point
     137    exception in various scenarios [patch by rudi].
     138
     139  - gui: Fixed assertion in QVector::at() at startup.
     140
     141  - gui: Fixed assertion at #1125 in qwidget.cpp (due to an attempt to
     142    re-instantiate QDesktopWidget during application termination).
     143
     144  - gui: Select the correct icon for the drive letter in standard file dialogs
     145    depending on the drive type (floppy, hard disk etc) [patch by rudi].
     146
     147  - gui: Fixed crash in PMMERGE during resize & move of the top level window
     148    with the complex layout (caused by reading outside the bitmap data).
     149
     150  - gui: Fixed: Never add tooltip windows to the top-level window list and only
     151    do so for splash windows if they have the Qt::WindowTitleHint flag set.
     152
     153  - 3rdparty: Added OS/2 support to clucene used by the help module for fulltext
     154    search in help files [based on the patch by rudi].
     155
     156  - configure.cmd: Fixed: QT_BUILD_KEY (and QLibraryInfo::buildKey()) would
     157    always contain "release", even in debug builds, which caused debug builds to
     158    load the release plugins and refuse the debug ones.
     159
     160  - qmake/os2-g++: Use -Wl, to pass the object list response file to the
     161    linker as is instead of the expanded list of objects (this overcomes the
     162    64KB limitation of the total process command line length in OS/2).
     163
    6164
    71654.5.1 GA (05-02-2010)
     
    198356  - corelib: Fixed unnecessary access to removable drives and a long delay and
    199357    noice caused by it when showing a file open dialog in Qt applications.
     358
    200359
    201360Beta 4 (11-11-2009)
     
    271430    interfaces and going to/from fullscreen, and similar).
    272431
     432
    273433Beta 3 (17-10-2009)
    274434
     
    313473  - corelib: QSettings could sometimes distort data when saving it to the
    314474    registry (by replacing some characters with codes 0x80 and above with '?').
     475
    315476
    316477Beta 2 (17-09-2009)
     
    368529    applications such as textedit from the demo folder).
    369530
     531
    370532Beta 1 (29-08-2009)
    371533
  • trunk/README.OS2

    r624 r740  
    1 This is Qt version 4.5.1 GA for OS/2 and eCS.
     1This is Qt version 4.6.2 for OS/2 and eCS.
    22
    33This document contains a brief information on the OS/2 version of the Qt
     
    1212please see the CHANGES.OS2 file included in this distribution.
    1313
     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
    1422
    1523
     
    2129  - One of the OS/2 Warp 4, OS/2 Warp 4.5 or eComStation operating systems.
    2230
    23   - InnoTek GCC compiler version 3.3.5 CSD3 or 4.4.2 (recommended).
    24     You can download the GCC 4.4.2 compiler using the following link:
    25 
    26       http://download.smedley.info/gcc-4.4.2-os2-20091205.zip
    27 
    28     GCC 4.4.2 requires newer binutils available at:
    29 
    30       http://download.smedley.info/binutils-2.19.1-os2-20090427.zip
    31 
    32     Note that in order to use the above version of GCC, you will also need
    33     to install the previous 3.x version (e.g. 3.3.5 CSD3) available at:
    34 
    35       ftp://ftp.netlabs.org/pub/gcc/GCC-3.3.5-csd3.zip
    36 
    37   - Patched OpenWatcom linker which you can download from here:
    38 
    39       ftp://ftp.netlabs.org/pub/gcc/wl-hll-r1.zip
    40 
    41     Note that if you use IBM ILINK (no matter what version), you will
    42     not be able to build the debug version of the library due to
    43     bugs/limitations of ILINK.
    44 
    45   - GNU Make 3.81beta1 or above (not tested) available at:
    46 
    47       http://unix.os2site.com/pub/binary/make/make-3_81beta1-bin-static.zip
     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
     50There is also a set of optional tools which are necessary to enable the selected
     51features of the Qt library. If these tools are missing, the Qt configuration
     52script (discussed in section "COMPILING QT" below) will automatically disable
     53the corresponding feature:
     54
     55  - LxLite 1.3.3 or above (not tested) to enable the compression of Qt DLLs and
     56    application executables (which saves hard disk space and application startup
     57    time). If you use a recent version of eComStation (e.g. 2.0 rc6) you will
     58    already have LxLite installed. Otherwise, you may take it from here:
     59
     60      http://www.os2site.com/sw/util/archiver/lxlt133.zip
    4861
    4962  - eCUPS 1.3.11 or later to support printing in Qt. The eCUPS WPI is available
    50     at:
     63    from:
    5164
    5265      ftp://ftp.netlabs.org/incoming/eCUPS003.wpi   or
     
    5770      http://web.os2power.com/download/lib/pthread-20100217-os2.zip
    5871
    59   - LxLite 1.3.3 or above (not tested) if you want Qt DLLs and application
    60     executables to be compressed (to save hard disk space and load time). If
    61     you have a recent eComStation installation (e.g. 2.0 rc6) you will already
    62     have LxLite installed. Otherwise, you may take it from here:
    63 
    64       http://www.os2site.com/sw/util/archiver/lxlt133.zip
    65 
    6672
    6773
    6874SETTING UP THE ENVIRONMENT
    6975
    70 After unpacking the GCC archive, you will have to set up the compiler
    71 environment by invoking gccenv.cmd from the "bin" subdirectory with the correct
    72 arguments (type gccenv.cmd -? for help). For the OpenWatcom linker, specify
    73 WLINK as the second argument.
    74 
    75 Please note that setting up the GCC 4.x environment requires some additional
    76 steps. Please look through the README files contained within the OS/2
    77 distribution.
    78 
    79 You will also need to perform the following steps:
    80 
    81   - Make sure the selected linker, the make utility and LxLite executable are
    82     in PATH.
     76First of all, make sure that your GCC environment is set up and meets the
     77specified requirements. To perform a quick check, you may run the following
     78command:
     79
     80  gcc --version && make --version && wl /version
     81
     82If the setup is done properly, it will print the versions of the key tools
     83to the console.
     84
     85The next step is to set up the Qt environment. If you installed the Qt
     86development libraries from the WPI archive (refer to section "USING OFFICIAL
     87BINARY QT ARCHIVES" below for more details about existing WPI archives), you
     88will only need to run the supplied "QtEnv.cmd" script which will do all the
     89setup job for you. The script is located in the directory where you installed
     90the developmnent libraries (or in the WPS folder created by the WPI installer).
     91If you use this script, you may skip the rest of this section and proceed to the
     92next one.
     93
     94If you use the full source code ZIP distribution of the Qt library or work
     95directly with the Qt SVN tree, you will need to set up the environment yourself
     96by performing the following steps:
     97
     98  - Add the "bin" subdirectory of the directory where you unpacked the Qt4
     99    source tree to PATH and BEGINLIBPATH, like this:
     100
     101      set PATH=D:\Coding\Qt4\bin;%PATH%
     102      set BEGINLIBPATH=D:\Coding\Qt4\bin;%BEGINLIBPATH%
     103
     104  - Add the system DLLs to the GCC library path with the following command:
     105
     106      set LIBRARY_PATH=C:\OS2\DLL;C:\MPTN\DLL;%LIBRARY_PATH%
     107
     108    where C: is your boot drive.
    83109
    84110  - Make sure CMD.EXE is your command line processor (the generated makefiles
    85111    will rely on its 'copy', 'if' and other commands). If you have a Unix shell
    86112    (SH.EXE) in your environment, you may need to force GNU make to use CMD.EXE
    87     by doing 'set MAKESHELL=C:\OS2\CMD.EXE' where C: is your boot drive.
    88 
    89   - Do set LIBRARY_PATH=C:\OS2\DLL;C:\MPTN\DLL where C: is your boot drive.
    90 
    91   - Make sure that there are no traces of any other Watcom or OpenWatcom
    92     installation in the environment where you build Qt as it will most likely
    93     interfere with the patched OpenWatcom linker we use. This basically means
    94     removing all *WATCOM* environment variables and removing references to those
    95     Watcom installations from PATH.
    96 
    97   - Add the "bin" subdirectory of the directory where you unpacked the Qt4
    98     source tree to PATH and BEGINLIBPATH using its full path, e.g.:
    99 
    100       set PATH=D:\Coding\Qt4\bin;%PATH%
    101       set BEGINLIBPATH=D:\Coding\Qt4\bin;%BEGINLIBPATH%
    102 
    103   - Install the eCUPS WPI archive to enable printing support. If this WPI is
    104     installed, the Qt build system will pick up all necessary libraries
    105     automatically. Otherwise, you will need to use the following environment
    106     variables to tell it where to look for CUPS:
    107 
    108       set CUPS_INCLUDEPATH=X:\Path\to\CUPS\include
    109       set CUPS_LIBS=X:\Path\to\CUPS\lib\libcups.a
    110 
    111     Note that if the eCUPS WPI is not installed and these variables are not set,
    112     printing support will be completely disabled in the resulting Qt build.
    113 
    114     You will also need to make sure that pthread.lib is placed somewhere in your
    115     system library path so that the compiler can find it.
    116 
    117 Note that the QTDIR environment variable used by previous Qt versions is not
    118 used by Qt4 anymore (except two rare cases that do not affect the OS/2 platform
    119 anyway and are probably leftovers after the migration of the qmake feature
    120 specifications to Qt4). Therefore, there is no need to set this variable
    121 explicitly. See also a note below about hard-coded paths to the source tree.
     113    by executing the followingn command:
     114
     115       set MAKESHELL=C:\OS2\CMD.EXE
     116
     117    where C: is your boot drive.
     118
     119Note that the QTDIR environment variable used in previous Qt versions is not
     120used in Qt4 anymore. Therefore, there is no need to set this variable
     121explicitly.
    122122
    123123There is also no need to set the QMAKESPEC variable explicitly. If it is absent,
     
    126126one supported at the present time.
    127127
     128NOTE:
     129
     130    It is especially important to make sure that there are no traces of any
     131    other Watcom or OpenWatcom installation in the environment where you build
     132    Qt as it will interfere with the patched OpenWatcom linker we use. This
     133    basically means removing all environment variables containing "WATCOM" in
     134    their names and also removing references to all those Watcom installations
     135    from PATH.
     136
     137
     138
     139SETTING UP OPTIONAL TOOLS
     140
     141The following list describes the steps necessary to set up the optional tools
     142that the Qt library depends on:
     143
     144  - Install the eCUPS WPI archive to enable printing support. If this WPI is
     145    installed, the Qt build system will pick up all necessary libraries
     146    automatically. Otherwise (e.g. if you use a ZIP or build eCUPS yourself),
     147    you will need to use the following environment variables to tell it where to
     148    look for CUPS:
     149
     150      set CUPS_INCLUDEPATH=X:\Path\to\CUPS\include
     151      set CUPS_LIBS=X:\Path\to\CUPS\lib\libcups.a
     152
     153    You will also need to make sure that pthread.lib is placed somewhere in your
     154    system library path so that the compiler can find it.
     155
    128156
    129157
    130158COMPILING QT
    131159
    132 You should skip this section if you downloaded and installed a binary
    133 distribution of the Qt library for developers (qt-dev-X_Y_Z.wpi) and proceed
    134 directly to section USING OFFICIAL BINARY QT PACKAGES below.
     160You should skip this section if you installed the Qt development libraries using
     161the WPI archive (that already contains compiled release versions of the
     162libraries) and proceed directly to the next section.
    135163
    136164When the environment is set up, go to the directory where you unpacked the
     
    139167  configure.cmd
    140168
    141 This will set up the library (by creating necessary configuration and include
    142 files and a bunch of Makefiles for variuos components) and build the qmake
    143 utility.
     169This will set up the Qt library (by creating necessary configuration and include
     170files and a bunch of Makefiles for variuos components) and build the qmake tool.
    144171
    145172The next step is to type:
     
    147174  make
    148175
    149 This will compile and link the library. Note that by default both the release
     176This will compile and link the Qt library. Note that by default both the release
    150177and the debug version of the library are built (please be patient, it may take
    151178quite some time depending on your hardware). The release and debug libraries can
     
    154181separate directories for object files.
    155182
    156 To save time, you may also build the release and the debug versions of the
    157 library separately by typing 'make release' or 'make debug' accordingly
    158 instead of just 'make'.
    159 
    160 Once the library is successfully built, you may try to compile the demos
    161 and examples by visiting the individual example subdirectories in the source
    162 tree and typing 'qmake' followed by one of 'make', 'make release' or
    163 'make debug' in that subdirectory.
     183To save time, you may build the release and the debug versions of the Qt library
     184separately by typing 'make release' or 'make debug' accordingly instead of just
     185'make'.
     186
     187Once the library is successfully built, you may try to compile the demos and
     188examples by visiting the individual example subdirectories in the source tree
     189and typing 'qmake' followed by one of 'make', 'make release' or 'make debug'
     190in that subdirectory.
    164191
    165192NOTE:
     
    199226     change to Qt configuration options may make your build binary incompatible
    200227     with another build. And even if you convince the user to isolate different
    201      DLLs (using BEGINLIBPATH and alike) it will create another major problem:
    202      two different Qt applications will load two different Qt builds into memory
    203      which will double resource usage; having three different builds will
    204      tripple it and so on -- what a vaste of system resources!
     228     DLLs (using LIBPATHSTRICT and BEGINLIBPATH) it will create another major
     229     problem: two different Qt applications will load two different copies of Qt
     230     into memory which will create an unnecessary overhead by doubling the
     231     amount of used system resources.
    205232
    206233     In order to nicely solve this problem, netlabs.org provides the official
    207      binary builds of the Qt library distributed as WPI packages which are
     234     binary builds of the Qt library distributed as WPI archives which are
    208235     described in the next section.
    209236
    210237
    211238
    212 USING OFFICIAL BINARY QT PACKAGES
     239USING OFFICIAL BINARY QT ARCHIVES
    213240
    214241For your convenience, netlabs.org provides the following binary distributions
    215 of the Qt library (where X_Y_Z is the Qt version number):
    216 
    217   qt-lib-X_Y_Z.wpi   - Runtime DLLs and binaries ("lib" package)
    218   qt-dev-X_Y_Z.wpi   - Development libraries, tools and headers ("dev" package)
    219 
    220 These packages are called the official binary packages of the Qt library for
    221 OS/2. An official binary distribution is the most complete Qt build available
    222 that enables all Qt library features and includes all standard Qt plugins that
    223 were implemented for OS/2.
    224 
    225 The "lib" package contains the release versions of DLLs (and may contain a few
     242of the Qt library (where X_Y_Z is the Qt version number) distributed as WPI
     243archives:
     244
     245  qt-lib-X_Y_Z.wpi   - Runtime DLLs and binaries ("lib" archive)
     246  qt-dev-X_Y_Z.wpi   - Development libraries, tools and headers ("dev" archive)
     247
     248These archives are called the official binary archives of the Qt library for
     249OS/2. An official binary archive contains the most complete Qt build that
     250enables all features of the Qt library and includes all standard Qt plugins
     251implemented for the OS/2 platform at the time of the release.
     252
     253The "lib" archive contains the release versions of DLLs (and may contain a few
    226254helper binaries) necessary to run applications created using the Qt framework.
    227 This package is usually installed by end users together with the Qt applications
     255This package is usually installed by end users together with Qt applications
    228256they want to use.
    229257
    230 The "dev" package contains pre-built release versions of import libraries and
     258The "dev" archive contains pre-built release versions of import libraries and
    231259a complete set of C++ include headers of the Qt framework. This package is used
    232260by developers and porters of Qt applications to build release versions of the
    233 applications for OS/2 that are binary compatibie with the "lib" package
    234 described above.
    235 
    236 Using the "dev" package requires the same environment as the one necessary for
    237 building Qt and described in section SETTING UP THE ENVIRONMET above with the
    238 exception that the "bin" subdirectory of the directory where you installed the
    239 "dev" package needs to be added to PATH instead of the "bin" subdirectory of
    240 the Qt4 source tree.
    241 
    242 The process of compiling Qt applications using the "dev" package is basically
    243 the same as with the hand made-build of Qt. Note, however, that if you are
    244 developing or porting a Qt application, it is still recommended that you build
    245 the debug version of the Qt library yourself and use it in your daily work since
    246 it will give you much more feedback than the stripped down release version
    247 contained in the "dev" package. The "dev" package, as said above, is intended
    248 for making the final release build of the application for subsequent
    249 distribution together with the official "lib" package.
    250 
    251 Besides the "lib" and the "dev" packages, the following official packages exist
     261applications that are binary compatibie with the Qt runtime provided by the
     262official "lib" archive described above. Using the "dev" package requires the
     263same environment as described in section "SETTING UP THE ENVIRONMET" above.
     264
     265Please note again that the "dev" archive is intended to make a final release
     266build of the Qt application which you do when you decide to ship a new version
     267to the end users -- makes sure that the deployed application will share the same
     268Qt runtime with other Qt applications. However, for daily work it is highly
     269recommended that you build the debug version of the Qt library yourself (using
     270the full source code ZIP archive or directly from SVN) as described in section
     271"COMPILING QT").
     272
     273Besides the "lib" and the "dev" archives, the following official archives exist
    252274that you may also find useful:
    253275
    254276  qt-examples-X_Y_Z.wpi  - Demo and example sources ("examples")
    255277
    256 The "examples" package contains the demo and example applications shipped with
    257 Qt along with the source code. They serve as a good demonstration of the Qt
    258 library features and it is recommended to look at them.
    259 
    260 Please note that this package does not contain all Qt demos and examples
    261 available since not all features have been implemented in the OS/2 version of
    262 Qt yet.
     278The "examples" archive contains the source code and compiled binaries of the
     279demo and example applications shipped with Qt. They serve as a good
     280demonstration of the Qt library features and it is recommended to look at them.
     281The binaries are compiled using the official "lib" archive. Please note that
     282some demos and examples may miss from the arcvhice since not all features have
     283been implemented in the OS/2 version of Qt yet.
    263284
    264285NOTE:
     
    269290     contains or to "anonymous" if USER is not set). Please note that you must
    270291     NOT set vendor to "netlabs.org" when creating your own builds of the Qt
    271      library because it will make it really difficult to identify various
    272      distributions and track possible problems with the builds.
     292     library because it will make it difficult to identify various distributions
     293     and track possible problems with the builds.
    273294
    274295
     
    276297QMAKE CONFIG OPTIONS
    277298
    278 The following CONFIG options of the qmake utility have a special meaning in
    279 OS/2:
     299The following CONFIG options of the qmake tool have a special meaning in OS/2:
    280300
    281301  windows           Turns on generation of PM (WINDOWAPI) executables. By
     
    307327                    votes against it.
    308328
     329  export_all        Cause the linker to export all public symbols in a generated
     330                    DLL. By default (when this option is absent), only the
     331                    symbols marked with the __declspec(dllexport) compiler
     332                    directive in the source files.
     333
     334
     335
     336PRINTING SUPPORT
     337
     338Starting with version 4.6.2, Qt for OS/2 supports printing through the CUPS
     339framework (provided that this support is enabled when building Qt, see the
     340respective sections in the beginning of this document). The OS/2 implementation
     341of the CUPS framework is provided by the eCUPS package available at
     342http://svn.netlabs.org/ecups/.
     343
     344The Qt Runtime detects the presence of eCUPS in the system on the fly and talks
     345to the CUPS daemon directly, bypassing the standard OS/2 printing subsystem.
     346This means that in order to print from Qt applications, you don't need to create
     347and configure printer objects using the standard OS/2 system printer setup
     348procedure -- you only need to install eCUPS and configure your printers in
     349there. Please refer to the eCUPS user manual to obtain the detailed instructions
     350on how to configure CUPS printers.
     351
    309352
    310353
     
    314357affect its functionality at runtime. The table below lists these variables and
    315358their meaning:
     359
     360  QT_PM_NO_DIVE             If set, Qt will not use DIVE (direct interface video
     361                            extensions) for painting widgets even if DIVE (which
     362                            provides a much faster painting speed than the
     363                            regular GPI approach) is available. Currently, this
     364                            is the default setting if the Panorama video driver
     365                            is detected because its DIVE implementation contains
     366                            a number of bugs.
     367
     368  QT_PM_DIVE=<mode>         Enables using DIVE for painting widgets. <mode> is
     369                            one of:
     370
     371                              - FB (direct framebuffer access, which is the
     372                                fastest mode but causes the curruption of the
     373                                screen under the software mouse pointer due to
     374                                the limitation of DIVE). If this mode is not
     375                                available, BLIT will be used (see below).
     376
     377                              - FBSWM (the same FB but hides the mouse pointer
     378                                before painting which introduces mouse flicker
     379                                and may be a bit slower than the raw FB).
     380
     381                              - BLIT (slower than both FB and FBSWM but prevents
     382                                screen corruption under the mouse pointer and
     383                                does not produce a mouse pointer flicker
     384                                effect).
     385
     386                            This variable is ignored if QT_PM_NO_DIVE is set. If
     387                            neither this nor the QT_PM_NO_DIVE variable is set,
     388                            the FBSWM mode is used by default (unless the
     389                            current video driver is Panorama, see above).
    316390
    317391  QT_PM_NO_SOUND_SHARE      If set, Qt will open the audio device in exclusive
     
    368442
    369443
    370 PRINTING SUPPORT
    371 
    372 Starting with version 4.6.1, Qt for OS/2 supports printing through the CUPS
    373 framework (provided that this support is enabled when building Qt, see the
    374 respective sections in the beginning of this document). The OS/2 implementation
    375 of the CUPS framework is provided by the eCUPS package available at
    376 http://svn.netlabs.org/ecups/.
    377 
    378 The Qt Runtime detects the presence of eCUPS in the system on the fly and talks
    379 to the CUPS daemon directly, bypassing the standard OS/2 printing subsystem.
    380 This means that in order to print from Qt applications, you don't need to create
    381 and configure printer objects using the standard OS/2 system printer setup
    382 procedure -- you only need to install eCUPS and configure your printers in
    383 there. Please refer to the eCUPS user manual to obtain the detailed instructions
    384 on how to configure CUPS printers.
     444COMMAND LINE OPTIONS
     445
     446Any Qt executable recognizes a number of command line options that may change
     447the behavior of the Qt application. Here are the most interesting ones:
     448
     449  -style <name>             Changes the default Qt widget style (theme) to a
     450                            style with the given name. The buiil-in styles which
     451                            are always available in the official build include:
     452                            "windows" (currently, the default on OS/2), "motif",
     453                            "cde", "plastique" and "cleanlooks". Other styles
     454                            may be also provided by the style plugins.
     455
     456  -graphicssystem <name>    Changes the graphics system used to paint widgets.
     457                            On OS/2, only two values are supported: "native"
     458                            (the default one) and "raster". The "native" system
     459                            uses DIVE (direct interface video extensions) when
     460                            it is available. If DIVE is not available or if it
     461                            is disabled (see the QT_PM_NO_DIVE environment
     462                            variable description for details), the "raster"
     463                            system will be automatically selected as a fallback.
    385464
    386465
     
    388467CURRENT LIMITATIONS
    389468
    390   1. configure.cmd is not yet capable of generating individual Makefiles for
    391      demos and examples, it only generates the main Makefile that builds the
    392      library and the necessary tools. Demos and examples can be compiled by
    393      hand (as described above).
    394 
    395   2. configure.cmd does not understand any command line options. If you want
    396      to customize the build of the Qt library (which is not recommended), you
    397      may try to modify configure.cmd itself.
    398 
    399   3. OS/2 bitmap fonts are not yet supported. Use TTF or Type1 (PFB) fonts with
    400      Qt.
    401 
    402   4. No qt3support module. This functionality is rarely necessary in mature
    403      real life applications and has low priority.
    404 
    405   5. No native PM style, but Qt will use fonts and colors from the current
     469  1. configure.cmd is does not build demos and examples by default (to save
     470     time). They may be built by hand, as described above.
     471
     472  2. configure.cmd does not understand any command line options yet. If you want
     473     to customize your build of the Qt library (which is normally not
     474     recommended and not supported), you may try to modify configure.cmd itself.
     475
     476  3. OS/2 bitmap fonts are not supported. Use TTF or Type1 (PFB) fonts with Qt.
     477
     478  4. No native PM style, but Qt will use fonts and colors from the current
    406479     OS/2 theme. Hint: if your default OS/2 font is "WarpSans", install the
    407480     "Workplace Sans" TTF font from Alex Taylor to get more native look & feel.
    408      It is recommended to install version 0.6 of the Normal face and version 0.2
     481     It is recommended to install version 0.7 of the Normal face and version 0.3
    409482     of the Bold face which you can find here:
    410483
    411484       http://users.socis.ca/~ataylo00/creative/fonts/workplace/
    412485
    413   6. QProcess: when starting PM applications from text-mode applications, the
     486  5. QProcess: when starting PM applications from text-mode applications, the
    414487     returned PID is a PID of the intermediate cmd.exe process, not the target
    415488     application.
    416489
    417   7. The followign classes are not available due to their rare usage or low
     490  6. The following classes are not available due to their rare usage or low
    418491     importance on the OS/2 platform: QSharedMemory, QSystemSemaphore,
    419      QInputContext, QAccessible. The following macros are defined to indicate
    420      this: QT_NO_SYSTEMSEMAPHORE, QT_NO_SHAREDMEMORY,
    421      QT_NO_IM, QT_NO_ACCESSIBILITY. Applications normally use them to guard the
    422      relevant parts of code so they should still build.
    423 
    424   8. No QAssistant. No IPV6 support in the network module (QT_NO_IPV6 is
    425      defined).
     492     QInputContext. On the source level, a number of macros is defined to
     493     reflect this, respectively: QT_NO_SYSTEMSEMAPHORE, QT_NO_SHAREDMEMORY,
     494     QT_NO_IM. Normally, Qt applications use these macros in the form of
     495     "#fndef QT_NO_SOMEFEATURE" to isolate the relevant parts of the code that
     496     uses these classes so that the application still builds when the
     497     corresponding feature is missing.
     498
     499  7. No qt3support module. This functionality is rarely necessary in mature
     500     real life Qt applications and has low priority. In the code, it is
     501     reflected by the absense of the QT3_SUPPORT macro.
     502
     503  8. The following features are missing (either because of the lack of the
     504     required support from the system side or because of the rare usage):
     505
     506     - IPV6 support in the network module (QT_NO_IPV6 is defined).
     507     - OpenSSL support in the network module (QT_NO_OPENSSL is defined).
     508     - phonon module (QT_NO_PHONON is defined).
     509     - multimedia module (QT_NO_MULTIMEDIA is defined).
     510     - OpenGL module (QT_NO_OPENGL is defined).
     511     - declarative module (QT_NO_DECLARATIVE is defined).
     512     - tablet support (QT_NO_TABLET is defined).
    426513
    427514  See the project roadmap for more information on the current progress and
Note: See TracChangeset for help on using the changeset viewer.