コード例 #1
0
ファイル: test_runCommand.py プロジェクト: zrzhd/qtsdk
 def test_withThreadedWork_crash(self):
     currentMethodName = sys._getframe().f_code.co_name
     testWork = ThreadedWork("{} - run some command threaded".format(currentMethodName))
     # this exchange the current os._exit(-1) implementation only for this testing case
     separatorLine = "{0}>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{0}".format(os.linesep)
     separatorText = "the complete python application would stop here"
     testWork.setExitFailFunction(sys.__stdout__.write, ''.join([separatorLine, separatorText, separatorLine]))
     taskStringList = []
     taskStringList.append("--sleep 1 --printLines 10")
     taskStringList.append("--sleep 2 --printLines 30")
     taskStringList.append("--sleep 1 --printLines 40")
     taskStringList.append("--sleep 2 --printLines 3 --crash")
     taskStringList.append("--sleep 1 --printLines 100")
     for taskString in taskStringList:
         testWork.addTask(taskString, useRunCommand, taskString, os.getcwd())
     testWork.run()
コード例 #2
0
ファイル: test_runCommand.py プロジェクト: zrzhd/qtsdk
 def test_withThreadedWork(self):
     currentMethodName = sys._getframe().f_code.co_name
     testWork = ThreadedWork("{} - run some command threaded".format(currentMethodName))
     taskStringList = []
     taskStringList.append("--sleep 1 --printLines 10")
     taskStringList.append("--sleep 2 --printLines 30")
     taskStringList.append("--sleep 1 --printLines 40")
     taskStringList.append("--sleep 2 --printLines 50")
     taskStringList.append("--sleep 1 --printLines 100")
     for taskString in taskStringList:
         testWork.addTask(taskString, useRunCommand, taskString, os.getcwd())
     testWork.run()
コード例 #3
0
def install_qt(args):
    download_packages_work = ThreadedWork('get and extract Qt 5 binaries')
    need_to_install_qt = not os.path.lexists(args.qt_path)
    if need_to_install_qt:
        download_packages_work.addTaskObject(
            bldinstallercommon.create_qt_download_task(args.qt_modules,
                                                       args.qt_path,
                                                       args.temp_path, args))

    # run task if needed
    if download_packages_work.taskNumber != 0:
        download_packages_work.run()
        bldinstallercommon.patch_qt(args.qt_path)
コード例 #4
0
def create_qt_download_task(module_urls, target_qt5_path, temp_path,
                            caller_arguments):
    qt_task = Task('download and extract Qt to "{0}"'.format(target_qt5_path))
    download_work = ThreadedWork(
        'download Qt packages to "{0}"'.format(temp_path))
    unzip_task = Task('extracting packages to "{0}"'.format(target_qt5_path))
    # add Qt modules
    for module_url in module_urls:
        if is_content_url_valid(module_url):
            (download_task, extract_task) = create_download_and_extract_tasks(
                module_url, target_qt5_path, temp_path, caller_arguments)
            download_work.addTaskObject(download_task)
            unzip_task.addFunction(extract_task.do)
        else:
            print('warning: could not find "{0}" for download'.format(
                module_url))
    # add icu, d3dcompiler, opengl32, openssl
    target_path = os.path.join(target_qt5_path,
                               'bin' if is_win_platform() else 'lib')
    if not is_mac_platform() and hasattr(caller_arguments,
                                         'icu7z') and caller_arguments.icu7z:
        (download_task, extract_task) = create_download_and_extract_tasks(
            caller_arguments.icu7z, target_path, temp_path, caller_arguments)
        download_work.addTaskObject(download_task)
        unzip_task.addFunction(extract_task.do)
    if is_win_platform():
        if hasattr(caller_arguments,
                   'd3dcompiler7z') and caller_arguments.d3dcompiler7z:
            (download_task, extract_task) = create_download_and_extract_tasks(
                caller_arguments.d3dcompiler7z, target_path, temp_path,
                caller_arguments)
            download_work.addTaskObject(download_task)
            unzip_task.addFunction(extract_task.do)
        if hasattr(caller_arguments,
                   'opengl32sw7z') and caller_arguments.opengl32sw7z:
            (download_task, extract_task) = create_download_and_extract_tasks(
                caller_arguments.opengl32sw7z, target_path, temp_path,
                caller_arguments)
            download_work.addTaskObject(download_task)
            unzip_task.addFunction(extract_task.do)
        if hasattr(caller_arguments,
                   'openssl7z') and caller_arguments.openssl7z:
            (download_task, extract_task) = create_download_and_extract_tasks(
                caller_arguments.openssl7z, target_path, temp_path,
                caller_arguments)
            download_work.addTaskObject(download_task)
            unzip_task.addFunction(extract_task.do)
    qt_task.addFunction(download_work.run)
    qt_task.addFunction(unzip_task.do)
    return qt_task
コード例 #5
0
    # clean step
    if callerArguments.clean:
        print("##### {0} #####".format("clean old builds"))
        bldinstallercommon.remove_tree(callerArguments.qt5path)
        bldinstallercommon.remove_tree(qtCreatorBuildDirectory)
        bldinstallercommon.remove_tree(qtCreatorInstallDirectory)
        if bldinstallercommon.is_win_platform():
            bldinstallercommon.remove_tree(cdbextBuildDirectory)
            bldinstallercommon.remove_tree(cdbextInstallDirectory)
            bldinstallercommon.remove_tree(wininterruptBuildDirectory)
            bldinstallercommon.remove_tree(wininterruptInstallDirectory)
        bldinstallercommon.remove_tree(tempPath)

    qmakeBinary = qmake_binary(callerArguments.qt5path)

    download_packages_work = ThreadedWork("get and extract Qt 5 binaries")
    need_to_install_qt = not os.path.lexists(callerArguments.qt5path)
    if need_to_install_qt:
        download_packages_work.addTaskObject(
            bldinstallercommon.create_qt_download_task(
                callerArguments.qt_modules, callerArguments.qt5path, tempPath,
                callerArguments))

    # run get Qt 5 tasks
    if download_packages_work.taskNumber != 0:
        download_packages_work.run()

    if need_to_install_qt:
        patch_qt_pri_files(callerArguments.qt5path)
        bldinstallercommon.patch_qt(callerArguments.qt5path)
コード例 #6
0
ファイル: bld_qtcreator_plugins.py プロジェクト: qtdevs/qtsdk
def build_plugins(caller_arguments):
    (basename,
     _) = os.path.splitext(os.path.basename(caller_arguments.target_7zfile))
    Paths = collections.namedtuple('Paths', [
        'qt5', 'temp', 'qtc_dev', 'qtc_build', 'source', 'build', 'target',
        'dev_target'
    ])
    paths = Paths(qt5=os.path.join(caller_arguments.build_path,
                                   basename + '-qt5'),
                  temp=os.path.join(caller_arguments.build_path,
                                    basename + '-temp'),
                  qtc_dev=caller_arguments.qtc_dev,
                  qtc_build=caller_arguments.qtc_build,
                  source=caller_arguments.plugin_path,
                  build=os.path.join(caller_arguments.build_path,
                                     basename + '-build'),
                  target=os.path.join(caller_arguments.build_path,
                                      basename + '-target'),
                  dev_target=os.path.join(caller_arguments.build_path,
                                          basename + '-tempdev'))

    if caller_arguments.clean:
        bldinstallercommon.remove_tree(paths.qt5)
        bldinstallercommon.remove_tree(paths.temp)
        if caller_arguments.qtc_dev_url:
            bldinstallercommon.remove_tree(paths.qtc_dev)
        if caller_arguments.qtc_build_url:
            bldinstallercommon.remove_tree(paths.qtc_build)
        bldinstallercommon.remove_tree(paths.build)
        bldinstallercommon.remove_tree(paths.target)
        bldinstallercommon.remove_tree(paths.dev_target)

    download_packages_work = ThreadedWork(
        'Get and extract all needed packages')
    need_to_install_qt = not os.path.exists(paths.qt5)
    if need_to_install_qt:
        download_packages_work.addTaskObject(
            bldinstallercommon.create_qt_download_task(
                caller_arguments.qt_modules, paths.qt5, paths.temp,
                caller_arguments))
    if caller_arguments.qtc_build_url and not os.path.exists(paths.qtc_build):
        download_packages_work.addTaskObject(
            bldinstallercommon.create_download_extract_task(
                caller_arguments.qtc_build_url, paths.qtc_build, paths.temp,
                caller_arguments))
    if caller_arguments.qtc_dev_url and not os.path.exists(paths.qtc_dev):
        download_packages_work.addTaskObject(
            bldinstallercommon.create_download_extract_task(
                caller_arguments.qtc_dev_url, paths.qtc_dev, paths.temp,
                caller_arguments))
    if download_packages_work.taskNumber != 0:
        download_packages_work.run()
    if need_to_install_qt:
        patch_qt_pri_files(paths.qt5)
        bldinstallercommon.patch_qt(paths.qt5)

    # qmake arguments
    qmake_filepath = qmake_binary(paths.qt5)
    common_qmake_arguments = get_common_qmake_arguments(
        paths, caller_arguments)

    # environment
    environment = get_common_environment(paths.qt5, caller_arguments)

    # build plugins
    print('------------')
    print('Building plugin "{0}" in "{1}" ...'.format(paths.source,
                                                      paths.build))
    qmake_command = [qmake_filepath]
    qmake_command.append(paths.source)
    qmake_command.extend(common_qmake_arguments)
    runCommand(qmake_command,
               paths.build,
               callerArguments=caller_arguments,
               init_environment=environment)
    runBuildCommand(currentWorkingDirectory=paths.build,
                    callerArguments=caller_arguments,
                    init_environment=environment)
    runBuildCommand("docs",
                    currentWorkingDirectory=paths.build,
                    callerArguments=caller_arguments,
                    init_environment=environment)

    # run custom deploy script
    if caller_arguments.deploy_command:
        custom_deploy_command = caller_arguments.deploy_command + [
            paths.qt5, paths.target
        ]
        runCommand(custom_deploy_command, currentWorkingDirectory=paths.target)
    if caller_arguments.deploy:
        runInstallCommand(["deploy"],
                          currentWorkingDirectory=paths.build,
                          callerArguments=caller_arguments,
                          init_environment=environment)

    sevenzip_filepath = '7z.exe' if bldinstallercommon.is_win_platform(
    ) else '7z'
    if hasattr(caller_arguments,
               'sevenzippath') and caller_arguments.sevenzippath:
        sevenzip_filepath = os.path.join(caller_arguments.sevenzippath,
                                         sevenzip_filepath)
    # deploy and zip up
    deploy_command = [
        'python', '-u',
        os.path.join(paths.qtc_dev, 'scripts', 'packagePlugins.py'),
        '--qmake_binary',
        os.path.join(paths.qt5, 'bin', 'qmake'), '--7z', sevenzip_filepath
    ]
    deploy_command.extend([paths.target, caller_arguments.target_7zfile])
    runCommand(deploy_command,
               paths.temp,
               callerArguments=caller_arguments,
               init_environment=environment)

    if caller_arguments.target_dev7zfile:
        dev_command = [
            'python', '-u',
            os.path.join(paths.qtc_dev, 'scripts',
                         'createDevPackage.py'), '--source', paths.source,
            '--build', paths.build, '--7z', sevenzip_filepath, '--7z_out',
            caller_arguments.target_dev7zfile, paths.dev_target
        ]
        runCommand(dev_command,
                   paths.temp,
                   callerArguments=caller_arguments,
                   init_environment=environment)
コード例 #7
0
ファイル: bld_module.py プロジェクト: zrzhd/qtsdk
if not callerArguments.module_name:
    callerArguments.module_name = os.environ['MODULE_NAME']

tempPath = os.path.abspath(os.path.join(os.path.dirname(__file__), 'temp'))

# clone module repo
if callerArguments.module_url != '':
    bldinstallercommon.init_common_module(os.getcwd())
    bldinstallercommon.create_dirs(MODULE_SRC_DIR)
    bldinstallercommon.clone_repository(
        callerArguments.module_url, callerArguments.module_branch,
        os.path.join(os.path.dirname(__file__), MODULE_SRC_DIR_NAME))
    qtModuleSourceDirectory = MODULE_SRC_DIR
elif callerArguments.module7z != '':
    bldinstallercommon.create_dirs(MODULE_SRC_DIR)
    myGetQtModule = ThreadedWork("get and extract module src")
    myGetQtModule.addTaskObject(
        bldinstallercommon.create_download_extract_task(
            callerArguments.module7z, MODULE_SRC_DIR, tempPath,
            callerArguments))
    myGetQtModule.run()
    qtModuleSourceDirectory = MODULE_SRC_DIR
else:
    print(("Using local copy of {0}").format(callerArguments.module_name))
    qtModuleSourceDirectory = callerArguments.module_dir

# install directory
qtModuleInstallDirectory = qtModuleSourceDirectory + '_install'
if bldinstallercommon.is_win_platform():
    # rip out drive letter from path on Windows
    qtModuleInstallDirectory = qtModuleInstallDirectory[2:]
コード例 #8
0
    if callerArguments.clean:
        print("##### {0} #####".format("clean old builds"))
        bldinstallercommon.remove_tree(callerArguments.qt5path)
        bldinstallercommon.remove_tree(qtCreatorBuildDirectory)
        bldinstallercommon.remove_tree(qtCreatorInstallDirectory)
        bldinstallercommon.remove_tree(tempPath)

    if not os.path.lexists(callerArguments.qt5path) and not callerArguments.qt_modules:
        parser.print_help()
        print(("error: You have to pass the --qt-module argument if the {0} does not exist"
            + os.linesep + os.linesep).format(callerArguments.qt5path))
        sys.exit(1)

    qmakeBinary = qmake_binary(callerArguments.qt5path)

    download_packages_work = ThreadedWork("get and extract Qt 5 binaries")
    need_to_install_qt = not os.path.lexists(callerArguments.qt5path)
    if need_to_install_qt:
        download_packages_work.addTaskObject(bldinstallercommon.create_qt_download_task(
            callerArguments.qt_modules, callerArguments.qt5path, tempPath, callerArguments))

    # run get Qt 5 tasks
    if download_packages_work.taskNumber != 0:
        download_packages_work.run()

    if need_to_install_qt:
        patch_qt_pri_files(callerArguments.qt5path)
        bldinstallercommon.patch_qt(callerArguments.qt5path)

    ### lets start building
コード例 #9
0
def build_plugins(caller_arguments):
    (basename,_) = os.path.splitext(os.path.basename(caller_arguments.target_7zfile))
    Paths = collections.namedtuple('Paths', ['qt5', 'temp', 'qtc_dev', 'qtc_build', 'source', 'build', 'target', 'dev_target'])
    paths = Paths(qt5 = os.path.join(caller_arguments.build_path, basename + '-qt5'),
                  temp = os.path.join(caller_arguments.build_path, basename + '-temp'),
                  qtc_dev = caller_arguments.qtc_dev,
                  qtc_build = caller_arguments.qtc_build,
                  source = caller_arguments.plugin_path,
                  build = os.path.join(caller_arguments.build_path, basename + '-build'),
                  target = os.path.join(caller_arguments.build_path, basename + '-target'),
                  dev_target = os.path.join(caller_arguments.build_path, basename + '-tempdev'))

    if caller_arguments.clean:
        bldinstallercommon.remove_tree(paths.qt5)
        bldinstallercommon.remove_tree(paths.temp)
        if caller_arguments.qtc_dev_url:
            bldinstallercommon.remove_tree(paths.qtc_dev)
        if caller_arguments.qtc_build_url:
            bldinstallercommon.remove_tree(paths.qtc_build)
        bldinstallercommon.remove_tree(paths.build)
        bldinstallercommon.remove_tree(paths.target)
        bldinstallercommon.remove_tree(paths.dev_target)

    download_packages_work = ThreadedWork('Get and extract all needed packages')
    need_to_install_qt = not os.path.exists(paths.qt5)
    if need_to_install_qt:
        download_packages_work.addTaskObject(bldinstallercommon.create_qt_download_task(
            caller_arguments.qt_modules, paths.qt5, paths.temp, caller_arguments))
    if caller_arguments.qtc_build_url and not os.path.exists(paths.qtc_build):
        download_packages_work.addTaskObject(bldinstallercommon.create_download_extract_task(caller_arguments.qtc_build_url,
                                             paths.qtc_build, paths.temp, caller_arguments))
    if caller_arguments.qtc_dev_url and not os.path.exists(paths.qtc_dev):
        download_packages_work.addTaskObject(bldinstallercommon.create_download_extract_task(caller_arguments.qtc_dev_url,
                                             paths.qtc_dev, paths.temp, caller_arguments))
    if download_packages_work.taskNumber != 0:
        download_packages_work.run()
    if need_to_install_qt:
        patch_qt_pri_files(paths.qt5)
        bldinstallercommon.patch_qt(paths.qt5)

    # qmake arguments
    qmake_filepath = qmake_binary(paths.qt5)
    common_qmake_arguments = get_common_qmake_arguments(paths, caller_arguments)

    # environment
    environment = get_common_environment(paths.qt5, caller_arguments)

    # build plugins
    print('------------')
    print('Building plugin "{0}" in "{1}" ...'.format(paths.source, paths.build))
    qmake_command = [qmake_filepath]
    qmake_command.append(paths.source)
    qmake_command.extend(common_qmake_arguments)
    runCommand(qmake_command, paths.build,
        callerArguments = caller_arguments, init_environment = environment)
    runBuildCommand(currentWorkingDirectory = paths.build,
        callerArguments = caller_arguments, init_environment = environment)

    # run custom deploy script
    if caller_arguments.deploy_command:
        custom_deploy_command = caller_arguments.deploy_command + [paths.qt5,
            paths.target]
        runCommand(custom_deploy_command, currentWorkingDirectory = paths.target)

    sevenzip_filepath = '7z.exe' if bldinstallercommon.is_win_platform() else '7z'
    if hasattr(caller_arguments, 'sevenzippath') and caller_arguments.sevenzippath:
        sevenzip_filepath = os.path.join(caller_arguments.sevenzippath, sevenzip_filepath)
    # deploy and zip up
    deploy_command = ['python', '-u', os.path.join(paths.qtc_dev, 'scripts', 'packagePlugins.py'),
                      '--qmake_binary', os.path.join(paths.qt5, 'bin', 'qmake'),
                      '--7z', sevenzip_filepath]
    deploy_command.extend([paths.target, caller_arguments.target_7zfile])
    runCommand(deploy_command, paths.temp,
        callerArguments = caller_arguments, init_environment = environment)

    if caller_arguments.target_dev7zfile:
        dev_command = ['python', '-u', os.path.join(paths.qtc_dev, 'scripts', 'createDevPackage.py'),
                       '--source', paths.source, '--build', paths.build,
                       '--7z', sevenzip_filepath,
                       '--7z_out', caller_arguments.target_dev7zfile,
                       paths.dev_target]
        runCommand(dev_command, paths.temp,
            callerArguments = caller_arguments, init_environment = environment)
コード例 #10
0
def create_qt_download_task(module_urls, target_qt5_path, temp_path, caller_arguments):
    qt_task = Task('download and extract Qt to "{0}"'.format(target_qt5_path))
    download_work = ThreadedWork('download Qt packages to "{0}"'.format(temp_path))
    unzip_task = Task('extracting packages to "{0}"'.format(target_qt5_path))
    # add Qt modules
    for module_url in module_urls:
        if is_content_url_valid(module_url):
            (download_task, extract_task) = create_download_and_extract_tasks(module_url,
                                                target_qt5_path, temp_path, caller_arguments)
            download_work.addTaskObject(download_task)
            unzip_task.addFunction(extract_task.do)
        else:
            print('warning: could not find "{0}" for download'.format(module_url))
    # add icu, d3dcompiler, opengl32, openssl
    target_path = os.path.join(target_qt5_path, 'bin' if is_win_platform() else 'lib')
    if not is_mac_platform() and hasattr(caller_arguments, 'icu7z') and caller_arguments.icu7z:
        (download_task, extract_task) = create_download_and_extract_tasks(caller_arguments.icu7z,
                                                target_path, temp_path, caller_arguments)
        download_work.addTaskObject(download_task)
        unzip_task.addFunction(extract_task.do)
    if is_win_platform():
        if hasattr(caller_arguments, 'd3dcompiler7z') and caller_arguments.d3dcompiler7z:
            (download_task, extract_task) = create_download_and_extract_tasks(caller_arguments.d3dcompiler7z,
                                                    target_path, temp_path, caller_arguments)
            download_work.addTaskObject(download_task)
            unzip_task.addFunction(extract_task.do)
        if hasattr(caller_arguments, 'opengl32sw7z') and caller_arguments.opengl32sw7z:
            (download_task, extract_task) = create_download_and_extract_tasks(caller_arguments.opengl32sw7z,
                                                    target_path, temp_path, caller_arguments)
            download_work.addTaskObject(download_task)
            unzip_task.addFunction(extract_task.do)
        if hasattr(caller_arguments, 'openssl7z') and caller_arguments.openssl7z:
            (download_task, extract_task) = create_download_and_extract_tasks(caller_arguments.openssl7z,
                                                    target_path, temp_path, caller_arguments)
            download_work.addTaskObject(download_task)
            unzip_task.addFunction(extract_task.do)
    qt_task.addFunction(download_work.run)
    qt_task.addFunction(unzip_task.do)
    return qt_task
コード例 #11
0
ファイル: bld_module.py プロジェクト: qtproject/qtsdk
    callerArguments.qt5path = os.path.abspath(callerArguments.qt5path)

if not callerArguments.module_name:
    callerArguments.module_name = os.environ['MODULE_NAME']

tempPath = os.path.abspath(os.path.join(os.path.dirname(__file__), 'temp'))

# clone module repo
if callerArguments.module_url != '':
    bldinstallercommon.init_common_module(os.getcwd())
    bldinstallercommon.create_dirs(MODULE_SRC_DIR)
    bldinstallercommon.clone_repository(callerArguments.module_url, callerArguments.module_branch, os.path.join(os.path.dirname(__file__), MODULE_SRC_DIR_NAME))
    qtModuleSourceDirectory = MODULE_SRC_DIR
elif callerArguments.module7z != '':
    bldinstallercommon.create_dirs(MODULE_SRC_DIR)
    myGetQtModule = ThreadedWork("get and extract module src")
    myGetQtModule.addTaskObject(bldinstallercommon.create_download_extract_task(callerArguments.module7z, MODULE_SRC_DIR, tempPath, callerArguments))
    myGetQtModule.run()
    qtModuleSourceDirectory = MODULE_SRC_DIR
else:
    print(("Using local copy of {0}").format(callerArguments.module_name))
    qtModuleSourceDirectory = callerArguments.module_dir

# install directory
qtModuleInstallDirectory = qtModuleSourceDirectory + '_install'
if bldinstallercommon.is_win_platform():
    # rip out drive letter from path on Windows
    qtModuleInstallDirectory = qtModuleInstallDirectory[2:]
    # check whether this is a QNX build
    if any('qnx' in qt5_url.lower() for qt5_url in callerArguments.qt5_module_urls):
        # apply the workaround from QTBUG-38555