📄 symbian-emulator-vc6.cf
字号:
if not project.BuildOption('static') and \ not project.BuildOption('suppress_nodefaultlibs'): pncrt_path = os.path.join(project.src_root_path, 'pncrt') ## somewhat nasty behavior because some of the umakefils ## modify this directly if project.target_type == "dll": if project.opt_target_name: implib_basename = project.opt_target_name else: implib_basename = project.target_name implib_basename = "%s.lib" % (implib_basename) if self.implib_file: implib_basename = os.path.basename(self.implib_file) implib_file = os.path.join(project.output_dir, implib_basename) arg_list.append("/IMPLIB:%s" % (implib_file)) ## write the .def file if project.target_type in ["dll"]: def_file = "%s.def" % (project.target_name) arg_list.append("/DEF:%s" % (def_file)) self.write_def_file(def_file) ## form link string if project.BuildOption('pdb'): arg_list.append("/PDB:%s.pdb" % (project.target_name)) project.AddCopyTargets("%s.pdb" % (project.target_name))# else:# arg_list.append("/PDB:NONE") return arg_list def LinkLIB(self, target_path, objects): cmd_list = [] arg_list = [ "/LIB", ## XXX: "/lib" must be the first argument! --JMP "/NOLOGO", "/OUT:%s" % (target_path), objects] cmd = "link %s" % (string.join(arg_list)) cmd_list.append(cmd) return cmd_list def CleanLIB(self, target_path): return [target_path] def LinkDLL(self, target_path, objects, static_libs, dynamic_libs): global project cmd_list = [] if project.BuildOption('debug'): dbg = "debug" epoclib = "EPOC32\Release\wins\UDEB" else: epoclib = "EPOC32\Release\wins\UDEB" dbg = "release" arg_list = ["/DLL", "/NODEFAULTLIB", "/MAP:%s.map" % (target_path), '/entry:"_E32Dll"', '/include:"?_E32Dll@@YGHPAXI0@Z"'] + self.option_arg_list() arg_list.append("/OUT:%s" % (target_path)) arg_list.append("edll.lib") arg_list.append(objects) arg_list.append(static_libs) arg_list.append(dynamic_libs) cmd = "python %s /LIBPATH:%s -basefile:%s -basedir:%s /base:0x60000000 %s" % ( os.path.join(BUILD_ROOT,"bin","pylink"), os.path.join(GetSDKPath('SYMBIANSDK'), epoclib), os.path.join(project.src_root_path,dbg,"rebase.lst"), project.module_directory(), string.join(arg_list)) cmd_list.append(cmd) return cmd_list def CleanDLL(self, target_path): list = [] list.append(target_path) return list def LinkEXE(self, target_path, objects, static_libs, dynamic_libs): if (project.BuildOption('make-app')): cmd_list = self.LinkSymbianPolyDll(target_path, "app", objects, static_libs, dynamic_libs) elif (project.BuildOption('make-mdl')): cmd_list = self.LinkSymbianPolyDll(target_path, "mdl", objects, static_libs, dynamic_libs) else: cmd_list = self.LinkSymbianExe(target_path, objects, static_libs, dynamic_libs) return cmd_list def LinkSymbianPolyDll(self, target_path, outExt, objects, static_libs, dynamic_libs): outExt = string.lower(outExt) baseName = re.match("^(.+)\.%s$" % outExt, target_path).group(1) cmd_list = [] if project.BuildOption('debug'): epoclib = "EPOC32\Release\wins\UDEB" else: epoclib = "EPOC32\Release\wins\UDEB" # Stage 1 link arg_list = self.option_arg_list() arg_list.append("/OUT:%s" % (target_path)) arg_list.append("/NODEFAULTLIB") arg_list.append("/SUBSYSTEM:windows") arg_list.append("/dll") arg_list.append('/entry:"_E32Dll"') arg_list.append("/LIBPATH:%s" % (os.path.join(GetSDKPath('SYMBIANSDK'), epoclib))) arg_list.append('/include:"?_E32Dll@@YGHPAXI0@Z"') arg_list.append(objects) arg_list.append(static_libs) arg_list.append(dynamic_libs) arg_list.append("edll.lib") cmd = "link %s" % (string.join(arg_list)) cmd_list.append(cmd) # Remove the .app file just generated cmd = "%s \"%s\"" % (platform.rm.cmd, target_path) cmd_list.append(cmd) # Remove the .exp file just generated cmd = "%s \"%s\"" % (platform.rm.cmd, baseName) arg_list = [] arg_list.append('/exports') arg_list.append('/out:"%s.inf"' % baseName) arg_list.append('"%s.lib"' % baseName) cmd = "dumpbin %s" % (string.join(arg_list)) cmd_list.append(cmd) # Remove the .lib file cmd = "%s \"%s.lib\"" % (platform.rm.cmd, baseName) cmd_list.append(cmd) arg_list = [] arg_list.append("-S makedef.pl") arg_list.append("-Inffile \"%s.inf\"" % baseName) if( outExt == "app"): arg_list.append("-1 ?NewApplication@@YAPAVCApaApplication@@XZ") elif( outExt == "mdl"): arg_list.append("-1 ?CreateRecognizer@@YAPAVCApaDataRecognizerType@@XZ") else: raise "don't know what to export for dll type '%s'" % outExt arg_list.append("\"%s.def\"" % baseName) cmd = "perl %s" %(string.join(arg_list)) cmd_list.append(cmd) # Remove the .inf file cmd = "%s \"%s.inf\"" % (platform.rm.cmd, baseName) cmd_list.append(cmd) # Stage 2 link arg_list = self.option_arg_list() arg_list.append("/OUT:%s" % (target_path)) arg_list.append("/NODEFAULTLIB") arg_list.append("/SUBSYSTEM:windows") arg_list.append("/MAP:%s.map" % (target_path)) arg_list.append("/dll") arg_list.append('/entry:"_E32Dll"') arg_list.append("/LIBPATH:%s" % (os.path.join(GetSDKPath('SYMBIANSDK'), epoclib))) arg_list.append('/include:"?_E32Dll@@YGHPAXI0@Z"') arg_list.append('/def:"%s.def"' % baseName) arg_list.append(objects) arg_list.append(static_libs) arg_list.append(dynamic_libs) arg_list.append("edll.lib") cmd = "link %s" % (string.join(arg_list)) cmd_list.append(cmd) return cmd_list def LinkSymbianExe(self, target_path, objects, static_libs, dynamic_libs): cmd_list = [] if project.BuildOption('debug'): epoclib = "EPOC32\Release\wins\UDEB" else: epoclib = "EPOC32\Release\wins\UDEB" arg_list = self.option_arg_list() arg_list.append("/OUT:%s" % (target_path)) arg_list.append("/NODEFAULTLIB") arg_list.append("/SUBSYSTEM:windows") arg_list.append("/MAP:%s.map" % (target_path)) arg_list.append('/entry:"_E32Startup"') arg_list.append("/LIBPATH:%s" % (os.path.join(GetSDKPath('SYMBIANSDK'), epoclib))) arg_list.append('/include:"?_E32Startup@@YGXXZ"') arg_list.append(objects) arg_list.append(static_libs) arg_list.append(dynamic_libs) arg_list.append("eexe.lib") cmd = "link %s" % (string.join(arg_list)) cmd_list.append(cmd) return cmd_list def CleanEXE(self, target_path): list = [] list.append(target_path) return listplatform.link = SymbianLinker()## symbols: keep symbols in release buildsif project.BuildOption('symbols'): platform.link.args['release'] = platform.link.args['release'] + ' /debug'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -