This commit also contains some important fixes:
* Option -wd wasn't working
* Relative layout file paths in session files are resolved as relative
to the session file. On writing, absolute paths are used, so this
change only affects session files build intentionally.
Plus:
* Program version is available in unit tests too
* Fixed a typo in the RBA::Expression documentation
The patch is based on splitting the application class into
two incarnations - one for GUI capability and one without.
GSI binding happens dynamically based on the mode chosen.
We can do so because the application class is the first one
to become active and can decide the mode by itself.
In general, the application class carries too much functionality
and splitting is a task for the future. Right now, the functionality
is inside the base class and the derived classes basically only
configure the base class.
A better design would be to drop the QApplication inheritance in
the RBA::Application class hierarchy and provide access to the
QApplication object through qapp_gui getter.
* Moved tlSystemPaths into lay namespace where it belongs
* Doc updates
* New command line switch -y and -yd for unattended installation
* Download URL's can be relative to salt.mine URL
* KLAYOUT_HOME environment variable to make ~/.klayout configurable
* Better error messages on XML parser on file/stream read errors
(specifically from http/https)
Refactoring:
* more consistent behavior of output redirection
* ut library was refactored and split into several
.h/.cc
* concept of long runners introduced
* long runners can be skipped with "test_is_long_runner()"
* same for editable/non-editable mode tests
* Generic writer options
* Generic reader options
* All converter tools are equipped with writer options
* strm2gds is equipped with reader options already
* Generalized Polygon to edge interaction into db::Polygon tools
* Added tests for this
* Equipped region to edges interaction with this feature to
reduce random test fails
* Multiple (reproducible) seeds for Region tests
* More tolerances for TilingProcessor tests
* ICplxTrans is_unity? implementation is using proper
double tolerances now
* File watcher tests wait longer to allow for slow
response on loaded Windows build server
- Allow full 32bit for box width and height
and some other properties (for border case
testing - not recommended)
- Reduce arrays with step distance 0 to
dimension 1 - avoids overlapping instances
or shapes.
Bug: sometimes, if the files had different database units, the XOR
tool was showing differences while there are none.
This was due to a sloppy computation of the tile boxes. The solution
is to properly round the tile size to a common database unit and
to use a common effective size for both inputs.