我想为自动工具和基于conan的c++项目设置安装路径。我知道-前缀是作为参数传递的。我正在寻找一个AutoToolsBuildEnvironment类型对象的字段,它与我们在cmake.definitions'CMAKE_INSTALL_PREFIX‘= 'tempFolder'中的内容相当。
发布于 2022-10-25 13:44:42
我知道-前缀是作为参数传递的.
好的。
我正在寻找一个与我们在cmake.definitions'CMAKE_INSTALL_PREFIX‘= 'tempFolder'中的变量等价的变量
柯南的AutoToolsBuildEnvironment
没有提供一个,对不起。Conan的构建助手的目标似乎不是为各种构建系统提供统一的、高级别的抽象,而是为它们提供一个接近本地的API。当然,这种方法有好处也有缺点,但选择不在你的控制范围之内。
Autotools的结构与CMake不同,因此,Conan的AutoToolsBuildEnvironment
助手的结构与其CMake
助手的结构不同,这一点也就不足为奇了。在AutoToolsBuildEnvironment
中,指定包安装前缀的方法是通过configure()
方法的一个参数:
autotools = AutoToolsBuildEnvironment()
autotools.configure(args=["--prefix=/usr"])
# ...
既然你已经知道了,你就领先了一步。
如果您真的非常希望能够通过构建助手上的变量设置安装前缀,那么您可以在AutoToolsBuildEnvironment
的子类中自己实现该特性。
附录
虽然您在评论中表示您的兴趣是AutoToolsBuildEnvironment
,但也许应该考虑一下它的替代品,AutotoolsToolchain
。这里的情况类似,类在Autotools上提供了一个与它们的CLI非常匹配的API,但是如何提供它的细节可能更适合您。
特别是,AutotoolsToolchain
实例有一个列表值的configure_args
成员,其中可以设置Autotools configure
脚本的参数。默认情况下,它已经包含了一个--prefix
设置,但是如果这不合适,那么您应该能够添加一个您更喜欢的设置,或者用更多的精力替换默认的设置。
https://stackoverflow.com/questions/74199630
复制