【发布时间】:2015-08-27 02:07:35
【问题描述】:
我想在构建发布配置文件时使用依赖项中的功能,并且我不想在测试/开发时使用任何功能。
例如,依赖通常定义为:
[depenencies.my_dep]
version = "*"
但是当我构建发布配置文件时,我希望它是
[depenencies.my_dep]
version = "*"
features = [my_feature]
从货物文档中我可以看出,这只能针对平台目标实现。有没有办法为基于配置文件的配置做到这一点?
【问题讨论】:
-
虽然不是您问题的完美答案,但
cfg(debug_assertions)宏的源代码中使用了类似cfg(debug_assertions)的东西,它基于调试和发布模式进行条件编译。在阅读这里的帖子users.rust-lang.org/t/conditional-compilation-for-debug-release/… 后,我曾经使用过它 -
这听起来是个坏主意...为什么不想发布您测试的相同代码?
-
我使用一个板条箱来执行一些分散的网络操作。因此,当我们开发时,我使用库的模拟网络功能进行开发和测试。然后连接到实际网络进行最终测试和发布
-
虽然它不是你要找的东西,但为什么不直接使用
default-features = ["my_feature"]并在开发时使用cargos 标志--no-default-features? -
一个很好的例子是 Amethyst 的
no-slow-safety-checks功能(技术上是 Rendy)。为发布版本启用此功能会很好,但不适用于调试版本book.amethyst.rs/stable/appendices/c_feature_gates.html
标签: rust rust-cargo