From b80ce12c12625eb9b4d133a8d39c2868db8ec1c7 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Mon, 22 Oct 2018 20:53:49 +0200 Subject: [PATCH] Some refactoring to fix qmake-based pymod builds - Unify structure of Python module sources so the pymod.pri can be used for all modules - switch to tlcore, dbcore and rdbcore + distutils_src wrapper modules --- src/pymod/db/db.pro | 3 ++- .../klayout/{rdb.py => rdb/__init__.py} | 0 .../klayout/{tl.py => tl/__init__.py} | 0 src/pymod/pymod.pri | 22 +++++++++++++++++++ src/pymod/rdb/rdb.pro | 3 ++- src/pymod/tl/tl.pro | 4 +++- 6 files changed, 29 insertions(+), 3 deletions(-) rename src/pymod/distutils_src/klayout/{rdb.py => rdb/__init__.py} (100%) rename src/pymod/distutils_src/klayout/{tl.py => tl/__init__.py} (100%) diff --git a/src/pymod/db/db.pro b/src/pymod/db/db.pro index 345123a4b..e40682d5c 100644 --- a/src/pymod/db/db.pro +++ b/src/pymod/db/db.pro @@ -1,5 +1,6 @@ -TARGET = db +TARGET = dbcore +REALMODULE = db include($$PWD/../pymod.pri) diff --git a/src/pymod/distutils_src/klayout/rdb.py b/src/pymod/distutils_src/klayout/rdb/__init__.py similarity index 100% rename from src/pymod/distutils_src/klayout/rdb.py rename to src/pymod/distutils_src/klayout/rdb/__init__.py diff --git a/src/pymod/distutils_src/klayout/tl.py b/src/pymod/distutils_src/klayout/tl/__init__.py similarity index 100% rename from src/pymod/distutils_src/klayout/tl.py rename to src/pymod/distutils_src/klayout/tl/__init__.py diff --git a/src/pymod/pymod.pri b/src/pymod/pymod.pri index 4715b50ce..f73ef6473 100644 --- a/src/pymod/pymod.pri +++ b/src/pymod/pymod.pri @@ -48,3 +48,25 @@ msvc { lib_target.extra = $(INSTALL_PROGRAM) $$DESTDIR_PYMOD/$${TARGET}$${PYTHONEXTSUFFIX} $(INSTALLROOT)$$PREFIX/pymod/klayout } INSTALLS = lib_target + +!equals(REALMODULE, "") { + + msvc { + QMAKE_POST_LINK += && $(MKDIR) $$shell_path($$DESTDIR_PYMOD/$$REALMODULE) && $(COPY) $$shell_path($$PWD/distutils_src/klayout/$$REALMODULE/*) $$shell_path($$DESTDIR_PYMOD/$$REALMODULE) + } else { + QMAKE_POST_LINK += && $(MKDIR) $$DESTDIR_PYMOD/$$REALMODULE && $(COPY) $$PWD/distutils_src/klayout/$$REALMODULE/* $$DESTDIR_PYMOD/$$REALMODULE + } + + # INSTALLS needs to be inside a lib or app templates. + modsrc_target.path = $$PREFIX/pymod/klayout/$$REALMODULE + # This would be nice: + # init_target.files += $$DESTDIR_PYMOD/$$REALMODULE/* + # but some Qt versions need this explicitly: + msvc { + modsrc_target.extra = $(INSTALL_PROGRAM) $$shell_path($$DESTDIR_PYMOD/$$REALMODULE/*) $$shell_path($(INSTALLROOT)$$PREFIX/pymod/klayout/$$REALMODULE) + } else { + modsrc_target.extra = $(INSTALL_PROGRAM) $$DESTDIR_PYMOD/* $(INSTALLROOT)$$PREFIX/pymod/klayout/$$REALMODULE + } + INSTALLS += modsrc_target + +} diff --git a/src/pymod/rdb/rdb.pro b/src/pymod/rdb/rdb.pro index 5a54aa383..f54b94059 100644 --- a/src/pymod/rdb/rdb.pro +++ b/src/pymod/rdb/rdb.pro @@ -1,5 +1,6 @@ -TARGET = rdb +TARGET = rdbcore +REALMODULE = rdb include($$PWD/../pymod.pri) diff --git a/src/pymod/tl/tl.pro b/src/pymod/tl/tl.pro index b4f161393..b3aa2e0c9 100644 --- a/src/pymod/tl/tl.pro +++ b/src/pymod/tl/tl.pro @@ -1,5 +1,6 @@ -TARGET = tl +TARGET = tlcore +REALMODULE = tl include($$PWD/../pymod.pri) @@ -41,3 +42,4 @@ msvc { init_target.extra = $(INSTALL_PROGRAM) $$DESTDIR_PYMOD/__init__.py $(INSTALLROOT)$$PREFIX/pymod/klayout } INSTALLS += init_target +