【问题标题】:Is there is any way to build the Conan without cmake有什么方法可以在没有 cmake 的情况下构建柯南
【发布时间】:2025-12-23 06:55:11
【问题描述】:

我刚刚开始探索 conan 和 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 的情况下构建相同的版本。提前致谢。

【问题讨论】:

  • introduction 中他们说:“柯南适用于任何构建系统。在文档中,CMake 将被广泛使用,因为它是可移植的并且众所周知。但是柯南根本不依赖 CMake;这不是必需的。”所以是的,你可以在没有 CMake 的情况下使用柯南。

标签: cmake conan


【解决方案1】:

是的,柯南是Cross platform, build system agnostic

list 提供所有可用的集成,包括 MS Build、QMake 和 Autotools。

如果不想使用集成工具,可以直接运行构建命令,包括运行编译命令:

def build(self):
    self.run("gcc ...")

【讨论】:

    【解决方案2】:

    不,柯南使用图书馆使用的任何构建系统,包装它。在这种情况下,Poco 使用的是 CMake 构建系统,因此需要 CMake 来构建它。不可能用另一个自动替换给定的构建系统,这种自动化水平不存在。

    这并不意味着柯南需要 CMake 才能运行。柯南可以使用任何构建系统,包括专有系统。例如:

    另外,请注意用于创建包的构建系统可能与使用该包的构建系统不同。柯南“生成器”可以即时为消费构建系统生成文件。

    也许您对“构建要求”的概念感兴趣。您可以使用 Conan 自动将您想要的 cmake 版本安装为 Conan 包,并使用它,将其自动注入到要构建的包中。查看文档of "build-requires" here

    【讨论】:

      最近更新 更多