Commit Graph

45 Commits

Author SHA1 Message Date
Matthias Koefferlein 86a90571e6 WIP: DXF keep layer names option, refactoring, added tests, UI, XML serialization. 2018-04-16 19:47:12 +02:00
Matthias Koefferlein 085a2ee2b1 WIP: keep DXF and CIF layer names, DXF contour accuracy. 2018-04-16 00:55:57 +02: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
Kazunari Sekigawa 1fe6280970 Buddy tools have to be built as ordinary command line tools; not as bundles (*.app)
This refs #10.
2017-12-26 06:58:03 +09:00
Matthias Koefferlein b44f5ab156 Fixed #43 (crash when using Qt specific command line options) 2017-12-21 22:56:41 +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 be80682853 Fixed #29 (permissive mode for OASIS writer on odd-width paths)
This commit adds "permissive" mode to OASIS writer to allow
odd-width paths (which are rounded).

This commit contains in addition:
 * The check for odd-width paths is done post-scaling, so
   reducing the DBU is a workaround
 * Unit tests for the RBA binding of SaveLayoutOptions
 * Documentation updates on some SaveLayoutOptions attributes
 * Using Ruby predicate notation for cif_blank_separator?
   (note question mark) for consistency. The old notation is
   still there but deprecated
 * --permissive option on buddies command lines where applicable
2017-11-29 22:34:41 +01:00
Matthias Koefferlein 8378e59b41 Fixed a build issue with Ruby libraries. 2017-11-16 22:51:54 +01:00
Matthias Koefferlein 20a6c5ec6b Another fix for Ruby/Python-less builds. 2017-11-07 20:48:15 +01:00
Matthias Koefferlein 8cb36cdfe7 Added one more buddy tool: strmrun
strmrun allows running a Python or Ruby script
in the context of KLayout's API. A subset of the
API will be available - all classes connected with
the user interface are not available. Neither is
the DRC engine.
2017-11-05 18:03:17 +01: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 000917d2c9 Refactoring: moved unit tests to libraries for some libs (ut modularization) 2017-08-26 22:44:31 +02:00
Matthias Koefferlein a0d864f3b6 Fixed build. 2017-08-23 11:14:29 +02:00
Matthias Koefferlein 9633a1b9af Buddies: progress with -d >= 10 and XOR: enhanced report 2017-08-22 21:38:56 +02:00
Matthias Koefferlein f53a3be51a strmxor enhancements: summary, bug fixes. 2017-08-21 23:41:52 +02:00
Matthias Koefferlein 5130950f14 Fixed .pro files for bd unit tests. 2017-08-21 23:39:38 +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 edae27b9aa Added missing dependency and compatibility with -pedantic 2017-08-21 01:01:47 +02:00
Matthias Koefferlein 9585922659 Some enhancements in the command line parser
* Cancel exceptions are handled properly and -h does
  no longer produce an error
* Help text is more readable now
* Some typos fixed
2017-08-21 00:20:18 +02:00
Matthias Koefferlein 1baddd3632 strmxor: fixes and basic functionality tests. 2017-08-21 00:00:27 +02:00
Matthias Koefferlein 4d06a7617c Some ut enhancements
* CaptureChannel becomes a main feature and is easier to
  use now.
* EXPECT_EQ/NE no longer does a double evaluation of the
  arguments on fail (to print the result that wasn't
  matching)
2017-08-20 23:57:03 +02:00
Matthias Koefferlein 6e3bf68da9 Added more tests for strmcmp, first version of better strmxor 2017-08-20 01:14:49 +02:00
Matthias Koefferlein 2a6c2ee735 Tests and bug fixes for strmcmp and strmclip
* ut framework now has a text file compare
* Added tests for strm2txt, strmclip and strmcmp
* Fixed the output of the PrintingDiffReceiver in some cases
* Cell renaming does not give a difference in smart cell mapping mode
2017-08-19 23:28:03 +02:00
Matthias Koefferlein 5a846ae9c7 Basic tests for the converters 2017-08-19 20:27:12 +02:00
Matthias Koefferlein 44472f84b7 Basic tests for the converters 2017-08-19 19:57:47 +02:00
Matthias Koefferlein c7edc9e7a0 More basic bd tests (reader) and some bug fixes 2017-08-19 19:25:21 +02:00
Matthias Koefferlein a9b64d1e57 Refactoring and first bd tests
The goal of the refactoring is to support unit tests
for the db library.

For this, a distributed unit test concept has been
introduced (later to be extended to other libs).
Unit tests are shared objects called ".ut" and are
automatically loaded by the ut runner. The bd library
now has two folders - one for sources and one for the
unit tests. The sources are separated into lib and apps.

First unit tests for the writer options have been
provided.
2017-08-19 18:47:52 +02:00
Matthias Koefferlein b296cdd915 Heavy refactoring of buddy sources
* To reduce the redundancy
* To enable testing of the bd library including the apps

The apps are entirely configured through their names.
Their .pro files are identical and the app implementation
is inside the bd lib (partially generic too). Hence the
apps can be tested by bd library unit tests.
2017-08-19 10:23:19 +02:00
Matthias Koefferlein 681c255e50 Equipped strmclip with the new command line parser
Plus: added repeated arguments (in addition to the array
arguments that have been there before).
2017-08-19 00:36:45 +02:00
Matthias Koefferlein e54cadef99 Functionality if strmcmp is complete now 2017-08-18 22:54:23 +02:00
Matthias Koefferlein b4a1143588 Some refactoring of buddy bodies and first strmcmp implementation
* Missing: functionaliy for strmcmp
2017-08-18 09:46:28 +02:00
Matthias Koefferlein bd5c7decce Fixed a doc typo 2017-08-17 23:36:49 +02:00
Matthias Koefferlein c571ae732d Add converter tools have reader options now. 2017-08-17 23:35:05 +02:00
Matthias Koefferlein aa3caeca07 More options for buddies
* Generic writer options
* Generic reader options
* All converter tools are equipped with writer options
* strm2gds is equipped with reader options already
2017-08-17 23:31:05 +02:00
Matthias Koefferlein dede3afe1b Enhancements on command line parser
* Advanced options
* Groups
* strm2gds uses the new features already.
2017-08-17 09:26:15 +02:00
Matthias Koefferlein 09033d834e Refactoring and enhancements of the cmd system
* Includes version and license info now
* New "bd" library for common features of the
  buddies scripts.
2017-08-16 23:48:59 +02:00
Matthias Koefferlein 9f8144a254 Refined documentation of command line parser and buddies. 2017-08-15 00:13:57 +02:00
Matthias Koefferlein 492351519e Added more options for strm2cif and strm2gds. 2017-08-14 22:42:12 +02:00
Matthias Koefferlein 7280a56ee9 Added command line parser to tl. 2017-08-13 23:05:40 +02:00
Matthias Koefferlein 5cfdc2fa64 Formal command line parser for buddies, first step. 2017-08-12 23:08:18 +02:00
Matthias Koefferlein 4dea5b40f2 Added buddies to build. 2017-08-09 22:37:58 +02:00