def test__basic(self): fs = FileSystem(path=['don\'t', 'care'], rootdirectory=make_package()) package = LocalPackage(rootdirectory=fs.rootdirectory(), setups=[ConfixSetup(use_libtool=False)]) package.boil(external_nodes=[]) plainfile_data = package.rootbuilder().find_entry_builder( ['plainfile_data']) plainfile_prefix = package.rootbuilder().find_entry_builder( ['plainfile_prefix']) self.failIf(plainfile_data is None) self.failIf(plainfile_prefix is None) self.failUnless(isinstance(plainfile_data, PlainFileBuilder)) self.failUnless(isinstance(plainfile_prefix, PlainFileBuilder)) pass
def main(): # Setup logger logger.setLevel(logging.DEBUG) # Create console handler and set level to debug chandler = logging.StreamHandler() chandler.setLevel(logging.DEBUG) # Create file handler and set level to debug fhandler = logging.FileHandler('build.log') fhandler.setLevel(logging.DEBUG) # Create formatter formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') # Add formatter to handlers chandler.setFormatter(formatter) fhandler.setFormatter(formatter) # Add handlers to logger logger.addHandler(chandler) logger.addHandler(fhandler) try: optparser = optparse.OptionParser(usage="build [options]", version="PySide package builder") optparser.add_option("-e", "--check-environ", dest="check_environ", action="store_true", default=False, help="Check the environment.") optparser.add_option("-q", "--qmake", dest="qmake_path", default=None, help="Locate qmake") optparser.add_option("-d", "--download", dest="download", action="store_true", default=False, help="Download sources from git repository.") optparser.add_option("-m", "--modules-version", dest="modules_version", default=VERSION, help="Specify what version of modules to checkout from git repository: 'master' or '" + VERSION + "'. Default is '" + VERSION + "'.") optparser.add_option("-p", "--package-version", dest="package_version", default=VERSION, help="Specify package version. Default is %s" % VERSION) optparser.add_option("-u", "--debug", dest="debug", action="store_true", default=False, help="Build the debug version of pyside binaries.") optparser.add_option("-b", "--build-module", dest="build_module", default=None, help="Specify what module to build") optparser.add_option("-o", "--only-package", dest="only_package", action="store_true", default=False, help="Create a distribution package only using existing binaries.") optparser.add_option("-x", "--pack-exmaples", dest="pack_examples", action="store_true", default=True, help="Add pyside examples to package.") options, args = optparser.parse_args(sys.argv) build_type = "Release" if options.debug: build_type = "Debug" py_version = "%s.%s" % (sys.version_info[0], sys.version_info[1]) py_include_dir = distutils.sysconfig.get_config_var("INCLUDEPY") py_prefix = distutils.sysconfig.get_config_var("prefix") py_executable = sys.executable dbgPostfix = "" if build_type == "Debug": dbgPostfix = "_d" py_executable = py_executable[:-4] + "_d.exe" if sys.platform == "win32": py_library = os.path.join(py_prefix, "libs/python%s%s.lib" % \ (py_version.replace(".", ""), dbgPostfix)) else: py_library = os.path.join(py_prefix, "lib/libpython%s.so" % \ (py_version, dbgPostfix)) if not os.path.exists(py_library): logger.error("Failed to locate the Python library %s" % py_library) sys.exit(1) if not options.modules_version in modules: logger.error("Invalid modules version specified [%s]. Available options: [%s]" % \ (options.modules_version, ', '.join(modules.keys()))) sys.exit(1) qtinfo = QtInfo(options.qmake_path) if not qtinfo.qmake_path or not os.path.exists(qtinfo.qmake_path): logger.error("Failed to find qmake. Please specify the path to qmake with --qmake parameter.") sys.exit(1) # Update os.path paths = os.environ['PATH'].lower().split(os.pathsep) def updatepath(path): if not path.lower() in paths: logger.info("Adding path \"%s\" to environment" % path) paths.append(path) qt_dir = os.path.dirname(qtinfo.qmake_path) updatepath(qt_dir) os.environ['PATH'] = os.pathsep.join(paths) qt_version = qtinfo.version if not qt_version: logger.error("Failed to query the Qt version with qmake %s" % qtinfo.qmake_path) sys.exit(1) build_name = "py%s-qt%s-%s-%s" % \ (py_version, qt_version, platform.architecture()[0], build_type.lower()) script_dir = os.getcwd() sources_dir = os.path.join(script_dir, "sources") build_dir = os.path.join(script_dir, os.path.join("build", "%s" % build_name)) install_dir = os.path.join(script_dir, os.path.join("install", "%s" % build_name)) logger.info("------------------------------------------") logger.info("Build type: %s" % build_type) if options.build_module: logger.info("Build module: %s" % options.build_module) if options.download: logger.info("Download modules version: %s" % options.modules_version) logger.info("Package version: %s" % options.package_version) logger.info("Python prefix: %s" % py_prefix) logger.info("Python version: %s" % py_version) logger.info("Python executable: %s" % py_executable) logger.info("Python includes: %s" % py_include_dir) logger.info("Python library: %s" % py_library) logger.info("Script directory: %s" % script_dir) logger.info("Sources directory: %s" % sources_dir) logger.info("Build directory: %s" % build_dir) logger.info("Install directory: %s" % install_dir) logger.info("Qt qmake: %s" % qtinfo.qmake_path) logger.info("Qt version: %s" % qt_version) logger.info("Qt bins: %s" % qtinfo.bins_dir) logger.info("Qt plugins: %s" % qtinfo.plugins_dir) logger.info("------------------------------------------") if not options.only_package: check_env(options.download) if options.check_environ: return # Prepare folders if not os.path.exists(sources_dir): logger.info("Creating sources folder %s..." % sources_dir) os.makedirs(sources_dir) if not os.path.exists(build_dir): logger.info("Creating build folder %s..." % build_dir) os.makedirs(build_dir) if not os.path.exists(install_dir): logger.info("Creating install folder %s..." % install_dir) os.makedirs(install_dir) if options.pack_examples: for k in modules: modules[k].append(examples_module) if not options.only_package: process_modules(options.build_module, options.download, modules[options.modules_version], script_dir, sources_dir, build_dir, install_dir, qtinfo, py_executable, py_include_dir, py_library, build_type) if options.build_module is None and options.package_version is not None: make_package(options.package_version, script_dir, sources_dir, build_dir, install_dir, py_version, options.pack_examples, options.debug, qtinfo, logger) except Exception: logger.error(''.join(traceback.format_exception(*sys.exc_info()))) sys.exit(1) sys.exit(0)
def main(): # Setup logger logger.setLevel(logging.DEBUG) # Create console handler and set level to debug chandler = logging.StreamHandler() chandler.setLevel(logging.DEBUG) # Create file handler and set level to debug fhandler = logging.FileHandler("build.log") fhandler.setLevel(logging.DEBUG) # Create formatter formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") # Add formatter to handlers chandler.setFormatter(formatter) fhandler.setFormatter(formatter) # Add handlers to logger logger.addHandler(chandler) logger.addHandler(fhandler) try: optparser = optparse.OptionParser(usage="create_package [options]", version="PySide package creator") optparser.add_option( "-e", "--check-environ", dest="check_environ", action="store_true", default=False, help="Check the environment", ) optparser.add_option("-q", "--qmake", dest="qmake_path", default=None, help="Locate qmake") optparser.add_option( "-d", "--download", dest="download", action="store_true", default=False, help="Download sources from git repository", ) optparser.add_option( "-m", "--pyside-version", dest="pyside_version", default="stable", help="Specify what version of modules to download from git repository: 'dev' or 'stable'. Default is 'stable'.", ) optparser.add_option( "-p", "--package-version", dest="package_version", default=PYSIDE_VERSION, help="Specify package version. Default is %s" % PYSIDE_VERSION, ) optparser.add_option( "-b", "--build-module", dest="build_module", default=None, help="Specify what module to build" ) optparser.add_option( "-o", "--only-package", dest="only_package", action="store_true", default=False, help="Create a distribution package only using existing binaries.", ) options, args = optparser.parse_args(sys.argv) py_version = "%s.%s" % (sys.version_info[0], sys.version_info[1]) py_include_dir = distutils.sysconfig.get_config_var("INCLUDEPY") py_prefix = distutils.sysconfig.get_config_var("prefix") if sys.platform == "win32": py_library = os.path.join(py_prefix, "libs/python%s.lib" % py_version.replace(".", "")) else: py_library = os.path.join(py_prefix, "lib/libpython%s.so" % py_version) if not os.path.exists(py_library): logger.error("Failed to locate the Python library %s" % py_library) sys.exit(1) if not options.pyside_version in modules: logger.error( "Invalid pyside version specified [%s]. Available options: [%s]" % (options.pyside_version, ", ".join(modules.keys())) ) sys.exit(1) script_dir = os.getcwd() modules_dir = os.path.join(script_dir, "modules") qtinfo = QtInfo(options.qmake_path) if not qtinfo.qmake_path or not os.path.exists(qtinfo.qmake_path): logger.error("Failed to find qmake. Please specify the path to qmake with --qmake parameter.") sys.exit(1) # Add path to this version of Qt to environment if it's not there. # Otherwise the "generatorrunner" will not find the Qt libraries paths = os.environ["PATH"].lower().split(os.pathsep) qt_dir = os.path.dirname(qtinfo.qmake_path) if not qt_dir.lower() in paths: logger.info('Adding path "%s" to environment' % qt_dir) paths.append(qt_dir) os.environ["PATH"] = os.pathsep.join(paths) qt_version = qtinfo.version if not qt_version: logger.error("Failed to query the Qt version with qmake %s" % qtinfo.qmake_path) sys.exit(1) install_dir = os.path.join(script_dir, "install-py%s-qt%s") % (py_version, qt_version) logger.info("------------------------------------------") if options.build_module: logger.info("Build module: %s" % options.build_module) logger.info("Generate package version: %s" % options.package_version) if options.download: logger.info("Download modules version: %s" % options.pyside_version) logger.info("Python version: %s" % py_version) logger.info("Python executable: %s" % sys.executable) logger.info("Python includes: %s" % py_include_dir) logger.info("Python library: %s" % py_library) logger.info("Script directory: %s" % script_dir) logger.info("Modules directory: %s" % modules_dir) logger.info("Install directory: %s" % install_dir) logger.info("qmake path: %s" % qtinfo.qmake_path) logger.info("Qt version: %s" % qt_version) logger.info("Qt bins: %s" % qtinfo.bins_dir) logger.info("Qt plugins: %s" % qtinfo.plugins_dir) logger.info("------------------------------------------") check_env(options.download) if options.check_environ: return if not options.only_package: process_modules( options.build_module, options.download, modules[options.pyside_version], modules_dir, install_dir, qtinfo, py_include_dir, py_library, ) if options.build_module is None and options.package_version is not None: from package import make_package make_package(options.package_version, script_dir, modules_dir, install_dir, py_version, qtinfo, logger) except Exception: logger.error("".join(traceback.format_exception(*sys.exc_info()))) sys.exit(1) sys.exit(0)
def main(): # Setup logger logger.setLevel(logging.DEBUG) # Create console handler and set level to debug chandler = logging.StreamHandler() chandler.setLevel(logging.DEBUG) # Create file handler and set level to debug fhandler = logging.FileHandler('build.log') fhandler.setLevel(logging.DEBUG) # Create formatter formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s') # Add formatter to handlers chandler.setFormatter(formatter) fhandler.setFormatter(formatter) # Add handlers to logger logger.addHandler(chandler) logger.addHandler(fhandler) try: optparser = optparse.OptionParser(usage="build [options]", version="PySide package builder") optparser.add_option("-e", "--check-environ", dest="check_environ", action="store_true", default=False, help="Check the environment.") optparser.add_option("-q", "--qmake", dest="qmake_path", default=None, help="Locate qmake") optparser.add_option("-d", "--download", dest="download", action="store_true", default=False, help="Download sources from git repository.") optparser.add_option( "-m", "--modules-version", dest="modules_version", default=VERSION, help= "Specify what version of modules to checkout from git repository: 'master' or '" + VERSION + "'. Default is '" + VERSION + "'.") optparser.add_option("-p", "--package-version", dest="package_version", default=VERSION, help="Specify package version. Default is %s" % VERSION) optparser.add_option( "-u", "--debug", dest="debug", action="store_true", default=False, help="Build the debug version of pyside binaries.") optparser.add_option("-b", "--build-module", dest="build_module", default=None, help="Specify what module to build") optparser.add_option( "-o", "--only-package", dest="only_package", action="store_true", default=False, help="Create a distribution package only using existing binaries.") optparser.add_option("-x", "--pack-exmaples", dest="pack_examples", action="store_true", default=True, help="Add pyside examples to package.") options, args = optparser.parse_args(sys.argv) build_type = "Release" if options.debug: build_type = "Debug" py_version = "%s.%s" % (sys.version_info[0], sys.version_info[1]) py_include_dir = distutils.sysconfig.get_config_var("INCLUDEPY") py_prefix = distutils.sysconfig.get_config_var("prefix") py_executable = sys.executable dbgPostfix = "" if build_type == "Debug": dbgPostfix = "_d" py_executable = py_executable[:-4] + "_d.exe" if sys.platform == "win32": py_library = os.path.join(py_prefix, "libs/python%s%s.lib" % \ (py_version.replace(".", ""), dbgPostfix)) else: py_library = os.path.join(py_prefix, "lib/libpython%s.so" % \ (py_version, dbgPostfix)) if not os.path.exists(py_library): logger.error("Failed to locate the Python library %s" % py_library) sys.exit(1) if not options.modules_version in modules: logger.error("Invalid modules version specified [%s]. Available options: [%s]" % \ (options.modules_version, ', '.join(modules.keys()))) sys.exit(1) qtinfo = QtInfo(options.qmake_path) if not qtinfo.qmake_path or not os.path.exists(qtinfo.qmake_path): logger.error( "Failed to find qmake. Please specify the path to qmake with --qmake parameter." ) sys.exit(1) # Update os.path paths = os.environ['PATH'].lower().split(os.pathsep) def updatepath(path): if not path.lower() in paths: logger.info("Adding path \"%s\" to environment" % path) paths.append(path) qt_dir = os.path.dirname(qtinfo.qmake_path) updatepath(qt_dir) os.environ['PATH'] = os.pathsep.join(paths) qt_version = qtinfo.version if not qt_version: logger.error("Failed to query the Qt version with qmake %s" % qtinfo.qmake_path) sys.exit(1) build_name = "py%s-qt%s-%s-%s" % \ (py_version, qt_version, platform.architecture()[0], build_type.lower()) script_dir = os.getcwd() sources_dir = os.path.join(script_dir, "sources") build_dir = os.path.join(script_dir, os.path.join("build", "%s" % build_name)) install_dir = os.path.join(script_dir, os.path.join("install", "%s" % build_name)) logger.info("------------------------------------------") logger.info("Build type: %s" % build_type) if options.build_module: logger.info("Build module: %s" % options.build_module) if options.download: logger.info("Download modules version: %s" % options.modules_version) logger.info("Package version: %s" % options.package_version) logger.info("Python prefix: %s" % py_prefix) logger.info("Python version: %s" % py_version) logger.info("Python executable: %s" % py_executable) logger.info("Python includes: %s" % py_include_dir) logger.info("Python library: %s" % py_library) logger.info("Script directory: %s" % script_dir) logger.info("Sources directory: %s" % sources_dir) logger.info("Build directory: %s" % build_dir) logger.info("Install directory: %s" % install_dir) logger.info("Qt qmake: %s" % qtinfo.qmake_path) logger.info("Qt version: %s" % qt_version) logger.info("Qt bins: %s" % qtinfo.bins_dir) logger.info("Qt plugins: %s" % qtinfo.plugins_dir) logger.info("------------------------------------------") if not options.only_package: check_env(options.download) if options.check_environ: return # Prepare folders if not os.path.exists(sources_dir): logger.info("Creating sources folder %s..." % sources_dir) os.makedirs(sources_dir) if not os.path.exists(build_dir): logger.info("Creating build folder %s..." % build_dir) os.makedirs(build_dir) if not os.path.exists(install_dir): logger.info("Creating install folder %s..." % install_dir) os.makedirs(install_dir) if options.pack_examples: for k in modules: modules[k].append(examples_module) if not options.only_package: process_modules(options.build_module, options.download, modules[options.modules_version], script_dir, sources_dir, build_dir, install_dir, qtinfo, py_executable, py_include_dir, py_library, build_type) if options.build_module is None and options.package_version is not None: make_package(options.package_version, script_dir, sources_dir, build_dir, install_dir, py_version, options.pack_examples, options.debug, qtinfo, logger) except Exception: logger.error(''.join(traceback.format_exception(*sys.exc_info()))) sys.exit(1) sys.exit(0)