From f108c1b77cad247850900d4587c1b0016af05999 Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Thu, 25 Jan 2018 11:40:44 +0100 Subject: Improve logging of all relevant build folders that are written to This change improves the output of which directories are used when a build is done, as well as adds output for the correct final installation destination (deduced automatically by setuptools, or specified by --prefix option). The change aims to reduce the usual confusion of figuring out which files are written where. Change-Id: I038be7bc657a7fa68e242c38076ffc4ba0548a0b Reviewed-by: Friedemann Kleint --- setup.py | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) (limited to 'setup.py') diff --git a/setup.py b/setup.py index 767a59ce5..e8332e1a2 100644 --- a/setup.py +++ b/setup.py @@ -164,6 +164,8 @@ old_submodules = { ], } +pyside_package_dir_name = "pyside_package" + try: import setuptools except ImportError: @@ -270,6 +272,11 @@ OPTION_RPATH_VALUES = option_value("rpath") OPTION_QT_CONF_PREFIX = option_value("qt-conf-prefix") OPTION_ICULIB = option_value("iculib-url") +# This is used automatically by distutils.command.install object, to specify final installation +# location. +OPTION_FINAL_INSTALL_PREFIX = option_value("prefix") + + if OPTION_QT_VERSION is None: OPTION_QT_VERSION = "5" if OPTION_QMAKE is None: @@ -445,7 +452,7 @@ def prepareBuild(): if os.path.isdir(".git") and not OPTION_IGNOREGIT and not OPTION_ONLYPACKAGE and not OPTION_REUSE_BUILD: prepareSubModules() # Clean up temp and package folders - for n in ["pyside_package", "build", "PySide2-%s" % __version__]: + for n in [pyside_package_dir_name, "build", "PySide2-%s" % __version__]: d = os.path.join(script_dir, n) if os.path.isdir(d): print("Removing %s" % d) @@ -455,7 +462,8 @@ def prepareBuild(): print('***** problem removing "{}"'.format(d)) print('ignored error: {}'.format(e)) # Prepare package folders - for pkg in ["pyside_package/PySide2", "pyside_package/pyside2uic"]: + ppdn = pyside_package_dir_name + for pkg in [os.path.join(ppdn, "PySide2"), os.path.join(ppdn, "pyside2uic")]: pkg_dir = os.path.join(script_dir, pkg) os.makedirs(pkg_dir) # locate Qt sources for the documentation @@ -743,6 +751,7 @@ class pyside_build(_build): self.make_generator = make_generator self.debug = OPTION_DEBUG self.script_dir = script_dir + self.pyside_package_dir = os.path.join(self.script_dir, pyside_package_dir_name) self.sources_dir = sources_dir self.build_dir = build_dir self.install_dir = install_dir @@ -754,6 +763,10 @@ class pyside_build(_build): self.site_packages_dir = get_python_lib(1, 0, prefix=install_dir) self.build_tests = OPTION_BUILDTESTS + setuptools_install_prefix = get_python_lib(1) + if OPTION_FINAL_INSTALL_PREFIX: + setuptools_install_prefix = OPTION_FINAL_INSTALL_PREFIX + log.info("=" * 30) log.info("Package version: %s" % __version__) log.info("Build type: %s" % self.build_type) @@ -763,11 +776,27 @@ class pyside_build(_build): log.info("Make generator: %s" % self.make_generator) log.info("Make jobs: %s" % OPTION_JOBS) log.info("-" * 3) + log.info("Script directory: %s" % self.script_dir) log.info("Sources directory: %s" % self.sources_dir) - log.info("Build directory: %s" % self.build_dir) - log.info("Install directory: %s" % self.install_dir) - log.info("Python site-packages install directory: %s" % self.site_packages_dir) + + log.info(dedent(""" + Building PySide2 will create and touch directories in the following order: + make build directory (py*_build/*/*) -> + make install directory (py*_install/*/*) -> + {} directory (pyside_package/*) -> + setuptools build directory (build/*/*) -> + setuptools install directory (usually path-installed-python/lib/python*/site-packages/*) + """).format(pyside_package_dir_name)) + + log.info("make build directory: %s" % self.build_dir) + log.info("make install directory: %s" % self.install_dir) + log.info("%s directory: %s" % (pyside_package_dir_name, self.pyside_package_dir)) + log.info("setuptools build directory: %s" % os.path.join(self.script_dir, "build")) + log.info("setuptools install directory: %s" % setuptools_install_prefix) + log.info("make-installed site-packages directory: %s \n" + " (only relevant for copying files from 'make install directory' " + "to '%s directory'" % (self.site_packages_dir, pyside_package_dir_name)) log.info("-" * 3) log.info("Python executable: %s" % self.py_executable) log.info("Python includes: %s" % self.py_include_dir) @@ -976,7 +1005,7 @@ class pyside_build(_build): "install_dir": self.install_dir, "build_dir": self.build_dir, "script_dir": self.script_dir, - "dist_dir": os.path.join(self.script_dir, 'pyside_package'), + "dist_dir": self.pyside_package_dir, "ssl_libs_dir": OPTION_OPENSSL, "py_version": self.py_version, "qt_version": self.qtinfo.version, @@ -1585,7 +1614,7 @@ setup( packages = ['PySide2', 'pyside2uic', 'pyside2uic.Compiler', 'pyside2uic.port_v%s' % (sys.version_info[0]) ], - package_dir = {'': 'pyside_package'}, + package_dir = {'': pyside_package_dir_name}, include_package_data = True, zip_safe = False, entry_points = { -- cgit v1.2.3