install.pcf

来自「著名的 helix realplayer 基于手机 symbian 系统的 播放」· PCF 代码 · 共 289 行

PCF
289
字号
# 
# ***** BEGIN LICENSE BLOCK ***** 
# Version: RCSL 1.0/RPSL 1.0 
#  
# Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
#      
# The contents of this file, and the files included with this file, are 
# subject to the current version of the RealNetworks Public Source License 
# Version 1.0 (the "RPSL") available at 
# http://www.helixcommunity.org/content/rpsl unless you have licensed 
# the file under the RealNetworks Community Source License Version 1.0 
# (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
# in which case the RCSL will apply. You may also obtain the license terms 
# directly from RealNetworks.  You may not use this file except in 
# compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
# applicable to this file, the RCSL.  Please see the applicable RPSL or 
# RCSL for the rights, obligations and limitations governing use of the 
# contents of the file.  
#  
# This file is part of the Helix DNA Technology. RealNetworks is the 
# developer of the Original Code and owns the copyrights in the portions 
# it created. 
#  
# This file, and the files included with this file, is distributed and made 
# available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
# EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
# INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
# FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
# 
# Technology Compatibility Kit Test Suite(s) Location: 
#    http://www.helixcommunity.org/content/tck 
# 
# Contributor(s): 
#  
# ***** END LICENSE BLOCK ***** 
# 

#
# This file contains python code that determines which files need
# to be installed for the current profile (feature set)
#
# Four lists are created: app_files, cfg_files, mdl_fils, lib_names
#
# Each list item is a full path to the file (path to module build output) 
# that needs to be installed
#
# app_files go to {app install dir}
# cfg_files go to {app install dir}\data
# lib_files go to {app install dir}\lib
# mdl_files go to {system dir}\recogs
#
# Each of these lists is mirrored by another list that contains paths
# to files that are output by 'make copy', i.e.:
#
# app_files_copy
# cfg_files_copy
# lib_files_copy
# mdl_files_copy
#


symbianPlayerMod = "clientapps\\symbianplayer"
symbianRecogMod = "clientapps\\symbianrecog"


#
# dirs where files to be installed are located
#
playerOutputDir = "%s\\%s\\%s\\" % (project.src_root_path, symbianPlayerMod, project.output_dir)
playerConfigDir = "%s\\%s\\config\\" % (project.src_root_path, symbianPlayerMod)
recogOutputDir = "%s\\%s\\%s\\" % (project.src_root_path, symbianRecogMod, project.output_dir)
# where 'copy' copies output (i.e., \debug or \release) 
makeCopyOutputDir = "%s\\" % (project.target_dir)

#
# app_files
#

# aif should be installed before app to work around Symbian installer bug
app_file_names = [ 'realplayer.aif',
                'realplayer.app',
	            'realplayer.rsc',
	            'realplayer_caption.rsc',
                'realplayer.mbm']

app_files = AddPrefixForEach(playerOutputDir, app_file_names)
app_files_copy = AddPrefixForEach(makeCopyOutputDir, app_file_names)


#
# cfg_files
#
cfg_file_names = [   'R1_Mobile_4_0.cfg',
	            'R1_Mobile_4_0_Operator.cfg',
	            'R1_Mobile_4_0_Factory.cfg']

cfg_files = AddPrefixForEach(playerConfigDir, cfg_file_names)
cfg_files_copy = AddPrefixForEach(makeCopyOutputDir, cfg_file_names)

#
# mdl_files
#
mdl_file_names = ['hxsymrecog.mdl']

mdl_files = AddPrefixForEach(recogOutputDir, mdl_file_names)
mdl_files_copy = AddPrefixForEach(makeCopyOutputDir, mdl_file_names)

#
# lib_files
#
lib_names = []

# some dlls like vidplin aggregate functionality offered individually with
# other dlls; this list tracks those dlls that can be removed from the list
# of dlls to install because another dll duplicates or replaces the functionality
lib_names_remove = []

# maps lib short name to where it is output when built/distributed
name_map = { 
'3gppttrenderer'    : 'datatype/3gpptext/renderer/[target]/3gppttrenderer.dll', 
'amrff'         : 'datatype/amr/fileformat/[target]amrff.dll',
'amrn'          : 'datatype/amr/codec/amr-nb/[target]/amrn.dll',
'amrw'          : 'datatype/amr/codec/amr-wb/[target]/amrw.dll',
'audplin'       : 'datatype/group/audio/[target]/audplin.dll',
'clntcore'      : 'client/core/[target]/clntcore.dll',
'comimgff'      : 'datatype/image/unified/fileformat/[target]/comimgff.dll',
'comimgrend'    : 'datatype/image/unified/renderer/[target]/comimgrend.dll',
'cook'          : 'datatype/rm/audio/codec/ra8lbr/[target]/cook.dll',
'drv2'          : 'datatype/rm/video/codec/rvg2dec/[target]/drv2.dll',
'drvc'          : 'datatype/rm/video/codec/rv89combo/[target]/drvc.dll',
'giffformat'    : 'datatype/image/gif/fileformat/[target]/giffformat.dll',
'gifrender'     : 'datatype/image/gif/renderer/[target]/gifrender.dll',
'h263render'    : 'datatype/h263/renderer/[target]/h263/renderer/[target]/h263render.dll',
'httpfilesys'   : 'filesystem/httplite/[target]/httpfilesys.dll',
'hxsdp'         : 'protocol/sdp/[target]/hxsdp.dll',
'mp3d'          : 'datatype/mp3/decoder/[target]/mp3d.dll',
'mp3fformat'    : 'datatype/mp3/fileformat/[target]/mp3fformat.dll',
'mp3render'     : 'datatype/mp3/renderer/[target]/mp3render.dll',
'mp4arender'    : 'datatype/mp4/audio/renderer/[target]/mp4arender.dll',
'mp4fformat'    : 'datatype/mp4/fileformat/[target]/mp4fformat.dll',
'mp4vrender'    : 'datatype/mp4/video/renderer/[target]/mp4vrender',
'rafformat'     : 'datatype/rm/fileformat/[target]/rafformat.dll',
'rarender'      : 'datatype/rm/audio/renderer/[target]/rarender.dll',
'rmfformat'     : 'datatype/rm/fileformat/[target]/rmfformat.dll',
'rv30'          : 'datatype/rm/video/codec/rv89combo/[target]/rv30.dll',
'rv40'          : 'datatype/rm/video/codec/rv89combo/[target]/rv40.dll',
'rvxrender'     : 'datatype/rm/video/renderer/[target]/rvxrender',
'sipr'          : 'datatype/rm/audio/codec/sipro/[target]/sipr.dll',
'smlfformat'    : 'datatype/smil/fileformat/[target]/smlfformat.dll',
'smlrender'     : 'datatype/smil/renderer/[target]/smlrender.dll',
'smplfsys'      : 'filesystem/local/[target]/smplfsys.dll',
'vidplin'       : 'datatype/group/video/[target]/vidplin.dll',
'vidsite'       : 'video/site/[target]/vidsite.dll'
}



#
# some helpers to reduce clutter...
#
def Add(*files):
    ''' add files to list of files to install '''
    global lib_names
    for f in files:
        lib_names.append(f)

def Remove(*files):
    ''' add files to list of files remove from install list '''
    global lib_names_remove
    for f in files:
        lib_names_remove.append(f)

def AddLocal(*files):
    ''' add files only if local playback feature supported'''
    if project.IsDefined("HELIX_FEATURE_PLAYBACK_LOCAL"):
        apply(Add, files)

def StripDupes(list):
	''' return new list with duplicates removed '''
	newList = []
	for item in list:
		if (item not in newList):
			newList.append(item)
	return newList

# always add client core dll
Add('clntcore')

if project.IsDefined("HELIX_FEATURE_PLAYBACK_LOCAL"):
    Add('smplfsys')

if project.IsDefined("HELIX_FEATURE_PLAYBACK_NET"):
    Add('hxsdp')
    Add('httpfilesys')

if project.IsDefined("HELIX_FEATURE_3GPP"):
    Add('amrn', 'amrw')
    Add('rv40')
    # audplin aggregates mp4arender and armff
    Add('audplin')
    Remove('mp4arender', 'amrff')
    AddLocal('mp4fformat')

if project.IsDefined("HELIX_FEATURE_VIDEO"):
    Add('vidsite', 'vidplin')
    # vidplin aggregates functionality for all these
    Remove('h263render', 'mp4vrender', 'rvxrender')

if project.IsDefined("HELIX_FEATURE_VIDEO_H263"):
    Add('h263render', 'rv40', 'drv2')

if project.IsDefined("HELIX_FEATURE_VIDEO_CODEC_RV20"):
    Add('rv40', 'drv2')

if project.IsDefined("HELIX_FEATURE_VIDEO_CODEC_RV30"):
    Add('rv40', 'drvc')

if project.IsDefined("HELIX_FEATURE_VIDEO_CODEC_RV40"):
    Add('rv40', 'drvc')
    Remove('rv30')

#if project.IsDefined("HELIX_FEATURE_VIDEO_MPEG4"):
#   Add('mp4vrender', 'rv40')

if project.IsDefined("HELIX_FEATURE_VIDEO_REAL"):
    AddLocal('rmfformat')
    Add('rvxrender')

if project.IsDefined("HELIX_FEATURE_AUDIO_REAL"):
    Add('rarender')
    AddLocal('rmfformat')

if project.IsDefined("HELIX_FEATURE_AUDIO_CODEC_GECKO"):
    Add('cook')

if project.IsDefined("HELIX_FEATURE_AUDIO_CODEC_SIPRO"):
    Add('sipr')

if project.IsDefined("HELIX_FEATURE_AUDIO_MPA_LAYER3"):
        AddLocal('mp3fformat')
        if project.IsDefined("HELIX_FEATURE_AUDIO_CODEC_MP3"):
                Add('mp3d')
        else:
                Add('mp3render')

if project.IsDefined("HELIX_FEATURE_SMIL2"):
    Add('smlrender', 'smlfformat', 'comimgrend', 
        'comimgff', 'gifrender', 'giffformat')

if project.IsDefined("HELIX_FEATURE_TIMEDTEXT"):
    Add('3gppttrenderer')

# remove duplicates that fall under multiple features; sort so we can find more easily
lib_names = StripDupes(lib_names)
lib_names.sort()

# remove redundant dlls
for f in lib_names_remove:
    if f in lib_names:
        lib_names.remove(f)

# replace '[target]' with target and add full path prefix to generate full path,
# e.g., '../../filesystem/local/thumb-rel/smpfsys.dll'
lib_files = []
for f in lib_names:
    path = name_map[f].replace('[target]',project.output_dir)
    path = os.path.join(project.src_root_path, path)
    path = os.path.normpath(path)
    lib_files.append(path)
    
# add make copy output dir prefix and .dll suffix, e.g. '../../debug/foo.dll'
lib_files_copy = []
for f in lib_names:
    path = os.path.join(makeCopyOutputDir, f)
    path += ".dll"
    path = os.path.normpath(path)
    lib_files_copy.append(path)


def GetInstallName(default):
    ''' create an install name that describes current profile (if possible) '''
    installName = default
    if project.IsDefined('HELIX_PROFILE_S60_ADVANCED'):
        installName = '%s-s60-advanced' % installName
    elif project.IsDefined('HELIX_PROFILE_S60_BASIC'):
        installName = '%s-s60-basic' % installName

    return installName

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?