Commit Graph

33 Commits

Author SHA1 Message Date
Matthias Koefferlein 2f46f0d1c6 Fixed some issues found with Coverity. 2018-02-21 00:21:19 +01:00
Matthias Koefferlein 8003d1bb47 Merge branch 'master' into macos-build-on-master 2018-01-02 23:37:45 +01:00
Matthias Koefferlein ffb56335fb Updated copyright note to 2018. 2018-01-01 21:08:06 +01:00
klayoutmatthias 7e0f1522ac Windows build compatibility
The issue is with "dllexport": previously, dllexport was present on
exposed templates tool (= visibility(default) for gcc/clang). This
ensured MacOS compatibility since then the typeinfo is corretly
shared and dynamic_cast/typeid works.

For Windows, the "dllexport" equivalent requires the template
instantiations to be declared "external" which is a coding nightmare.

The solution is to provide separate macros for real (non-specialized,
not explicitly instantiated) templates (.._PUBLIC_TEMPLATE) which
is defined as empty for Windows and "visiblity(default)" for gcc/clang.
2018-01-01 18:55:11 +01:00
matthias 063811edc4 Solved the clang/MacOS startup failure and menu issue
1.) Startup issue:

This is solved by making sure templates with virtual functions
are made visible in the DSO. This way, dynamic_cast is possible
across DSO's.

Scary: clang/MacOS wants the forward declarations be declared visible as well.

2.) Menu issue:

The best solution is to have only one QMenuBar. The navigator
now gets a synthetic menu bar composed of QToolButtons.
2017-12-30 15:22:16 -08:00
Matthias Koefferlein 53d2557ba5 First steps towards fix. Needs review.
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.
2017-12-25 00:51:06 +01:00
Matthias Koefferlein 2cd5d68db2 Build enhancements
Qt <4.7 is partially supported now:
 * Without Qt bindings (build.sh -without-qtbinding ...)
 * With reduced functionality (i.e. package manager won't work)

Build compatibility with STL-less Qt installations
2017-12-05 22:26:30 +01:00
Matthias Koefferlein 4f9857ace9 Bugfix: 'merged' mode wasn't working in PCB import. 2017-10-08 23:07:10 +02:00
Matthias Koefferlein 580ed1ec6d Avoid a segfault that happens on first use of LEF/DEF reader. 2017-09-29 22:14:35 +02:00
Matthias Koefferlein 8b1e76ed0b Bugfix: XOR was segfaulting when the window was closed during run
This fix consists of multiple parts:
 * Actual closing of the window is deferred until excecution is over
 * weak pointers in XOR for view so the view can be destroyed with
   out not knowing
 * The "keep data" message is not shown when the application window
   was closed.
2017-09-23 13:17:26 +02:00
Matthias Koefferlein 9f8b81eaf4 Don't decorate 'break' exceptions in Gerber reader. 2017-09-23 13:16:30 +02:00
Matthias Koefferlein 5a1a89b665 Reworked the XOR progress UI - now it's rows instead of a single column. 2017-09-21 23:52:24 +02:00
Matthias Koefferlein cadb9c555a A few bug fixed in the XOR progress reporter. 2017-09-21 22:07:58 +02:00
Matthias Koefferlein 62b59fe71c Reworked the XOR progress UI for better performance. 2017-09-20 22:52:52 +02:00
Matthias Koefferlein 083e1d75e9 Finished defailed XOR progress. 2017-09-20 21:39:24 +02:00
Matthias Koefferlein 3e37c0bf7b First version of XOR progress visualization. 2017-09-20 01:22:25 +02:00
Matthias Koefferlein ff4e99f2a2 Gerber X2: metadata and project initialization from the latter (at least in free mode) 2017-09-10 00:24:59 +02:00
Matthias Koefferlein 98b7d0e9a1 Small bugfix and tests added to Gerber reader. 2017-09-09 10:27:09 +02:00
Matthias Koefferlein 17327ce19c Gerber X2 support basically implemented. Needs testing. 2017-09-09 02:07:09 +02:00
Matthias Koefferlein febd20f606 Updated LEF/DEF testdata. 2017-09-05 21:58:11 +02:00
Matthias Koefferlein 0ecc8ee093 First version of DEF reader with GROUPS/REGIONS - needs feedback. 2017-09-04 23:05:46 +02:00
Matthias Koefferlein cfe8375be0 Unit test refactoring
Move ut framework to tl, so there are less complex
dependencies.
2017-09-03 01:54:11 +02:00
Matthias Koefferlein 992307a915 More on build: proper library versioning, rc file used through RC_FILE, deployment on Linux. 2017-08-27 17:44:41 +02:00
Matthias Koefferlein 79811994f6 Refactoring: moved unit tests to libraries for some other libs 2017-08-26 23:43:40 +02:00
Matthias Koefferlein 000917d2c9 Refactoring: moved unit tests to libraries for some libs (ut modularization) 2017-08-26 22:44:31 +02:00
Matthias Koefferlein 55e797ffaf Provide proper INSTALL targets for .pro files
Plus: reduce compiler warnings
2017-08-21 02:33:45 +02:00
Matthias Koefferlein eb9363eca1 Bugfixes for XOR tool
1.) Wrong scaling of output when using output to layout A or B and
    different DBU's were present
2.) A threading issue when delivering outputs to layout A or B resulting
    in random crashes and weired behavior. This happened when threading
    was enabled.
2017-07-18 23:31:09 +02:00
Matthias Koefferlein 45b774a3af Fixed a XOR issue
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.
2017-07-18 22:33:54 +02:00
Matthias Koefferlein 50df9e5b21 Provide Ruby/Python binding for technology definitions
The respective new classes are RBA::Technology and
RBA::TechnologyComponent. This interface will replace
the current way of doing tech management from scripts
by using the "technology-data" configuration parameter.
2017-04-01 00:45:55 +02:00
Matthias Koefferlein 47aa38421a Unique library named to avoid name conflicts
The libraries generated are called libklayout_x now
(instead of libx). This avoid name conflicts with
"libdb.so" on some systems for example.
2017-03-31 00:23:12 +02:00
Matthias Koefferlein a24e6d94a9 Fixed #9 (DEF reader issue: "Invalid orientation specification") 2017-03-29 23:37:06 +02:00
Matthias Koefferlein a1e8aaf6b8 Updated copyright note to 2017. 2017-02-12 15:28:14 +01:00
Matthias Koefferlein 1b98f9b0f9 Initialized repository with current sources. 2017-02-12 13:21:08 +01:00