用 SCons 构建 SWIG 项目
来源:互联网 发布:sql替换某个字符 编辑:程序博客网 时间:2024/06/06 01:34
用 SCons 构建 SWIG 项目
( WuErPing 2009/02/10 )
scons是个好东西,swig也是个好东西,两个好东西加起来如何 ?
本文所用开发环境:
swigwin-1.3.38 http://www.swig.org./
SCons 1.2.0.d20090113 http://www.scons.org/
python 2.6.1 http://www.python.org/
lua 5.1.4 http://www.lua.org/
vc2008+sp1
操作步骤:
1、确认自己已经设置好相应的path
2、Visual Studio 2008 Command Prompt
3、scons.py
4、runme.py/runme.lua
SConstruct:
1 # swig 生成 python 扩展
2 # 已测试
3 # swigwin-1.3.38/Examples/python/simple
4 # swigwin-1.3.38/Examples/python/std_map
5 # swigwin-1.3.38/Examples/python/std_vector
6 # swigwin-1.3.38/Examples/python/callback
7
8 import os,shutil
9
10 env = Environment()
11 env.Append(ENV = os.environ)
12 env.AppendUnique(CXXFLAGS=Split("/EHsc /MD"))
13 env.Append(CPPPATH = [r'C:/Script/Python26/include'])
14 env.Append(LIBPATH = [r'C:/Script/Python26/libs'])
15 env.AppendUnique(SWIGFLAGS = ['-c++', '-python'])
16 #env.AppendUnique(SWIGFLAGS = ['-python'])
17 env.AppendUnique(SHLIBSUFFIX = [''])
18
19 s = env.SharedLibrary('_example.dll', ['example.i'])
20
21 def DllToPyd(**v):
22 dll = str(v["target"][0]);
23 pyd = dll.replace(".dll", ".pyd");
24 shutil.move(dll, pyd)
25
26 env.AddPostAction(s, env.Action(DllToPyd))
27
28
2 # 已测试
3 # swigwin-1.3.38/Examples/python/simple
4 # swigwin-1.3.38/Examples/python/std_map
5 # swigwin-1.3.38/Examples/python/std_vector
6 # swigwin-1.3.38/Examples/python/callback
7
8 import os,shutil
9
10 env = Environment()
11 env.Append(ENV = os.environ)
12 env.AppendUnique(CXXFLAGS=Split("/EHsc /MD"))
13 env.Append(CPPPATH = [r'C:/Script/Python26/include'])
14 env.Append(LIBPATH = [r'C:/Script/Python26/libs'])
15 env.AppendUnique(SWIGFLAGS = ['-c++', '-python'])
16 #env.AppendUnique(SWIGFLAGS = ['-python'])
17 env.AppendUnique(SHLIBSUFFIX = [''])
18
19 s = env.SharedLibrary('_example.dll', ['example.i'])
20
21 def DllToPyd(**v):
22 dll = str(v["target"][0]);
23 pyd = dll.replace(".dll", ".pyd");
24 shutil.move(dll, pyd)
25
26 env.AddPostAction(s, env.Action(DllToPyd))
27
28
1 # swig 生成 lua 扩展
2 # 已测试
3 # swigwin-1.3.38/Examples/lua/class
4
5 import os,shutil
6
7 env = Environment()
8 env.Append(ENV = os.environ)
9 env.AppendUnique(CXXFLAGS=Split("/EHsc /MT"))
10 env.Append(CPPPATH = [r'C:/Script/Lua/5.1/include'])
11 env.Append(LIBPATH = [r'C:/Script/Lua/5.1/lib'])
12 env.Append(LIBS = ["lua51.lib"]);
13 env.AppendUnique(SWIGFLAGS = ['-c++', '-lua'])
14 #env.AppendUnique(SWIGFLAGS = ['-lua'])
15 env.AppendUnique(SHLIBSUFFIX = [''])
16
17 s = env.SharedLibrary('example.dll', ['example.cxx','example.i'])
18
2 # 已测试
3 # swigwin-1.3.38/Examples/lua/class
4
5 import os,shutil
6
7 env = Environment()
8 env.Append(ENV = os.environ)
9 env.AppendUnique(CXXFLAGS=Split("/EHsc /MT"))
10 env.Append(CPPPATH = [r'C:/Script/Lua/5.1/include'])
11 env.Append(LIBPATH = [r'C:/Script/Lua/5.1/lib'])
12 env.Append(LIBS = ["lua51.lib"]);
13 env.AppendUnique(SWIGFLAGS = ['-c++', '-lua'])
14 #env.AppendUnique(SWIGFLAGS = ['-lua'])
15 env.AppendUnique(SHLIBSUFFIX = [''])
16
17 s = env.SharedLibrary('example.dll', ['example.cxx','example.i'])
18
- 用 SCons 构建 SWIG 项目
- 用 SWIG 构建 PHP 扩展
- 用 SWIG 构建 PHP 扩展
- 好用的程序构建工具scons
- linux下使用Scons构建自己的项目程序
- [转] 用 SWIG 构建 PHP 扩展
- Scons软件构建工具
- scons构建系统
- scons构建入门
- scons快速构建c++
- 利用scons构建工程
- RTTHREAD scons构建环境
- 利用scons构建工程
- SWIG构建Jni代码
- 使用scons构建windows程序
- 使用SCons轻松构建程序
- 使用scons构建windows程序
- 使用Scons软件构建工具
- 像素级的碰撞测试
- 使用XFire+Spring构建Web Service
- 怎样把rmvb文件刻录成能在DVD播放机上播放的DVD光盘?
- 简单的3层架构底层书写
- SSO解决方案大全
- 用 SCons 构建 SWIG 项目
- 笑话对白
- Mac OS X 下配置android环境变量
- 出现ASP_NET用户无法登陆的状况
- 使用事务时应该避免的陷井
- EJB3.0获取JNDI上下文的两种方法
- 用jQuery合并表格中相同文本的相邻单元格
- 嵌入式中地址-函数之间的转换
- Hibernate Open-Session-In-View Pattern