2008-05-04
编译pygame的wince版本
关键字: 开发
预先准备的包参见前一篇文章。(包括需要copy的目录和文件)
1. 下载并编译SDL 1.2.13
2. 对Pygame的代码进行修改:去掉signal.h,long long.(去掉Longlong会对transform有影响,不过暂时用不到,不知道有没有更好的解决方案)
3. 将编译wince需要的文件copy到pygame/ce下
4. 修改SConstruct文件如下:
5. 执行scons.py
6. 将生成的pyd文件替换到windows版本的pygame中,然后去掉无用的.dll文件,将新的pygame复制到wince的python25/lib下,即可
1. 下载并编译SDL 1.2.13
2. 对Pygame的代码进行修改:去掉signal.h,long long.(去掉Longlong会对transform有影响,不过暂时用不到,不知道有没有更好的解决方案)
3. 将编译wince需要的文件copy到pygame/ce下
4. 修改SConstruct文件如下:
class CEBuildEnvironment(Environment):
def __init__(self):
Environment.__init__(self,
MSEVC_PLATFORM = 'POCKET PC 2003',
MSEVC_SUBPLATFORM = 'Win32 (WCE ARMV4)',
tools = ['mslink', 'msevc', 'zip'],
toolpath = '.'
)
class PythonCEBuildEnvironment(CEBuildEnvironment):
def __init__(self):
CEBuildEnvironment.__init__(self)
self.Append(CPPDEFINES = ['WIN32'],
LIBS=["python25","SDL"],
CPPPATH=["include","../../SDL-1.2.13/include"],
LIBPATH=["lib","../../SDL-1.2.13/VisualCE/SDL/Pocket PC 2003 (ARMV4)/Debug"])
def PythonExtension(self, target, sources, **kw):
self.SharedLibrary(target, sources, SHLIBSUFFIX='.pyd', **kw)
lines = """
base src/base.c $(SDL) $(DEBUG)
#cdrom src/cdrom.c $(SDL) $(DEBUG)
constants src/constants.c $(SDL) $(DEBUG)
display src/display.c $(SDL) $(DEBUG)
event src/event.c $(SDL) $(DEBUG)
fastevent src/fastevent.c src/fastevents.c $(SDL) $(DEBUG)
key src/key.c $(SDL) $(DEBUG)
mouse src/mouse.c $(SDL) $(DEBUG)
rect src/rect.c $(SDL) $(DEBUG)
rwobject src/rwobject.c $(SDL) $(DEBUG)
surface src/surface.c src/alphablit.c src/surface_fill.c $(SDL) $(DEBUG)
surflock src/surflock.c $(SDL) $(DEBUG)
time src/time.c $(SDL) $(DEBUG)
joystick src/joystick.c $(SDL) $(DEBUG)
draw src/draw.c $(SDL) $(DEBUG)
image src/image.c $(SDL) $(DEBUG)
overlay src/overlay.c $(SDL) $(DEBUG)
transform src/transform.c src/rotozoom.c src/scale2x.c $(SDL) $(DEBUG)
mask src/mask.c src/bitmask.c $(SDL) $(DEBUG)
bufferproxy src/bufferproxy.c $(SDL) $(DEBUG)
pixelarray src/pixelarray.c $(SDL) $(DEBUG)
"""
env = PythonCEBuildEnvironment()
for l in lines.splitlines():
if l.startswith('#'): continue
names = l.split(' ')
fns = ['../' + x for x in names[1:-2]]
env.PythonExtension("build/%s.pyd" % names[0], fns)
5. 执行scons.py
6. 将生成的pyd文件替换到windows版本的pygame中,然后去掉无用的.dll文件,将新的pygame复制到wince的python25/lib下,即可
发表评论
- 浏览: 4517 次
- 性别:

- 来自: 北京

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
jboss rules brms和ruleAg ...
楼主能把完整的文档贴出来吗
-- by dong_ta -
jboss rules brms和ruleAg ...
我用代理怎么老是出现这种错误啊!麻烦给指点一下哈!我的版本一致. RuleAge ...
-- by chunchun_1010 -
jboss rules brms和ruleAg ...
我在创建新的Rule时,在"Add a condition to the rul ...
-- by myim -
我的第一个Ajax Wicket ...
个人感觉javaeye的圈子似乎有些冷清。我觉得可能跟javaeye即有圈子,又 ...
-- by tailorcai -
我的第一个Ajax Wicket ...
为啥不加入wicket的圈子,然后把这两篇文章放到圈子博客里呢
-- by fakechris






评论排行榜