Commit Graph

852 Commits

Author SHA1 Message Date
Matthias Koefferlein 58239650aa Fixed pymod initialization for Python 2
Python 2 is a bit more picky with respect to
the correct name of the module. If passing "db"
to a module called dbcore, it will exit with
a SystemError.
2018-10-22 23:28:55 +02:00
Matthias Koefferlein a25db86046 Fixed pymod.pri for Linux builds. 2018-10-22 21:25:53 +02:00
Matthias Koefferlein b80ce12c12 Some refactoring to fix qmake-based pymod builds
- Unify structure of Python module sources so the pymod.pri can be used for all modules
- switch to tlcore, dbcore and rdbcore + distutils_src wrapper modules
2018-10-22 20:53:49 +02:00
Matthias Köfferlein 1150ffbbb1
Merge branch 'pymod' into pymod-splitting 2018-10-22 18:15:02 +02:00
Matthias Koefferlein d67a50bd1d Fixed #176 by introducing a separate bitmap for text drawing optimization. 2018-10-20 09:53:25 +02:00
Matthias Koefferlein dc9267d61e WIP: updated solution
* Reverted first solution partially because it lead to drawing errors.
* Redraw thread will fire workers only for layers that really need
  to be drawn
2018-10-20 09:53:07 +02:00
Matthias Koefferlein 46116f4828 Basic performance improvement in the bitmap to image area
Empty bitmaps are skipped now
2018-10-20 09:52:35 +02:00
Thomas Ferreira de Lima c1dbb023ae
fixing editable install 'python setup.py develop' 2018-10-19 19:09:20 -04:00
Thomas Ferreira de Lima c3ab951c8a
passing python unit tests 2018-10-19 19:02:38 -04:00
Thomas Ferreira de Lima 87a49007ff
Fixing distutils_src folder structure due to setuptools bug
Also: adding PCellDeclarationHelper to klayout.db
2018-10-19 18:53:37 -04:00
Thomas Ferreira de Lima d3fa4465f6
Renaming core modules to klayout.dbcore, klayout.rdbcore and klayout.tlcore 2018-10-19 17:55:56 -04:00
Matthias Koefferlein 8ab4868d76 Fixed build on Windows (tl::InputPipe::wait was missing) 2018-10-16 23:00:28 +02:00
Matthias Koefferlein 90c03140b3 Fixed #185 for pymod branch 2018-10-14 23:42:10 +02:00
Matthias Koefferlein dd9d46da38 Activated stream unit tests. 2018-10-14 23:34:25 +02:00
Matthias Koefferlein 904a12c11e Added a way to get the exit code from InputPipe
The method is to call wait() on the pipe object
which returns the exit code.

Some tests have been added for this.
2018-10-09 23:40:28 +02:00
Matthias Koefferlein 7df9242efb Merge remote-tracking branch 'origin/pymod' into pymod 2018-10-09 23:00:30 +02:00
Matthias Koefferlein 222b98fd70 Some fixes for the testsuite
With these fixes, unit tests pass with MacOS
(set DYLD_LIBRARY_PATH!)

1.) MacOS takes popen vs. pclose seriously
By using fopen we basically spoil the system and other popen
won't work.

2.) For system integrity, MacOS does not propagate DYLD_LIBRARY_PATH
to child processes such as sh. This has to be done explictly.

3.) Search the klayout binary in the right path (klayout.app/...)

4.) Reset KLAYOUT_HOME for less intervention by installed macros
2018-10-09 13:57:26 -07:00
Matthias Koefferlein 19a3f19378 Removed some misleading comments. 2018-10-09 21:24:23 +02:00
Matthias Koefferlein 70778e9414 Now also fixed the bd unit tests - there are also independent from the streamer plugins now. 2018-10-09 01:12:58 +02:00
Matthias Koefferlein f0661ba0b3 Some wrong header includes fixed. 2018-10-09 00:35:03 +02:00
Matthias Koefferlein a7846ead9f Add-on to previous commit: fixes some Python issues
The comments for LoadLayoutOptions#layer_map, #cif_layer_map
and #dxf_layer_map have been updated to reflect the new status
of these properties (which have been methods). The tests
are updated accordingly (layer_map() -> layer_map).
2018-10-09 00:18:45 +02:00
Matthias Koefferlein db981b0f7d A huge patch to make Windows build functional again after recent updates
The issue was: for MacOS/clang, the virtual format-specific
option structs had to be embedded in one compile unit (for RTTI).
In Windows this will lead to link errors since the DLL is not
reachable at build time for the generic reader/writer configuration in
the buddy tools.

The solution is to use GSI methods (provided for scripting) to
set the reader/writer options in a generic way that does not
require linking against the plugin DLLs.
2018-10-08 23:31:22 +02:00
Matthias Koefferlein 4ffcaba5d1 Important bug fix for MacOS
Unlike Linux, RTTI does not work in MacOS/clang when the classes
originate from different compile units. I think that Linux's C++
runtime not only checks for identical vtable, but alternatively
for same name. On MacOS, dynamic_cast will fail instead. This fix
solves this issue by placing the important steam format option
specializations into a single specific shared object (the DB plugin).
2018-10-04 14:10:22 -07:00
Matthias Koefferlein f7c4aa0348 (Partial) attempt to fix the plugin detection issue on MacOS 2018-10-02 17:36:30 -07:00
Matthias Koefferlein d03d4bec1d Fixed build after merge. 2018-09-26 21:27:31 +02:00
Matthias Koefferlein 6795de1dbb Merge remote-tracking branch 'remotes/origin/master' into pymod
Provides fixes for issue #166 and #172.
2018-09-26 21:15:08 +02:00
Matthias Koefferlein d4adb194e3 Fixed #172 (DEF reader does not pull vias from LEF) 2018-09-26 20:49:04 +02:00
Matthias Koefferlein 9ccc0a86b1 Fixed a merge issue (build was broken) 2018-09-17 22:34:01 +02:00
Matthias Koefferlein 3b59d97195 Ported Ruby initialization issue bugfix from pymod to master.
On OpenSuSE 15 (gcc 7.3.1, Ruby 2.5.0) crashes have been
observed on starting the application. The main reason seems
to be the attempt to disable $0 redirection in Ruby.

This is not required for Ruby >= 1.9, so this is better dropped.
2018-09-17 21:43:38 +02:00
Matthias Köfferlein 11d5819c77 Fix of a small bug found by MSVC iterator assertions 2018-09-17 21:31:52 +02:00
Matthias Köfferlein cb15132029 Fixed an issue with destruction callbacks in the QApplication destructor - in this case the interpreter may be nulled already and callbacks must not happen into Ruby/Python. 2018-09-17 21:30:54 +02:00
Matthias Köfferlein 8c4099b77d Bugfix in the annotation area
The annotation ID was taken from an object already deleted - on MSVC 
this becomes an issue.
2018-09-17 21:25:28 +02:00
Matthias Köfferlein 88e0bd77a2 Fix in Image object handling
Id was taken from an object destructed already.
2018-09-17 21:24:47 +02:00
Matthias Koefferlein 6efdb3a9e1 Added testcase for #166. 2018-09-17 01:51:23 +02:00
Matthias Koefferlein f72fda7bae Added test case for #166. 2018-09-17 01:48:31 +02:00
Matthias Koefferlein e9de4252fb Fixed #166 (internal error when writing GDS file)
This fix consists of computing the intersection
points in the split procedure with higher resolution
to avoid topology changes due to snapping on the cut
line.
2018-09-17 01:29:31 +02:00
Matthias Köfferlein fe26785203 Fixed install target for MSVC - copy needs to use Windows paths. 2018-09-13 22:31:45 +02:00
Matthias Koefferlein 06c0b8f6e1 And back to Windows ... re-inserting the ruby_sysinit workaround. 2018-09-12 00:06:48 +02:00
Matthias Koefferlein 0a2574cd3a Now it breaks the ruby 1.8.x tests ... grrr 2018-09-11 23:19:52 +02:00
Matthias Koefferlein 121e1301b0 Hopefully this fixes the crashes on OpenSuSE 15. 2018-09-11 22:35:57 +02:00
Matthias Koefferlein 6536e9a8dc Modified command line prep for Ruby integration - maybe that fixes the OpenSuSE 15 crashes. 2018-09-11 08:08:18 +02:00
Matthias Köfferlein 6a12a6a4cd Normalize CRLF for OASIS reader test's golden data on Windows. 2018-09-11 07:35:01 +02:00
Matthias Köfferlein 1c68b5472c Enabled ruby_sysinit again after MSVC2017 build crashed without this. 2018-09-11 00:07:33 +02:00
Matthias Koefferlein dcfe2977a8 Merge branch 'pymod-fix' of https://github.com/klayoutmatthias/klayout into pymod-fix 2018-09-10 21:37:14 +00:00
Matthias Koefferlein f35b522256 Fixed a segfault on Ruby initialization found on OpenSuSE 15 with Ruby 2.5.0 and gcc 7.3.1 in release mode 2018-09-10 21:36:27 +00:00
Matthias Köfferlein 99a71b771d Fixed link issue in net tracer plugin both for Linux and Windows (hopefully) 2018-09-10 22:53:49 +02:00
Matthias Koefferlein c46bed0785 Some update to fix build issues (this time, Linux)
- All platforms support native hash values for long long etc.
  with the TR1 containers
- Use non-static, function symbols to force linking.
- Debian package is picky about dates so give them some
  in Changelog.
2018-09-10 21:56:20 +02:00
Matthias Koefferlein ad03533a7b OASIS tests made robust against hash implementation
The text writer was made "normalizing": it will introduce
a certain element order (string sorting). This way, OASIS
files can be compared against golden data without
changes in the order due to different implementation of
hash containers.
2018-09-10 01:16:49 +02:00
Matthias Koefferlein 84072aa23e Fixed a few things that got damaged in Linux build while doing MSVC compatibility. 2018-09-09 22:43:22 +02:00
Matthias Köfferlein e69ed872a7 Fixed a static initialization race. 2018-09-09 18:31:05 +02:00