2017-07-19 1 views
2

私はコナンパッケージに入れようとしているサードパーティのバイナリを用意しています。バイナリはビルド構成のためのフォルダにあります:Linux32、Win32、Win64、Win32。conanを使用して既存のバイナリの複数の構成をパッケージ化する

私は、次のconanfile.pyを使用してWin64の構成にコナンのパッケージを生成することができました:

from conans import ConanFile 

class LibNameConan(ConanFile): 
    name = "LibName" 
    version = "1.1.1" 
    settings = "os", "compiler", "build_type", "arch" 
    description = "Package for LibName" 
    url = "None" 
    license = "None" 

    def package(self): 
     self.copy("*", dst="lib", src="lib") 
     self.copy("*.c", dst="include", src="include", keep_path=False) 

    def package_info(self): 
     self.cpp_info.libs = self.collect_libs() 

私はPowerShellで次のコマンドを実行します。Win64のために

conan install 
mkdir pkg 
cd pkg 
conan package .. --build_folder=../ 
cd .. 
conan export name/testing 
conan package_files libname/[email protected]/testing 

この期待どおりに動作します。 Win32バイナリで手順を繰り返すと、パッケージの別のハッシュが得られません。

私が実行して試してみました:

conan install -s arch=x86 

しかし、これはまだx86_64の構成と同じハッシュを有するパッケージになります。

既存のバイナリからパッケージを生成するために設定をどのように設定する必要がありますか?

答えて

4

あなたはちょうどあなたがレシピから構築する際にのみ関連しpackage()方法、なくて大丈夫です、事前に構築されたバイナリをパッケージ化している場合:あなたがパッケージ化するいくつかの重要な理由がない限り

from conans import ConanFile 

class LibNameConan(ConanFile): 
    name = "LibName" 
    version = "1.1.1" 
    settings = "os", "compiler", "build_type", "arch" 
    description = "Package for LibName" 
    url = "None" 
    license = "None" 

    def package_info(self): 
     self.cpp_info.libs = self.collect_libs() 

ソースもあまりにも依存関係をデバッグできるようにしたいのですか?その場合は、build_typeにご連絡ください。

しかし、これはほとんどあなたの質問には関係ありません。パッケージに依存関係がなく、ジェネレータも使用していないため、conan installは必要なく、そこで使用する設定は無効です。あなたはときpackage_filesバイナリ設定のための設定を指定する必要が

$ conan package_files libname/[email protected]/testing # using your default config 
$ conan package_files libname/[email protected]/testing -s arch=x86 # 32 bits instead of 64 
... 

おそらく推奨される方法は、プロファイルを使用することです:

$ conan package_files libname/[email protected]/testing # using your default profile 
$ conan package_files libname/[email protected]/testing -pr=myprofile2 

ドキュメントが最近再書き込みを持って、あなたはチェックしたいかもしれません:http://docs.conan.io/en/latest/packaging/existing_binaries.html

関連する問題