diff --git a/src/lay/built_in_macros/pcell_declaration_helper.lym b/src/db/built-in-macros/pcell_declaration_helper.lym
similarity index 100%
rename from src/lay/built_in_macros/pcell_declaration_helper.lym
rename to src/db/built-in-macros/pcell_declaration_helper.lym
diff --git a/src/lay/built_in_pymacros/pcell_declaration_helper.lym b/src/db/built-in-pymacros/pcell_declaration_helper.lym
similarity index 100%
rename from src/lay/built_in_pymacros/pcell_declaration_helper.lym
rename to src/db/built-in-pymacros/pcell_declaration_helper.lym
diff --git a/src/db/db.pro b/src/db/db.pro
index 6141125ae..e61f0db2f 100644
--- a/src/db/db.pro
+++ b/src/db/db.pro
@@ -232,7 +232,7 @@ HEADERS = \
RESOURCES = \
dbResources.qrc
-INCLUDEPATH += ../tl ../gsi
-DEPENDPATH += ../tl ../gsi
+INCLUDEPATH += $$TL_INC $$GSI_INC
+DEPENDPATH += $$TL_INC $$GSI_INC
LIBS += -L$$DESTDIR -lklayout_tl -lklayout_gsi
diff --git a/src/db/dbResources.qrc b/src/db/dbResources.qrc
index 92058dab4..209e6dde3 100644
--- a/src/db/dbResources.qrc
+++ b/src/db/dbResources.qrc
@@ -2,4 +2,10 @@
std_font.gds
+
+ built-in-macros/pcell_declaration_helper.lym
+
+
+ built-in-pymacros/pcell_declaration_helper.lym
+
diff --git a/src/drc/drc.pro b/src/drc/drc.pro
new file mode 100644
index 000000000..6bac2a4b8
--- /dev/null
+++ b/src/drc/drc.pro
@@ -0,0 +1,6 @@
+
+TEMPLATE = subdirs
+SUBDIRS = drc unit_tests
+
+unit_tests.depends += drc
+
diff --git a/src/lay/built_in_macros/drc.lym b/src/drc/drc/built-in-macros/drc.lym
similarity index 100%
rename from src/lay/built_in_macros/drc.lym
rename to src/drc/drc/built-in-macros/drc.lym
diff --git a/src/lay/built_in_macros/drc_interpreters.lym b/src/drc/drc/built-in-macros/drc_interpreters.lym
similarity index 100%
rename from src/lay/built_in_macros/drc_interpreters.lym
rename to src/drc/drc/built-in-macros/drc_interpreters.lym
diff --git a/src/drc/drc/drc.pro b/src/drc/drc/drc.pro
new file mode 100644
index 000000000..a203a36ff
--- /dev/null
+++ b/src/drc/drc/drc.pro
@@ -0,0 +1,23 @@
+
+DESTDIR = $$OUT_PWD/../..
+TARGET = klayout_drc
+
+include($$PWD/../../klayout.pri)
+include($$PWD/../../lib.pri)
+
+DEFINES += MAKE_DRC_LIBRARY
+
+SOURCES = \
+ drcForceLink.cc \
+
+HEADERS = \
+ drcCommon.h \
+ drcForceLink.h \
+
+RESOURCES = \
+ drcResources.qrc
+
+INCLUDEPATH += $$TL_INC $$DB_INC $$GSI_INC $$LYM_INC $$RDB_INC
+DEPENDPATH += $$TL_INC $$DB_INC $$GSI_INC $$LYM_INC $$RDB_INC
+LIBS += -L$$DESTDIR -lklayout_tl -lklayout_db -lklayout_gsi -lklayout_lym -lklayout_rdb
+
diff --git a/src/drc/drc/drcCommon.h b/src/drc/drc/drcCommon.h
new file mode 100644
index 000000000..f93d63d98
--- /dev/null
+++ b/src/drc/drc/drcCommon.h
@@ -0,0 +1,48 @@
+
+/*
+
+ KLayout Layout Viewer
+ Copyright (C) 2006-2017 Matthias Koefferlein
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+*/
+
+
+#if !defined(HDR_drcCommon_h)
+# define HDR_drcCommon_h
+
+# if defined _WIN32 || defined __CYGWIN__
+
+# ifdef MAKE_DRC_LIBRARY
+# define DRC_PUBLIC __declspec(dllexport)
+# else
+# define DRC_PUBLIC __declspec(dllimport)
+# endif
+# define DRC_LOCAL
+
+# else
+
+# if __GNUC__ >= 4
+# define DRC_PUBLIC __attribute__ ((visibility ("default")))
+# define DRC_LOCAL __attribute__ ((visibility ("hidden")))
+# else
+# define DRC_PUBLIC
+# define DRC_LOCAL
+# endif
+
+# endif
+
+#endif
diff --git a/src/drc/drc/drcForceLink.cc b/src/drc/drc/drcForceLink.cc
new file mode 100644
index 000000000..6475ac538
--- /dev/null
+++ b/src/drc/drc/drcForceLink.cc
@@ -0,0 +1,34 @@
+
+/*
+
+ KLayout Layout Viewer
+ Copyright (C) 2006-2017 Matthias Koefferlein
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+*/
+
+
+#include "drcForceLink.h"
+#include "rdbForceLink.h"
+
+namespace drc
+{
+ int _force_link_f ()
+ {
+ return 0;
+ }
+}
+
diff --git a/src/drc/drc/drcForceLink.h b/src/drc/drc/drcForceLink.h
new file mode 100644
index 000000000..82743935a
--- /dev/null
+++ b/src/drc/drc/drcForceLink.h
@@ -0,0 +1,40 @@
+
+/*
+
+ KLayout Layout Viewer
+ Copyright (C) 2006-2017 Matthias Koefferlein
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+*/
+
+
+#ifndef HDR_drcForceLink
+#define HDR_drcForceLink
+
+#include "drcCommon.h"
+
+/**
+ * @file Include this function to force linking of the drc module
+ */
+
+namespace drc
+{
+ DRC_PUBLIC int _force_link_f ();
+ static int _force_link_target = _force_link_f ();
+}
+
+#endif
+
diff --git a/src/drc/drc/drcResources.qrc b/src/drc/drc/drcResources.qrc
new file mode 100644
index 000000000..d9ae49029
--- /dev/null
+++ b/src/drc/drc/drcResources.qrc
@@ -0,0 +1,6 @@
+
+
+ built-in-macros/drc.lym
+ built-in-macros/drc_interpreters.lym
+
+
diff --git a/src/common/*.cc b/src/drc/unit_tests/drcBasicTests.cc
similarity index 89%
rename from src/common/*.cc
rename to src/drc/unit_tests/drcBasicTests.cc
index 4b67bbf67..90a213cc1 100644
--- a/src/common/*.cc
+++ b/src/drc/unit_tests/drcBasicTests.cc
@@ -20,3 +20,11 @@
*/
+#include "utHead.h"
+#include "rdbForceLink.h"
+
+TEST(1)
+{
+ // @@@ TODO: add tests ..
+}
+
diff --git a/src/drc/unit_tests/unit_tests.pro b/src/drc/unit_tests/unit_tests.pro
new file mode 100644
index 000000000..a508e756f
--- /dev/null
+++ b/src/drc/unit_tests/unit_tests.pro
@@ -0,0 +1,16 @@
+
+DESTDIR_UT = $$OUT_PWD/../..
+DESTDIR = $$OUT_PWD/..
+
+TARGET = drc_tests
+
+include($$PWD/../../klayout.pri)
+include($$PWD/../../lib_ut.pri)
+
+SOURCES = \
+ drcBasicTests.cc \
+
+INCLUDEPATH += ../drc ../../rdb ../../db ../../tl ../../gsi ../../lym ../../ut
+DEPENDPATH += ../drc ../../rdb ../../db ../../tl ../../gsi ../../lym ../../ut
+
+LIBS += -L$$DESTDIR_UT -lklayout_drc -lklayout_rdb -lklayout_db -lklayout_tl -lklayout_gsi -lklayout_lym -lklayout_ut
diff --git a/src/klayout.pri b/src/klayout.pri
index 8a33efbf6..2a0864f24 100644
--- a/src/klayout.pri
+++ b/src/klayout.pri
@@ -1,17 +1,44 @@
-equals(HAVE_QTBINDINGS, "1") {
- DEFINES += \
- HAVE_QTBINDINGS
-}
+ANT_INC = $$PWD/ant
+BD_INC = $$PWD/buddies/src/bd
+DB_INC = $$PWD/db
+DRC_INC = $$PWD/drc/drc
+EDT_INC = $$PWD/edt
+EXT_INC = $$PWD/ext
+GSI_INC = $$PWD/gsi
+GSIQT_INC = $$PWD/gsiqt
+IMG_INC = $$PWD/img
+LIB_INC = $$PWD/lib
+LAY_INC = $$PWD/lay
+LAYBASIC_INC = $$PWD/laybasic
+LYM_INC = $$PWD/lym
+RDB_INC = $$PWD/rdb
+TL_INC = $$PWD/tl
+UT_INC = $$PWD/ut
+VERSION_INC = $$PWD/version
-equals(HAVE_64BIT_COORD, "1") {
- DEFINES += \
- HAVE_64BIT_COORD
+equals(HAVE_RUBY, "1") {
+ RBA_INC = $$PWD/rba
+} else {
+ RBA_INC = $$PWD/rbastub
}
equals(HAVE_PYTHON, "1") {
- DEFINES += \
- HAVE_PYTHON
+ PYA_INC = $$PWD/pya
+} else {
+ PYA_INC = $$PWD/pyastub
+}
+
+equals(HAVE_QTBINDINGS, "1") {
+ DEFINES += HAVE_QTBINDINGS
+}
+
+equals(HAVE_64BIT_COORD, "1") {
+ DEFINES += HAVE_64BIT_COORD
+}
+
+equals(HAVE_PYTHON, "1") {
+ DEFINES += HAVE_PYTHON
}
equals(HAVE_RUBY, "1") {
diff --git a/src/klayout.pro b/src/klayout.pro
index f16715bc8..21f15c9a6 100644
--- a/src/klayout.pro
+++ b/src/klayout.pro
@@ -21,6 +21,7 @@ SUBDIRS = \
ut \
plugins \
buddies \
+ drc \
equals(HAVE_RUBY, "1") {
SUBDIRS += rba
@@ -45,6 +46,7 @@ laybasic.depends += db rdb
ant.depends += laybasic
img.depends += laybasic
edt.depends += laybasic
+drc.depends += db rdb lym
lym.depends += tl gsi
equals(HAVE_RUBY, "1") {
diff --git a/src/klayout_main/klayout.cc b/src/klayout_main/klayout.cc
index e5b3aabce..fcd5d2c8e 100644
--- a/src/klayout_main/klayout.cc
+++ b/src/klayout_main/klayout.cc
@@ -40,6 +40,7 @@
#include "libForceLink.h"
#include "antForceLink.h"
#include "imgForceLink.h"
+#include "drcForceLink.h"
#include
#include
diff --git a/src/lay/built_in_macros/index.txt b/src/lay/built_in_macros/index.txt
deleted file mode 100644
index 38c9db1d6..000000000
--- a/src/lay/built_in_macros/index.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-# Build-in macros list
-pcell_declaration_helper.lym
-qobject_helper.lym
-drc.lym
-drc_interpreters.lym
-
diff --git a/src/lay/built_in_pymacros/index.txt b/src/lay/built_in_pymacros/index.txt
deleted file mode 100644
index ecb750f77..000000000
--- a/src/lay/built_in_pymacros/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-# Build-in macros list
-pcell_declaration_helper.lym
-qt_helper.lym
-
diff --git a/src/lay/layBuildInMacros.qrc b/src/lay/layBuildInMacros.qrc
index 9a8680e5a..653461cbd 100644
--- a/src/lay/layBuildInMacros.qrc
+++ b/src/lay/layBuildInMacros.qrc
@@ -1,16 +1,8 @@
-
- built_in_macros/index.txt
- built_in_macros/pcell_declaration_helper.lym
built_in_macros/qobject_helper.lym
- built_in_macros/drc.lym
- built_in_macros/drc_interpreters.lym
-
- built_in_pymacros/index.txt
- built_in_pymacros/pcell_declaration_helper.lym
built_in_pymacros/qt_helper.lym
diff --git a/src/lym/lymMacro.cc b/src/lym/lymMacro.cc
index 48aded5a2..f83c5755e 100644
--- a/src/lym/lymMacro.cc
+++ b/src/lym/lymMacro.cc
@@ -1265,6 +1265,21 @@ void MacroCollection::rescan ()
}
}
+namespace {
+
+ /**
+ * @brief A QResource variant that allows access to the children
+ */
+ class ResourceWithChildren
+ : public QResource
+ {
+ public:
+ ResourceWithChildren (const QString &path) : QResource (path) { }
+ using QResource::children;
+ };
+
+}
+
void MacroCollection::scan (const std::string &path)
{
if (tl::verbosity () >= 20) {
@@ -1273,78 +1288,62 @@ void MacroCollection::scan (const std::string &path)
if (! path.empty () && path[0] == ':') {
- // look for an index file
- QResource res (tl::to_qstring (path + "/index.txt"));
- QByteArray data;
- if (res.isCompressed ()) {
- data = qUncompress ((const unsigned char *)res.data (), (int)res.size ());
- } else {
- data = QByteArray ((const char *)res.data (), (int)res.size ());
- }
+ ResourceWithChildren res (tl::to_qstring (path));
+ QStringList children = res.children ();
- // Read index file
- std::vector lines = tl::split (std::string (data.constData (), data.size ()), "\n");
- std::string description_prefix;
- for (std::vector::const_iterator l = lines.begin (); l != lines.end (); ++l) {
+ for (QStringList::const_iterator c = children.begin (); c != children.end (); ++c) {
- std::string ll = tl::trim (*l);
- if (! ll.empty () && ll [0] != '#') {
+ std::string url = path + "/" + tl::to_string (*c);
+ QResource res (tl::to_qstring (url));
+ if (res.size () > 0) {
- std::string url = path + "/" + ll;
- QResource res (tl::to_qstring (url));
- if (res.size () > 0) {
+ QByteArray data;
+ if (res.isCompressed ()) {
+ data = qUncompress ((const unsigned char *)res.data (), (int)res.size ());
+ } else {
+ data = QByteArray ((const char *)res.data (), (int)res.size ());
+ }
- QByteArray data;
- if (res.isCompressed ()) {
- data = qUncompress ((const unsigned char *)res.data (), (int)res.size ());
- } else {
- data = QByteArray ((const char *)res.data (), (int)res.size ());
- }
+ try {
- try {
+ Macro::Format format = Macro::NoFormat;
+ Macro::Interpreter interpreter = Macro::None;
+ std::string dsl_name;
+ bool autorun = false;
- Macro::Format format = Macro::NoFormat;
- Macro::Interpreter interpreter = Macro::None;
- std::string dsl_name;
- bool autorun = false;
+ if (Macro::format_from_suffix (tl::to_string (*c), interpreter, dsl_name, autorun, format)) {
- if (Macro::format_from_suffix (ll, interpreter, dsl_name, autorun, format)) {
+ std::string n = tl::to_string (QFileInfo (*c).baseName ());
- std::string n = tl::to_string (QFileInfo (tl::to_qstring (ll)).baseName ());
-
- iterator mm = m_macros.find (n);
- bool found = false;
- while (mm != m_macros.end () && mm->first == n && ! found) {
- if ((interpreter == Macro::None || mm->second->interpreter () == interpreter) &&
- (dsl_name.empty () || mm->second->dsl_interpreter () == dsl_name) &&
- mm->second->format () == format) {
- found = true;
- }
- ++mm;
+ iterator mm = m_macros.find (n);
+ bool found = false;
+ while (mm != m_macros.end () && mm->first == n && ! found) {
+ if ((interpreter == Macro::None || mm->second->interpreter () == interpreter) &&
+ (dsl_name.empty () || mm->second->dsl_interpreter () == dsl_name) &&
+ mm->second->format () == format) {
+ found = true;
}
- if (! found) {
- Macro *m = m_macros.insert (std::make_pair (n, new Macro ()))->second;
- m->set_parent (this);
- m->set_interpreter (interpreter);
- m->set_autorun_default (autorun);
- m->set_autorun (autorun);
- m->set_dsl_interpreter (dsl_name);
- m->set_format (format);
- m->set_name (n);
- m->load_from_string (std::string (data.constData (), data.size ()), url);
- m->set_readonly (m_readonly);
- m->reset_modified ();
- m->set_is_file ();
- }
-
+ ++mm;
+ }
+ if (! found) {
+ Macro *m = m_macros.insert (std::make_pair (n, new Macro ()))->second;
+ m->set_parent (this);
+ m->set_interpreter (interpreter);
+ m->set_autorun_default (autorun);
+ m->set_autorun (autorun);
+ m->set_dsl_interpreter (dsl_name);
+ m->set_format (format);
+ m->set_name (n);
+ m->load_from_string (std::string (data.constData (), data.size ()), url);
+ m->set_readonly (m_readonly);
+ m->reset_modified ();
+ m->set_is_file ();
}
- } catch (tl::Exception &ex) {
- tl::error << "Reading " << url << ": " << ex.msg ();
}
- } else {
- tl::error << "Resource " << url << " not found";
+ } catch (tl::Exception &ex) {
+ tl::error << "Reading " << url << ": " << ex.msg ();
}
}
diff --git a/src/rdb/rdb.pro b/src/rdb/rdb.pro
index b07690753..0e843ba65 100644
--- a/src/rdb/rdb.pro
+++ b/src/rdb/rdb.pro
@@ -14,6 +14,7 @@ RESOURCES = \
SOURCES = \
gsiDeclRdb.cc \
rdb.cc \
+ rdbForceLink.cc \
rdbFile.cc \
rdbReader.cc \
rdbRVEReader.cc \
@@ -22,6 +23,7 @@ SOURCES = \
HEADERS = \
rdb.h \
+ rdbForceLink.h \
rdbReader.h \
rdbTiledRdbOutputReceiver.h \
rdbUtils.h \
diff --git a/src/common/*.h b/src/rdb/rdbForceLink.cc
similarity index 89%
rename from src/common/*.h
rename to src/rdb/rdbForceLink.cc
index 4b67bbf67..501f94c56 100644
--- a/src/common/*.h
+++ b/src/rdb/rdbForceLink.cc
@@ -20,3 +20,14 @@
*/
+
+#include "rdbForceLink.h"
+
+namespace rdb
+{
+ int _force_link_f ()
+ {
+ return 0;
+ }
+}
+
diff --git a/src/rdb/rdbForceLink.h b/src/rdb/rdbForceLink.h
new file mode 100644
index 000000000..18f284a31
--- /dev/null
+++ b/src/rdb/rdbForceLink.h
@@ -0,0 +1,40 @@
+
+/*
+
+ KLayout Layout Viewer
+ Copyright (C) 2006-2017 Matthias Koefferlein
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+*/
+
+
+#ifndef HDR_rdbForceLink
+#define HDR_rdbForceLink
+
+#include "rdbCommon.h"
+
+/**
+ * @file Include this function to force linking of the rdb module
+ */
+
+namespace rdb
+{
+ RDB_PUBLIC int _force_link_f ();
+ static int _force_link_target = _force_link_f ();
+}
+
+#endif
+
diff --git a/src/with_all_libs.pri b/src/with_all_libs.pri
index 410333a8b..c1d1940c7 100644
--- a/src/with_all_libs.pri
+++ b/src/with_all_libs.pri
@@ -1,8 +1,8 @@
-INCLUDEPATH += $$PYTHONINCLUDE $$PWD/tl $$PWD/gsi $$PWD/db $$PWD/rdb $$PWD/lym $$PWD/laybasic $$PWD/lay $$PWD/ant $$PWD/img $$PWD/edt $$PWD/ext $$PWD/lib $$PWD/common $$PWD/ut $$PWD/version
-DEPENDPATH += $$PYTHONINCLUDE $$PWD/tl $$PWD/gsi $$PWD/db $$PWD/rdb $$PWD/lym $$PWD/laybasic $$PWD/lay $$PWD/ant $$PWD/img $$PWD/edt $$PWD/ext $$PWD/lib $$PWD/commo $$PWD/ut $$PWD/version
+INCLUDEPATH += $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC $$LYM_INC $$LAYBASIC_INC $$LAY_INC $$ANT_INC $$IMG_INC $$EDT_INC $$DRC_INC $$EXT_INC $$LIB_INC $$UT_INC $$RBA_INC $$PYA_INC $$VERSION_INC
+DEPENDPATH += $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC $$LYM_INC $$LAYBASIC_INC $$LAY_INC $$ANT_INC $$IMG_INC $$EDT_INC $$DRC_INC $$EXT_INC $$LIB_INC $$UT_INC $$RBA_INC $$PYA_INC $$VERSION_INC
-LIBS += $$PYTHONLIBFILE $$RUBYLIBFILE -L$$DESTDIR -lklayout_tl -lklayout_gsi -lklayout_db -lklayout_rdb -lklayout_lym -lklayout_laybasic -lklayout_lay -lklayout_ant -lklayout_img -lklayout_edt -lklayout_ext -lklayout_lib -lklayout_ut
+LIBS += $$PYTHONLIBFILE $$RUBYLIBFILE -L$$DESTDIR -lklayout_tl -lklayout_gsi -lklayout_db -lklayout_rdb -lklayout_lym -lklayout_laybasic -lklayout_lay -lklayout_ant -lklayout_img -lklayout_edt -lklayout_drc -lklayout_ext -lklayout_lib -lklayout_ut
# Note: this accounts for UI-generated headers placed into the output folders in
# shadow builds:
@@ -16,21 +16,13 @@ equals(HAVE_QTBINDINGS, "1") {
}
equals(HAVE_RUBY, "1") {
- INCLUDEPATH += $$PWD/rba
- DEPENDPATH += $$PWD/rba
LIBS += -lklayout_rba
} else {
- INCLUDEPATH += $$PWD/rbastub
- DEPENDPATH += $$PWD/rbastub
LIBS += -lklayout_rbastub
}
equals(HAVE_PYTHON, "1") {
- INCLUDEPATH += $$PWD/pya
- DEPENDPATH += $$PWD/pya
LIBS += -lklayout_pya
} else {
- INCLUDEPATH += $$PWD/pyastub
- DEPENDPATH += $$PWD/pyastub
LIBS += -lklayout_pyastub
}