Есть ли способ собрать Конана без cmake?

Я только начал изучать как 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. Заранее спасибо.


person rams    schedule 06.11.2019    source источник
comment
В введении говорится: Conan работает с любой системой сборки< /б>. В документации будет широко использоваться CMake, поскольку он переносим и хорошо известен. Но Conan вообще не зависит от CMake; это не требование. Так что да, вы можете использовать Conan без CMake.   -  person Tsyvarev    schedule 06.11.2019


Ответы (2)


Да, Conan независим от платформы, система сборки независима

Существует список со всеми доступными интеграциями, включая MS Build, QMake и Автоинструменты.

Если вы не хотите использовать инструменты интеграции, вы можете запустить непосредственно команды сборки, включая запуск команд компилятора:

def build(self):
    self.run("gcc ...")
person uilianries    schedule 06.11.2019

Нет, Конан использует любую систему сборки, которую использует библиотека, обертывая ее. В этом случае Poco использует систему сборки CMake, поэтому для ее сборки необходим CMake. Невозможно автоматически заменить данную систему сборки другой, такого уровня автоматизации не существует.

Это не означает, что Конану для работы нужен CMake. Conan может работать с любой системой сборки, включая проприетарные. Например:

Кроме того, примите во внимание, что система сборки, используемая для создания пакета, может отличаться от той, которая используется для этого пакета. «Генераторы» Конана могут генерировать файлы для потребляющей системы сборки на лету.

Может быть, вас интересует концепция «сборка требует». Вы можете использовать Conan для автоматической установки нужной версии cmake в качестве пакета Conan и использовать ее, автоматически внедряя ее в пакеты для сборки. Ознакомьтесь с документацией здесь

person drodri    schedule 06.11.2019