📄 symbian-emulator-winscw.cf
字号:
# -*- python -*-## ***** BEGIN LICENSE BLOCK *****# Version: RCSL 1.0/RPSL 1.0# # Portions Copyright (c) 1995-2004 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 *****# """Symbian winscw emulator .cf file. """exec_config_file('symbian.cf')platform.include_arg = '-I'platform.define_arg = '-D'platform.object_suffix = 'o'platform.shared_object_suffix = 'o'platform.path_sep = '/'## Symbian PCF file listplatform.pcf_prefix_list[-1:-1] = ['symbianwinscw']## Turn these on for emulator builds.project.AddDefines( '__CW32__', '__WINS__', )## Output directory setupif project.BuildOption("debug"): project.output_dir = "winscw-dbg32"else: project.output_dir = "winscw-rel32"## Add in the symbian WINS lib path.if project.BuildOption('debug'): for inc in ['EPOC32\Release\winscw\UDEB']: project.AddSystemPaths('"%s"' % os.path.join(GetSDKPath('SYMBIANSDK'), inc))else: for inc in ['EPOC32\Release\winscw\UREL']: project.AddSystemPaths('"%s"' % os.path.join(GetSDKPath('SYMBIANSDK'), inc))## Compiler Classclass SymbianCompiler(Compiler): def __init__(self): Compiler.__init__(self) def execute(self, target_file, src_file): extra_args = '' if project.target_type == 'dll': if self.args.has_key('dll'): extra_args = self.args['dll']# if project.build_choices.count('faacs') and \# project.target_type in ['dll', 'exe']:# extra_args = '%s /FAacs ' % (extra_args)# if project.build_choices.count('static'):# extra_args = '%s /MT' % (extra_args)# else:# if project.build_choices.count('force_static_runtime'):# extra_args = '%s /MT' % (extra_args)# else:# extra_args = '%s /MD' % (extra_args)# if project.build_choices.count('debug'):# extra_args = extra_args + 'd'# if project.build_choices.count('pdb'):# extra_args = '%s /Zi /Fd%s.pdb' % (extra_args, project.target_name)# elif project.build_choices.count('debug'):# extra_args = '%s /Z7' % (extra_args) return form_string( platform.form_var(self.make_var), platform.form_var(self.make_flags), extra_args, self.target_arg + target_file, self.source_arg, src_file)## instance Window compiler objectplatform.cc = SymbianCompiler()platform.cxx = SymbianCompiler()cc = platform.cccxx = platform.cxxcxx.cmd = cc.cmd = 'mwccsym2'cxx.source_arg = cc.source_arg = '-c 'cxx.target_arg = cc.target_arg = '-o 'cxx.make_var = cc.make_var = 'CC'cxx.make_flags = 'CXXFLAGS'cc.make_flags = 'CCFLAGS'cxx.include_arg = cc.include_arg = '-I'# It's important not to accidentally get the standard MSVC includes in# here, so add /X to make sure we don't get MS include dirs.# Also turn off _WIN32, _M_IX86 and _WINDOWScxx.args['default'] = '-wchar_t off -nostdinc -align 4 -dialect c++ -nosyspath -warnings off -cpp_exceptions off -U_WIN32 -U_M_IX86 -U_WINDOWS -U__MWERKS__ 'cc.args['default'] = '-wchar_t off -nostdinc -align 4 -dialect c++ -nosyspath -warnings off -cpp_exceptions off -U_WIN32 -U_M_IX86 -U_WINDOWS -U__MWERKS__ 'cxx.args['debug'] = cc.args['debug'] = '-opt off'## no_optimize: no optimization on releasefor inc in ['EPOC32\include',if project.BuildOption('no_optimize'): cc.args['release'] = ''else: cc.args['release'] = '-opt space'## no_optimize: no optimization on release buildsif project.BuildOption('nt_stackframe'): cc.args['release'] = ''else: cc.args['release'] = '-opt space'## symbols: add symbols to release builds#if project.BuildOption('symbols') and not project.BuildOption('pdb'):# cc.args['release'] = '%s /Z7' % (cc.args['release'])cxx.args['release'] = cc.args['release']class SymbianLinker(Linker2): def __init__(self): Linker2.__init__(self) ## these are here to emulate the old linker class ## for Umakefil/*.pcf files which do direct modification ## of this class self.def_file = "" self.implib_file = "" self.args = {} self.args["default"] = "" self.args["debug"] = "-sym on"# self.args["release"] = "/OPT:REF" self.args["dll"] = "" def read_ordinal_file(self, path): fil = open(path, "r") sym_ord_list = [] for line in fil.readlines(): field_list = string.split(line) symbol = string.strip(field_list[1]) ordinal = string.strip(field_list[0]) sym_ord_list.append((symbol, ordinal)) return sym_ord_list def write_def_file(self, path): fil = open(path, 'w') fil.write('DESCRIPTION\t\'Symbian Helix Player\'\n')# fil.write('HEAPSIZE\t1024\n') ordinalFilename = "%s_ordinal.dat" % project.target_name if project.target_type == "dll": ## exported functions fil.write("EXPORTS\n") ## check for the data file which defines ordinally-exported ## methods/functions if project.BuildOption("ordinal") and \ os.path.isfile(ordinalFilename): for (symbol, ordinal) in self.read_ordinal_file(ordinalFilename): fil.write("\t%s @%s NONAME\n" % (symbol, ordinal)) fil.close() def option_arg_list(self): arg_list = [# "/MACHINE:i386",# "/INCREMENTAL:no" "-search" ] if project.target_type == "dll": arg_list.append("-subsystem windows") arg_list.append("-export dllexport") arg_list.append("-nocompactimportlib") ## add any arguments from old build option/argument hash for choice in project.build_choices: try: temp = string.split(self.args[choice]) arg_list = arg_list + temp except KeyError: pass ## generate map files if "map" option selected if project.BuildOption('map') and \ project.target_type in ["dll", "exe"]: arg_list.append("-g -osym ") base, ext = os.path.splitext(project.OutputName()) temp = os.path.join(project.output_dir, "%s.map" % (base)) project.AddCopyTargets(temp)# if not project.BuildOption('static') and \# not project.BuildOption('suppress_nodefaultlibs'):
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -