build a tool in scons, then using it

原创 2004年11月01日 16:29:00
from ::URL::


One fairly common requirement in builds is to create some tool from source code, and then use that tool as part of the build to generate other files. This example shows how to do that, with thanks to Gary Oberbrunner. The tool to be generated is named mk_vds, and is built from the source file mk_vds.c. Then .txt input files are used by mk_vds to generate .vds files. 

# SConstruct file 
# Create the mk_vds generator tool 
mk_vds_tool = env.Program(target= 'mk_vds', source = 'mk_vds.c') 
# This emitter will be used later by a Builder, and has an explcit dependency on the mk_vds tool 
def mk_vds_emitter(target, source, env): 
    env.Depends(target, mk_vds_tool) 
    return (target, source) 
# Create a builder (that uses the emitter) to build .vds files from .txt files 
# The use of abspath is so that mk_vds's directory doesn't have to be added to the shell path. 
bld = Builder(action = mk_vds[0].abspath + ' < $SOURCE > $TARGET', 
              emitter = mk_vds_emitter, 
              suffix = '.vds', src_suffix = '.txt') 
# Add the new Builder to the list of builders 
env['BUILDERS']['MK_VDS'] = bld 
# Generate foo.vds from foo.txt using mk_vds 

If you look at the resulting dependency tree you can see it works: 

% scons --debug=tree foo.vds 


目录: 第一章:编译和安装SCons 第二章:简单编译 第三章:编译相关的一些事情 第四章:编译和链接库文件 第五章:节点对象 第六章:依赖性 第七章:环境 第八章:自动将命令行选项赋...
  • jllongbell
  • jllongbell
  • 2018年01月08日 13:54
  • 44

SCons: A software construction tool

SCons: A software construction toolWhat is SCons?SCons is an Open Source software construction tool—...
  • timesking
  • timesking
  • 2008年11月13日 20:10
  • 300


  • xiaoxinyu316
  • xiaoxinyu316
  • 2016年12月01日 23:27
  • 996

U3D插件 Build Report Tool 自述文件

Build Report Tool README生成报告工具自述文件您的游戏版本想试图减少小于 50 MB 吗?需要去看,你的资产正在吃占用的磁盘空间?此工具提供了一个很好前端为Unity的生成信息。...
  • u010019717
  • u010019717
  • 2015年03月26日 22:24
  • 4009

VS2017 Scons编译MongoDB C++ driver legacy-1.0.5

1:安装scons 略 2:scons参数:这样的话,寻找boost库是以静态库的方式编译进去的,而不用动态查找boost库,否则会报错:boost_date_time-vc140-mt-g...
  • qq_19399235
  • qq_19399235
  • 2017年04月06日 01:50
  • 470

Error:Could not run build action using Gradle installation

错误内容: Error:Could not run build action using Gradle installation ‘D:\AndroidStudio\AS2.x\gradle\gra...
  • liugec
  • liugec
  • 2017年05月08日 21:37
  • 2831

idea 或 Android Studio 报错 Error:Could not run build action using Gradle installation

原址:点击打开链接 Try this: 1) File -> Invalidate caches / Restart 2) Shutdown Android Studio 3) Remo...
  • u011461420
  • u011461420
  • 2016年04月14日 14:18
  • 10414

[笔记]如何解决Your project contains C++ files but it is not using a supported native build system

最近因为项目需要下载Android终端模拟器(Android-Terminal-Emulator)源码进行调试编译,编译过程中出现报错 Error:Execution failed for ta...
  • SweetTool
  • SweetTool
  • 2017年05月08日 22:06
  • 11572

android studio报错:Could not execute build using Gradle installation

问题出现在更新到gradle1.8之后。 报错信息主要是  Could not execute build using Gradle installation '/Users/Admin/.grad...
  • qihigh
  • qihigh
  • 2013年11月04日 15:33
  • 3890

build lua5.2.3 on windows by scons

由于 lua 源码包中只提供了 Makfile,并未提供 windows 下的 build 文件,故此用scons来编译生成 library 和 解释器,非常简单 1. 安装 Scons ------...
  • fanyamin
  • fanyamin
  • 2014年01月16日 14:56
  • 2312
您举报文章:build a tool in scons, then using it