我刚刚开始探索柯南和cmake来构建和打包C ++文件。这是一个示例conanfile.py
from conans import ConanFile, CMake
class PocoTimerConan(ConanFile):
settings = "os", "compiler", "build_type", "arch"
requires = "Poco/1.7.8p3@pocoproject/stable"
generators = "cmake", "gcc", "txt"
default_options = {"Poco:shared": True, "OpenSSL:shared": True}
def imports(self):
self.copy("*.dll", dst="bin", src="bin") # From bin to bin
self.copy("*.dylib*", dst="bin", src="lib") # From lib to bin
def build(self):
cmake = CMake(self)
cmake.configure()
cmake.build()
是否有任何选择可以在不使用cmake的情况下进行构建。预先感谢。
答案 0 :(得分:1)
是的,柯南是Cross platform, build system agnostic
有list,具有所有可用的集成,其中包括MS Build,QMake和Autotools。
如果您不想使用集成工具,则可以直接运行构建命令,包括运行编译器命令:
def build(self):
self.run("gcc ...")
答案 1 :(得分:1)
不,Conan使用库使用的任何构建系统对其进行包装。在这种情况下,Poco使用的是CMake构建系统,因此CMake是构建它的必要条件。无法自动将给定的构建系统替换为另一个构建系统,因为该自动化系统不存在。
这并不意味着柯南需要CMake进行操作。 Conan可以使用任何构建系统,包括专有的构建系统。例如:
还要考虑到用于创建程序包的构建系统可能与使用该程序包的系统不同。柯南的“生成器”可以即时为消耗性的生成系统生成文件。
也许您对“需要构建”的概念感兴趣。您可以使用Conan自动将所需的cmake版本作为Conan软件包安装,并使用它,并将其自动注入到要构建的软件包中。查看文档of "build-requires" here