Merge pull request #563 from KLayout/issue-487

Fix #487 (True text object support for DRC/LVS)
This commit is contained in:
Matthias Köfferlein
2020-05-26 22:44:53 +02:00
committed by GitHub
300 changed files with 10218 additions and 1101 deletions
@@ -818,7 +818,7 @@ CIFReader::read_cell (db::Layout &layout, db::Cell &cell, double sf, int level)
void
CIFReader::do_read (db::Layout &layout)
{
tl::SelfTimer timer (tl::verbosity () >= 21, "File read");
tl::SelfTimer timer (tl::verbosity () >= 21, tl::to_string (tr ("File read: ")) + m_stream.source ());
try {
@@ -379,7 +379,7 @@ DXFReader::open_layer (db::Layout &layout, const std::string &n)
void
DXFReader::do_read (db::Layout &layout, db::cell_index_type top)
{
tl::SelfTimer timer (tl::verbosity () >= 21, "File read");
tl::SelfTimer timer (tl::verbosity () >= 21, tl::to_string (tr ("File read: ")) + m_stream.source ());
// create the zero layer - this is not mapped to GDS but can be specified in the layer mapping as
// a layer named "0".
@@ -301,6 +301,12 @@ GDS2ReaderText::get_ushort ()
return x;
}
std::string
GDS2ReaderText::path () const
{
return sStream.source ();
}
void
GDS2ReaderText::error (const std::string &msg)
{
@@ -110,6 +110,7 @@ private:
tl::Extractor reader;
std::vector<GDS2XY> xyData;
virtual std::string path () const;
const char *get_string ();
void get_string (tl::string &s) const;
int get_int ();
@@ -256,6 +256,12 @@ GDS2Reader::progress_checkpoint ()
m_progress.set (m_stream.pos ());
}
std::string
GDS2Reader::path () const
{
return m_stream.source ();
}
void
GDS2Reader::error (const std::string &msg)
{
@@ -124,6 +124,7 @@ private:
virtual void error (const std::string &txt);
virtual void warn (const std::string &txt);
virtual std::string path () const;
virtual const char *get_string ();
virtual void get_string (tl::string &s) const;
virtual int get_int ();
@@ -233,7 +233,7 @@ eq_y (const GDS2XY &a, const GDS2XY &b)
void
GDS2ReaderBase::do_read (db::Layout &layout)
{
tl::SelfTimer timer (tl::verbosity () >= 21, "File read");
tl::SelfTimer timer (tl::verbosity () >= 21, tl::to_string (tr ("File read: ")) + path ());
m_cellname = "";
m_libname = "";
@@ -128,6 +128,7 @@ private:
virtual void error (const std::string &txt) = 0;
virtual void warn (const std::string &txt) = 0;
virtual std::string path () const = 0;
virtual const char *get_string () = 0;
virtual void get_string (tl::string &s) const = 0;
virtual int get_int () = 0;
@@ -303,7 +303,7 @@ MAGReader::do_read (db::Layout &layout, db::cell_index_type cell_index, tl::Text
void
MAGReader::do_read_part (db::Layout &layout, db::cell_index_type cell_index, tl::TextInputStream &stream)
{
tl::SelfTimer timer (tl::verbosity () >= 31, "File read");
tl::SelfTimer timer (tl::verbosity () >= 31, tl::to_string (tr ("File read: ")) + m_stream.source ());
if (tl::verbosity () >= 30) {
tl::log << "Reading layout file: " << stream.source ();
@@ -689,7 +689,7 @@ static const char magic_bytes[] = { "%SEMI-OASIS\015\012" };
void
OASISReader::do_read (db::Layout &layout)
{
tl::SelfTimer timer (tl::verbosity () >= 21, "File read");
tl::SelfTimer timer (tl::verbosity () >= 21, tl::to_string (tr ("File read: ")) + m_stream.source ());
unsigned char r;
char *mb;