Skip to content

Conversation

klayoutmatthias
Copy link
Collaborator

@klayoutmatthias klayoutmatthias commented Oct 19, 2025

The solution implements a merge for auto-loaded library files. Layout files with the same LIBNAME are merged into a single library.

In this implementation, the first of those files (in lexical order) "wins": the database unit is taken from that file. Also further files are added in lexical order. Secondary files do not delete or overwrite cells already present - so again, earlier files have higher priority.

Matthias Koefferlein added 6 commits October 19, 2025 13:36
The fix consists of moving that options into the case-specific
options like DBU, instead of having it in the format-specific,
default writer options. So they can be specified on a per-case
basis and taken from the current layout by default.

Specifically:
* SaveLayoutOptions#gds2_libname is deprecated and replaced
  by SaveLayoutOptions#libname
* -ol (buddy tools) is no longer format specific
* The GDS writer takes SaveLayoutOptions#libname, and
  if empty, substitutes by the current libname. As last
  resort, "LIB" is used, because LIBNAME cannot be an
  empty string.
* The libname got removed from the global writer options UI
* In the "Save As" options dialog, it now is part of the global
  options and initialized with the current layout's libname.
The complication is auto-load: in case one file changed and needs to
get merge, the whole library needs to be updated. Solution is to do
a rescan of the whole folder in case something has changed there.
@klayoutmatthias klayoutmatthias merged commit e955e4e into master Oct 21, 2025
27 checks passed
@ayala-io
Copy link

Thank you so much for this @klayoutmatthias !!
Looking forward to the 0.30.5 release!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature request: collect multiple files into a single library if the library name is identical

2 participants