标签: waf

使用WAFF清洁时仅清洁特定目标

每当我将其称为“ waf clean”时,waf最终都会清除构建中的所有内容。我希望有一种方法可以告诉waf仅清理特定目标。这样,只要我想再次运行所有单元测试,就不必重建所有内容。

例如,

如果我具有以下文件夹结构:

src
   -acceptanceTests
   -applicationA
      -tests
   -shared
      -tests
Run Code Online (Sandbox Code Playgroud)

运行waf时,将构建applicationA并运行其所有测试。之后,我运行acceptanceTests,对applicationA进行更高级别的测试。然后,我去更改applicationA中的一些代码并重新编译。

然后,我想再次运行acceptanceTests,但是acceptanceTests都没有更改,因此waf将不会重建并运行它们。触发“清理干净”会清除applicationA,shared和acceptanceTests中的所有内容,这并不理想。相反,我希望能够运行“ waf cleanAcceptanceTests”命令,该命令仅应清除acceptanceTests目录。

waf

5
推荐指数
1
解决办法
415
查看次数

如何使用waf编译在运行时生成的c ++源文件?

我在源代码树中有protobuf原型文件.我想在每次更改和第一次运行时从proto文件生成源文件(例如,我创建新的原始文件).然后,我想从这些源文件中编译共享库并将它们保存在源代码树中.

实现目标的最佳方法是什么?

c++ waf

4
推荐指数
1
解决办法
808
查看次数

如何构建NS-3以使用C++ 0x/C++ 11库?

我需要在网络模拟器NS-3的代码中使用像unordered_map这样的数据结构.它使用waf builder来编译源代码.我很困惑,我应该在哪里添加-std = c ++ 0x添加到编译器标志?我尝试使用以下命令将其附加到主wscript文件中的CXXFlags:

module.env.append_value('CXXFLAGS', '-std=c++0x');
Run Code Online (Sandbox Code Playgroud)

但我仍然收到此错误:

此文件需要编译器和库支持即将推出的ISO C++标准C++ 0x.此支持目前是实验性的,必须使用-std = c ++ 0x或-std = gnu ++ 0x编译器选项启用.C/C++问题

我是否还应该将任何库添加到我的waf模块中?

PS:我的GCC版本是4.4

更新:更新到4.7后,我收到此错误:

error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉编译器使用0x而不是11?

c++ gcc waf ns-3 c++11

4
推荐指数
1
解决办法
4051
查看次数

Windows上有Node.js的node-waf吗?

我正在尝试使用以下命令从Node.js安装'png'模块:

npm install png

但是我收到以下错误:

node-waf配置构建

'node-waf'不被识别为内部或外部命令

我的问题是:Windows是否存在node-waf?

windows waf node.js npm

4
推荐指数
1
解决办法
5134
查看次数

如何确定waf选择的工具?

如何确定哪个特定工具选择为"cxx_compiler"等?免责声明:

def configure(ctx):
   print('Running ' + ctx.cmd + ' in ' + ctx.path.abspath() )
   ctx.load('compiler_c')
   ctx.load('compiler_cxx')

def build(ctx):
   print('Running ' + ctx.cmd + ' in ' + ctx.path.abspath() )
   # Here print which C++ compiler was chosen
   print 'Building cpp files with %s' % WHAT_GOES_HERE
Run Code Online (Sandbox Code Playgroud)

python build-process build waf

4
推荐指数
1
解决办法
1217
查看次数

怎么安装waf?

我已经waf使用以下方法克隆并构建了脚本:

./waf-light configure
Run Code Online (Sandbox Code Playgroud)

然后要构建我的项目(由Gomspace提供),我需要将waf和添加eclipse.py到我的路径中。到目前为止,我还没有找到比这个setenv脚本更好的:

WAFROOT=~/git/waf/
export PYTHONPATH=$WAFROOT/waflib/extras/:$PYTHONPATH
export PATH=~/git/waf/:$PATH
Run Code Online (Sandbox Code Playgroud)

调用方式:

source setenv
Run Code Online (Sandbox Code Playgroud)

这在某种程度上是一个非常丑陋的解决方案。有没有更优雅的方式来安装waf?

waf

4
推荐指数
2
解决办法
8336
查看次数

如何在waf构建系统中安装具有不同名称的库?

我想用waf构建一个库,但是使用与目标名称不同的名称安装它.看来你可以做到

bld.shlib(..., install_path='${PREFIX}/lib')
Run Code Online (Sandbox Code Playgroud)

但我需要能够做到这样的事情:

bld.shlib(..., install_as='${PREFIX}/lib/xyz')
Run Code Online (Sandbox Code Playgroud)

此外,bld.install_as()不会工作,因为它似乎不接受任务作为目标,我无法弄清楚如何将任务变成代表目标的节点,所以以下也不起作用:

tgt = bld.shlib(...)
bld.install_as('foo', tgt)
Run Code Online (Sandbox Code Playgroud)

或者,我需要能够禁用自动添加到库名称的"lib"前缀,但仅适用于这一个库 - 在构建期间不适用于所有库,例如:

bld.shlib(..., libprefix='', install_path="${PREFIX}/lib/")
Run Code Online (Sandbox Code Playgroud)

我知道你也可以设置shlib_PATTERN,但这似乎会影响当前环境下的所有库.我们有一个非常复杂的构建,它使用许多不同的环境来同时构建调试/发布,所以只是克隆当前环境并更改标志也不起作用,因为它克隆了默认环境,而不是最终构建目标的环境under(因为我们在构建期间克隆了每个环境的目标).

有什么想法吗?谢谢!

c++ python waf

3
推荐指数
1
解决办法
1471
查看次数

为什么在运行node-waf build之后会出现.lock-wscript文件

我跑后node-waf configurenode-waf build,一个.lock-wscript我的文件夹中显示,这是什么?即使我跑node-waf clean,它仍然存在.我应该保留还是删除它?

c++ waf node.js

3
推荐指数
1
解决办法
920
查看次数

WAF找不到现有的图书馆

我正在尝试为node.js编写C ++模块。节点正在使用waf作为构建器。

我想检查配置,如果库“ sigar”存在。我正在尝试这样做:

def configure(conf):
    conf.check_cxx(lib='sigar')
Run Code Online (Sandbox Code Playgroud)

当我运行“ node-waf configure”时,收到以下消息:

Checking for library sigar               : not found 
Run Code Online (Sandbox Code Playgroud)

但是libsigar.so存在:

# whereis libsigar
libsigar: /lib64/libsigar.so
Run Code Online (Sandbox Code Playgroud)

安装“ libsigar”库后,我还运行了ldconfig。节点模块可以编译,链接并正常工作。其他库,例如libm,libboost_system等,可以在configure上找到。

有人可以告诉我我在做什么错吗?除了仅将* .so复制到库路径并运行ldconfig之外,安装库还有什么特别的事情吗?

谢谢你的帮助。

c++ module shared-libraries waf node.js

3
推荐指数
1
解决办法
2822
查看次数

将额外参数传递给 Waf 脚本

我正在为我的项目使用 Waf 构建系统。我的项目中有一些依赖项,我并不总是希望链接和编译它们。我想知道是否有一种方法可以将额外的参数传递给 Waf 配置和 Waf 安装脚本,我可以在 wscript 中读取这些参数并确定是否需要编译某些可执行文件?

waf

3
推荐指数
1
解决办法
1402
查看次数

标签 统计

waf ×10

c++ ×5

node.js ×3

python ×2

build ×1

build-process ×1

c++11 ×1

gcc ×1

module ×1

npm ×1

ns-3 ×1

shared-libraries ×1

windows ×1