2017-03-10 5 views
0

Ich versuche Conan zu verwenden, um einige Dateien und ausführbare Dateien für die Versionskontrolle zusammen zu packen, aber nach der Betrachtung der Conan-Dokumentation ist mir immer noch unklar, wie dies zu tun ist oder ob Conan das richtige Werkzeug ist für die Arbeit.Fehler beim Erstellen des Conan-Pakets

Grundsätzlich möchte ich 3 .dll-Dateien, eine Konfigurationsdatei und 2 ausführbare Dateien (OpenSSL und die .exe schrieb ich, die alle der oben genannten Abhängigkeiten erfordert). Alles, was ich verpacken möchte, lebt lokal auf dem Desktop. Wenn irgendjemand da draußen in Conan erfahren würde, dass er mich in die richtige Richtung lenken könnte, würde ich das sehr schätzen. Vielen Dank!!

Antwort

1

Normalerweise möchten Sie Binärdateien, Bibliotheken und ausführbare Dateien nicht in der Versionskontrolle überprüfen, sondern sie anderswo wie einen Dateiserver hosten. Wenn Sie conan verwenden, können Sie den vorhandenen kostenlosen Service conan.io für öffentliche Pakete, den OSS conan_server für das lokale Hosting Ihrer privaten Pakete oder Artifactory verwenden.

Wenn Ihre Artefakte nur auf Ihrem Desktop leben, auf einem bekannten Ordner, alles, was Sie tun müssen, ist in dem Paket Rezept etwas wie die folgenden build() Methode implementieren:

def build(self): 
    shutil.copytree("C:/Path/to/folder/with/files", ".") 

def package(self): 
    # make sure files are now copied into the package 
    self.copy("*.lib", dst="lib", src="files") 
    self.copy("*.dll", dst="bin", src="files") 
    self.copy("*.conf", dst="", src="files") 

Wenn Sie ein Paket bieten nur für eine bestimmte Konfiguration, würde ich einen Scheck in configure() klar Ausgangspotential Verbraucher Inkompatibilitäten dieses Paket hinzufügen:

class MyRecipe(ConanFile): 
    settings = "os", "compiler", "arch", "build_type" 

    def configure(self): 
     if self.settings.os != "Windows" or self.settings.arch != "x86_64" or \ 
      self.settings.build_type != "Release" or ... : 
      raise Exception("This package does not support this configuration") 
+0

Dank drodri, diese Dinge klarer macht. – Stefan

Verwandte Themen