From 156b9137ab0bc9ad705d1a688e03bc9129a5ac51 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Mon, 7 Mar 2022 21:53:55 +0100 Subject: [PATCH 1/3] Build patch to allow building without qxmlpattern with -without-qt-xml --- src/gsiqt/qt5/QtCore/gsiDeclQtCoreAdd.cc | 1 - src/klayout.pri | 10 ++++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/gsiqt/qt5/QtCore/gsiDeclQtCoreAdd.cc b/src/gsiqt/qt5/QtCore/gsiDeclQtCoreAdd.cc index c534efbc4..6954d7252 100644 --- a/src/gsiqt/qt5/QtCore/gsiDeclQtCoreAdd.cc +++ b/src/gsiqt/qt5/QtCore/gsiDeclQtCoreAdd.cc @@ -28,7 +28,6 @@ #include #include #include -#include // NOTE: this is required because HitTestAccuracy is defined here, but goes into Qt // namespace which is in QtCore ... this introduces a dependency of QtCore GSI lib on QtGui. diff --git a/src/klayout.pri b/src/klayout.pri index 5dcc9b30f..f3fcea4ef 100644 --- a/src/klayout.pri +++ b/src/klayout.pri @@ -186,10 +186,6 @@ equals(HAVE_QT, "0") { QT += widgets gui printsupport - lessThan(QT_MAJOR_VERSION, 6) { - QT += xmlpatterns - } - equals(HAVE_QTBINDINGS, "1") { !equals(HAVE_QT_DESIGNER, "0") { # designer isn't needed by the base application @@ -207,6 +203,12 @@ equals(HAVE_QT, "0") { # uitools isn't needed by the base application QT += uitools } + !equals(HAVE_QT_XML, "0") { + lessThan(QT_MAJOR_VERSION, 6) { + QT += xmlpatterns + } + } + } } else { From 8b0dd38e97ede6f53d566905607b534e9fdb1964 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Mon, 7 Mar 2022 22:07:51 +0100 Subject: [PATCH 2/3] Fixed use of HTML in netlist browser --- src/laybasic/laybasic/layNetlistBrowserPage.cc | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/laybasic/laybasic/layNetlistBrowserPage.cc b/src/laybasic/laybasic/layNetlistBrowserPage.cc index 17db0cfb9..f69b537d7 100644 --- a/src/laybasic/laybasic/layNetlistBrowserPage.cc +++ b/src/laybasic/laybasic/layNetlistBrowserPage.cc @@ -168,22 +168,16 @@ NetlistBrowserPage::NetlistBrowserPage (QWidget * /*parent*/) for (int i = 0; i < 4; ++i) { delegate = new lay::HTMLItemDelegate (this); delegate->set_text_margin (2); - delegate->set_plain_text (true); - /* currently, HTML is not used: delegate->set_anchors_clickable (true); connect (delegate, SIGNAL (anchor_clicked (const QString &)), this, SLOT (anchor_clicked (const QString &))); - */ directory_tree->setItemDelegateForColumn (i, delegate); } for (int i = 0; i < 2; ++i) { delegate = new lay::HTMLItemDelegate (this); delegate->set_text_margin (2); - delegate->set_plain_text (true); - /* currently, HTML is not used: delegate->set_anchors_clickable (true); connect (delegate, SIGNAL (anchor_clicked (const QString &)), this, SLOT (anchor_clicked (const QString &))); - */ hierarchy_tree->setItemDelegateForColumn (i, delegate); } From b9a9422905debb635c01403cd7167e6c73832c48 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Mon, 7 Mar 2022 22:18:09 +0100 Subject: [PATCH 3/3] LEF/DEF paths for buddies are relative to cwd --- .../streamers/lefdef/db_plugin/dbLEFDEFPlugin.cc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/plugins/streamers/lefdef/db_plugin/dbLEFDEFPlugin.cc b/src/plugins/streamers/lefdef/db_plugin/dbLEFDEFPlugin.cc index d93afec52..1cce6e831 100644 --- a/src/plugins/streamers/lefdef/db_plugin/dbLEFDEFPlugin.cc +++ b/src/plugins/streamers/lefdef/db_plugin/dbLEFDEFPlugin.cc @@ -116,7 +116,12 @@ LEFDEFReader::read_lefdef (db::Layout &layout, const db::LoadLayoutOptions &opti effective_options = *lefdef_options; } - db::LEFDEFReaderState state (&effective_options, layout, effective_options.paths_relative_to_cwd () ? std::string () : tl::dirname (m_stream.absolute_path ())); + std::string base_path; + if (! effective_options.paths_relative_to_cwd ()) { + base_path = tl::dirname (m_stream.absolute_path ()); + } + + db::LEFDEFReaderState state (&effective_options, layout, base_path); layout.dbu (effective_options.dbu ()); @@ -131,7 +136,7 @@ LEFDEFReader::read_lefdef (db::Layout &layout, const db::LoadLayoutOptions &opti for (std::vector::const_iterator l = effective_options.begin_lef_files (); l != effective_options.end_lef_files (); ++l) { - std::string lp = correct_path (*l, layout, tl::dirname (m_stream.absolute_path ())); + std::string lp = correct_path (*l, layout, base_path); tl::InputStream lef_stream (lp); tl::log << tl::to_string (tr ("Reading")) << " " << lp; @@ -152,7 +157,7 @@ LEFDEFReader::read_lefdef (db::Layout &layout, const db::LoadLayoutOptions &opti for (std::vector::const_iterator l = effective_options.begin_lef_files (); l != effective_options.end_lef_files (); ++l) { - std::string lp = correct_path (*l, layout, tl::dirname (m_stream.absolute_path ())); + std::string lp = correct_path (*l, layout, base_path); tl::SelfTimer timer (tl::verbosity () >= 21, tl::to_string (tr ("Reading LEF file: ")) + lp); @@ -205,7 +210,7 @@ LEFDEFReader::read_lefdef (db::Layout &layout, const db::LoadLayoutOptions &opti tl::shared_collection macro_layout_object_holder; for (std::vector::const_iterator l = effective_options.begin_macro_layout_files (); l != effective_options.end_macro_layout_files (); ++l) { - std::string lp = correct_path (*l, layout, tl::dirname (m_stream.absolute_path ())); + std::string lp = correct_path (*l, layout, base_path); tl::SelfTimer timer (tl::verbosity () >= 21, tl::to_string (tr ("Reading LEF macro layout file: ")) + lp);