コード例 #1
0
username = os.getenv('CONAN_USERNAME', 'jjones646')
os.environ['CONAN_USERNAME'] = username
channel = os.getenv('CONAN_CHANNEL', 'stable')
os.environ['CONAN_CHANNEL'] = channel
log_run = os.getenv('CONAN_LOG_RUN_TO_FILE', '1')
os.environ['CONAN_LOG_RUN_TO_FILE'] = log_run


def get_builds_with_options(builder):
    builds = []
    for settings, options, env_vars, build_requires in builder.builds:
        builds.append([settings, {'benchmark:enable_lto': True}, env_vars, build_requires])
        builds.append([settings, {'benchmark:enable_lto': False}, env_vars, build_requires])
        builds.append([settings, {'benchmark:enable_exceptions': True}, env_vars, build_requires])
        builds.append([settings, {'benchmark:enable_exceptions': False}, env_vars, build_requires])
    return builds

if __name__ == '__main__':
    builder = ConanMultiPackager(
        gcc_versions=['5', '6', '7'],
        apple_clang_versions=['8.0', '8.1', '9.0'],
        visual_versions=['14', '15'],
        archs=['x86_64', 'x86'],
        username=username,
        channel=channel,
        reference='benchmark/1.4.0',
    )
    builder.add_common_builds(pure_c=False)
    builder.builds = get_builds_with_options(builder)
    builder.run()
コード例 #2
0
 def test_upload_false(self):
     packager = ConanMultiPackager("--build missing -r conan.io",
                                        "lasote", "mychannel", upload=False)
     self.assertFalse(packager._upload_enabled())
コード例 #3
0
ファイル: build.py プロジェクト: odant/conan-cityhash
# Build Conan package
# Dmitriy Vetutnev, ODANT, 2020

from conan.packager import ConanMultiPackager
import os

env_pure_c = os.getenv("CONAN_PURE_C", True)
pure_c = True if str(env_pure_c).lower() != "false" else False

if __name__ == "__main__":
    builder = ConanMultiPackager(exclude_vcvars_precommand=True)
    builder.add_common_builds(pure_c=pure_c)
    builder.remove_build_if(
        lambda build: build.settings.get("compiler.libcxx") == "libstdc++")
    builder.run()
コード例 #4
0
import os
from conan.packager import ConanMultiPackager

if __name__ == "__main__":
    builder = ConanMultiPackager(
        username="******",
        channel="stable",
        remotes="https://api.bintray.com/conan/bitprim/bitprim",
        archs=["x86_64"])

    builder.add_common_builds(shared_option_name="bitprim-node-cint:shared")

    filtered_builds = []
    for settings, options, env_vars, build_requires in builder.builds:
        if settings["build_type"] == "Release" \
                and not options["bitprim-node-cint:shared"] \
                and (not "compiler.runtime" in settings or not settings["compiler.runtime"] == "MT"):

            env_vars["BITPRIM_BUILD_NUMBER"] = os.getenv(
                'BITPRIM_BUILD_NUMBER', '-')

            filtered_builds.append(
                [settings, options, env_vars, build_requires])

    builder.builds = filtered_builds
    builder.run()
コード例 #5
0
ファイル: build.py プロジェクト: BeamMyUp/Sparkles
from conan.packager import ConanMultiPackager
import os, platform

if __name__ == "__main__":
    builder = ConanMultiPackager(args="--build missing")
    builder.add_common_builds()
    filtered_builds = []
    for settings, options, env_vars, build_requires in builder.builds:
        if not (settings["arch"] == "x86"):
            filtered_builds.append(
                [settings, options, env_vars, build_requires])
    builder.builds = filtered_builds
    builder.run()
コード例 #6
0
from conan.packager import ConanMultiPackager


if __name__ == "__main__":
    builder = ConanMultiPackager(username="******", channel="testing")
    builder.add_common_builds(shared_option_name="libzmq:shared")
    builder.run()
コード例 #7
0

if __name__ == "__main__":
    header_only = False
    name = get_name_from_recipe()
    version = get_version_from_recipe()
    reference = "{0}/{1}".format(name, version)
    username = "******"
    login_username = "******"
    upload_remote = "https://api.bintray.com/conan/conan-community/{0}".format(
        username)

    builder = ConanMultiPackager(stable_branch_pattern="stable/*",
                                 upload_only_when_stable=True,
                                 username=username,
                                 login_username=login_username,
                                 reference=reference,
                                 upload=upload_remote,
                                 remotes=upload_remote)

    if header_only:
        filtered_builds = []
        for settings, options, env_vars, build_requires, reference in builder.items:
            if settings["compiler"] == "gcc":
                filtered_builds.append(
                    [settings, options, env_vars, build_requires])
                break
        builder.builds = filtered_builds

    builder.add_common_builds(shared_option_name="wiringpi:shared",
                              pure_c=True)
コード例 #8
0
from conan.packager import ConanMultiPackager

if __name__ == "__main__":
    builder = ConanMultiPackager(username="******",
                                 archs=["x86_64"],
                                 args="--build missing")
    builder.add_common_builds(shared_option_name="rdkafka:shared",
                              pure_c=False)
    builder.run()
コード例 #9
0
from conan.packager import ConanMultiPackager

if __name__ == "__main__":
    builder = ConanMultiPackager(username="******")
    builder.add_common_builds(pure_c=False)
    builder.run()
コード例 #10
0
ファイル: build.py プロジェクト: memsharded/conan-ilmbase
from conan.packager import ConanMultiPackager

if __name__ == "__main__":
    builder = ConanMultiPackager(username="******",
                                 channel="stable",
                                 args="--build=missing")
    builder.add_common_builds(shared_option_name="IlmBase:shared")
    builder.run()
コード例 #11
0
from conan.packager import ConanMultiPackager
import platform

if __name__ == "__main__":
    mingw_configurations = [("4.9", "x86_64", "seh", "posix"),
                            ("4.9", "x86_64", "sjlj", "posix"),
                            ("4.9", "x86", "sjlj", "posix"),
                            ("4.9", "x86", "dwarf2", "posix")]
    builder = ConanMultiPackager(mingw_configurations=mingw_configurations)
    builder.add_common_builds(shared_option_name="zlib:shared", pure_c=True)
    builder.run()
コード例 #12
0
from conan.packager import ConanMultiPackager
from conans.tools import os_info
import platform

if __name__ == "__main__":
    builder = ConanMultiPackager(args=['--build', 'missing'])
    builder.add_common_builds(shared_option_name="simple:shared", pure_c=False)
    builder.builds = [[settings, options, env_vars, build_requires, reference]
                      for settings, options, env_vars, build_requires,
                      reference in builder.items
                      if (not (os_info.is_linux and settings["arch"] == "x86"))
                      and options['simple:shared'] == True]
    builder.run()
コード例 #13
0
from conan.packager import ConanMultiPackager

if __name__ == "__main__":
    builder = ConanMultiPackager(username="******")
    builder.add_common_builds()
    builder.run()
コード例 #14
0
ファイル: build.py プロジェクト: dendisuhubdy/conan-libwebp
# Darwin all OK
# Windows fails shared builds
# Linux all OK
from conan.packager import ConanMultiPackager
import platform

if __name__ == '__main__':
    builder = ConanMultiPackager(username='******')
    builder.add_common_builds(shared_option_name='libwebp:shared', pure_c=True)
    filtered_builds = []
    for settings, options, env_vars, build_requires in builder.builds:
        if (platform.system() == 'Windows'
                and options['libwebp:shared'] == False
                or platform.system() == 'Linux'
                or platform.system() == 'Darwin'):
            filtered_builds.append(
                [settings, options, env_vars, build_requires])
    builder.builds = filtered_builds
    builder.run()
コード例 #15
0
    def test_check_credentials(self):

        runner = MockRunner()
        runner.output = "arepo: myurl"
        builder = ConanMultiPackager(username="******",
                                     channel="testing",
                                     reference="Hello/0.1",
                                     password="******",
                                     upload="myurl",
                                     visual_versions=[],
                                     gcc_versions=[],
                                     apple_clang_versions=[],
                                     runner=runner,
                                     platform_info=platform_mock_for("Darwin"))
        builder.add_common_builds()
        builder.run()

        # When activated, check credentials before to create the profiles
        self.assertEqual(runner.calls[0], 'conan remote add upload_repo myurl')
        self.assertEqual(runner.calls[2],
                         'conan user pepe -p="password" -r=upload_repo')
        self.assertIn(
            "conan create",
            runner.calls[-2])  # Not login again before upload its cached
        self.assertEqual(
            runner.calls[-1],
            "conan upload Hello/0.1@pepe/testing --retry 3 --all --force --confirm "
            "-r=upload_repo")

        runner = MockRunner()
        builder = ConanMultiPackager(username="******",
                                     channel="testing",
                                     reference="Hello/0.1",
                                     password="******",
                                     visual_versions=[],
                                     gcc_versions=[],
                                     apple_clang_versions=[],
                                     runner=runner,
                                     remotes="otherurl",
                                     platform_info=platform_mock_for("Darwin"))
        builder.add_common_builds()
        builder.run()

        # When upload is not required, credentials verification must be avoided
        self.assertFalse(
            'conan user pepe -p="password" -r=upload_repo' in runner.calls)
        self.assertFalse(
            'conan upload Hello/0.1@pepe/testing --retry 3 '
            '--all --force --confirm -r=upload_repo' in runner.calls)

        # If we skip the credentials check, the login will be performed just before the upload
        builder = ConanMultiPackager(username="******",
                                     channel="testing",
                                     reference="Hello/0.1",
                                     password="******",
                                     upload="myurl",
                                     visual_versions=[],
                                     gcc_versions=[],
                                     apple_clang_versions=[],
                                     runner=runner,
                                     platform_info=platform_mock_for("Darwin"),
                                     skip_check_credentials=True)
        builder.add_common_builds()
        builder.run()
        self.assertEqual(runner.calls[-2],
                         'conan user pepe -p="password" -r=upload_repo')
        self.assertEqual(
            runner.calls[-1],
            "conan upload Hello/0.1@pepe/testing --retry 3 --all --force --confirm "
            "-r=upload_repo")
コード例 #16
0
from conan.packager import ConanMultiPackager
import platform
import os

if __name__ == "__main__":
    builder = ConanMultiPackager(visual_runtimes=["MT", "MD"])

    if platform.system() == "Windows":
        builder.add_common_builds(visual_versions=[12, 13])

    if platform.system() == "Linux":
        for ver in (filter(None,
                           os.getenv("CONAN_GCC_VERSIONS", "").split(","))
                    or ["4.8", "4.9", "5.2", "5.3"]):
            for arch in ["x86", "x86_64"]:
                builder.add(
                    {
                        "arch": arch,
                        "build_type": "Release",
                        "compiler": "gcc",
                        "compiler.version": ver
                    }, {})

    if platform.system() == "Darwin":
        for ver in (filter(
                None,
                os.getenv("CONAN_APPLE_CLANG_VERSIONS_VERSIONS",
                          "").split(","))
                    or ["5.0", "5.1", "6.0", "6.1", "7.0"]):
            for arch in ["x86", "x86_64"]:
                builder.add(
コード例 #17
0
from conan.packager import ConanMultiPackager
import os

if __name__ == "__main__":
    if os.getenv("CXX") == "g++-7":
        version = os.getenv("TRAVIS_TAG")
        if not version:
            version = "dev"
        reference = "functionalplus/%s" % version
        username = "******"
        channel = "stable"
        upload_remote = "https://api.bintray.com/conan/Dobiasd/public-conan" if version is not "dev" else None

        print("Conan package metadata:", reference, username, channel,
              upload_remote)

        builder = ConanMultiPackager(reference=reference,
                                     username=username,
                                     channel=channel,
                                     upload=upload_remote)
        builder.add(
            settings={
                'os': 'Linux',
                'compiler.version': '7',
                'compiler.libcxx': 'libstdc++11',
                'arch': 'x86_64',
                'build_type': 'Release',
                'compiler': 'gcc'
            })
        builder.run()
コード例 #18
0
from conan.packager import ConanMultiPackager


if __name__ == "__main__":
    builder = ConanMultiPackager(username="******")
    builder.add(settings={}, options={}, env_vars={}, build_requires={})
    builder.run()
コード例 #19
0
ファイル: build.py プロジェクト: sztomi/conan-cryptopp
        "/") if repobranch_a else repobranch_t.split("/")
    return username, channel, version


def get_env_vars():
    return get_ci_vars() if is_ci_running() else get_default_vars()


def get_os():
    return platform.system().replace("Darwin", "Macos")


if __name__ == "__main__":
    name = get_name_from_recipe()
    username, channel, version = get_env_vars()
    reference = "{0}/{1}".format(name, version)
    upload = "https://api.bintray.com/conan/{0}/public-conan".format(username)

    builder = ConanMultiPackager(
        username=username,
        channel=channel,
        reference=reference,
        upload=upload,
        remotes=
        upload,  #while redundant, this moves bincrafters remote to position 0
        upload_only_when_stable=True,
        stable_branch_pattern="stable/*")

    builder.add_common_builds()
    builder.run()
コード例 #20
0
ファイル: build.py プロジェクト: jmmut/conan-fftw
# coding: utf-8
from conan.packager import ConanMultiPackager
import platform

if __name__ == "__main__":
    builder = ConanMultiPackager(username="******")

    if platform.system() == "Windows":
        for compiler_version in ["11", "12", "14"]:
            for compiler_runtime in ["MT", "MD"]:
                for build_type in ["Release", "Debug"]:
                    for arch in ["x86", "x86_64"]:
                        for shared in ["True", "False"]:
                            settings = {}
                            settings["compiler"] = "Visual Studio"
                            settings["compiler.version"] = compiler_version
                            settings["build_type"] = build_type
                            settings["compiler.runtime"] = "%s%s" % (
                                compiler_runtime,
                                "d" if build_type == "Debug" else "")
                            settings["arch"] = arch

                            options = {}
                            options["fftw:shared"] = shared

                            builder.add(settings, options)
    else:
        for build_type in ["Release", "Debug"]:
            for shared in ["True", "False"]:
                settings = {}
                settings["build_type"] = build_type
コード例 #21
0
ファイル: build.py プロジェクト: odant/conan-icu
        result.append([settings, options, env_vars, build_requires, reference])
    return result


def filter_libcxx(builds):
    result = []
    for settings, options, env_vars, build_requires, reference in builds:
        if settings["compiler.libcxx"] == "libstdc++11":
            result.append(
                [settings, options, env_vars, build_requires, reference])
    return result


if __name__ == "__main__":
    builder = ConanMultiPackager(username=username,
                                 visual_versions=visual_versions,
                                 visual_runtimes=visual_runtimes,
                                 exclude_vcvars_precommand=True)
    builder.add_common_builds(pure_c=False)
    # Adjusting build configurations
    builds = builder.items
    if platform.system() == "Windows":
        builds = add_dll_sign(builds)
        builds = filter_shared_MT(builds)
    if platform.system() == "Linux":
        builds = filter_libcxx(builds)
    builds = add_with_unit_tests(builds)
    # Replace build configurations
    builder.items = []
    for settings, options, env_vars, build_requires, _ in builds:
        builder.add(settings=settings,
                    options=options,
コード例 #22
0
def get_env_vars():
    return get_ci_vars() if is_ci_running() else get_default_vars()


def get_os():
    return platform.system().replace("Darwin", "Macos")


if __name__ == "__main__":
    name = get_name_from_recipe()
    username, channel, version = get_env_vars()
    reference = "{0}/{1}".format(name, version)
    upload = "https://api.bintray.com/conan/{0}/opensource".format(
        username.lower())
    bincrafters = "https://api.bintray.com/conan/bincrafters/public-conan"

    builder = ConanMultiPackager(
        username=username,
        channel=channel,
        reference=reference,
        upload=upload,
        remotes=[upload, bincrafters],
        upload_only_when_stable=True,
        docker_entry_script=
        'sudo apt-get -qq update && sudo apt-get -qq install -y pkg-config',
        stable_branch_pattern="stable/*")

    builder.add_common_builds(shared_option_name=name + ":shared")
    builder.run()
コード例 #23
0
ファイル: build.py プロジェクト: db4/conan-SimpleAmqpClient
from conan.packager import ConanMultiPackager
import platform

if __name__ == "__main__":
    builder = ConanMultiPackager(build_policy="missing")
    shared_option = False if platform.system() == "Windows" else None
    builder.add_common_builds(shared_option_name=shared_option, pure_c=False)
    builder.run()

コード例 #24
0
#!/usr/bin/env python3
from conan.packager import ConanMultiPackager

if __name__ == "__main__":
    builder = ConanMultiPackager(username="******")
    cxxstds = ['11','14']
    libstdcxx = ['libstdc++', 'libstdc++11']
    shared = [True, False]
    for triple in [[c,l] for c in cxxstds for l in libstdcxx]:
        builder.add(
            settings={"compiler.libcxx":triple[1]},
            options={"stdcxx" : triple[0], "fPIC":True},
            env_vars={},
            build_requires={})
    builder.run()
コード例 #25
0
from conan.packager import ConanMultiPackager
import platform

if __name__ == "__main__":
    builder = ConanMultiPackager(username="******", channel="testing")
    builder.add_common_builds(pure_c=False)
    builder.run()
コード例 #26
0
    def test_only_mingw(self):

        mingw_configurations = [("4.9", "x86_64", "seh", "posix")]
        builder = ConanMultiPackager(
            mingw_configurations=mingw_configurations,
            visual_versions=[],
            username="******",
            platform_info=platform_mock_for("Windows"),
            reference="lib/1.0")
        builder.add_common_builds(shared_option_name="zlib:shared",
                                  pure_c=True)
        expected = [
            ({
                'compiler.exception': 'seh',
                'compiler.libcxx': "libstdc++",
                'compiler.threads': 'posix',
                'compiler.version': '4.9',
                'arch': 'x86_64',
                'build_type': 'Release',
                'compiler': 'gcc'
            }, {
                'zlib:shared': True
            }, {}, {
                '*':
                [ConanFileReference.loads("mingw_installer/1.0@conan/stable")]
            }),
            ({
                'compiler.exception': 'seh',
                'compiler.libcxx': "libstdc++",
                'arch': 'x86_64',
                'compiler.threads': 'posix',
                'compiler.version': '4.9',
                'build_type': 'Debug',
                'compiler': 'gcc'
            }, {
                'zlib:shared': True
            }, {}, {
                '*':
                [ConanFileReference.loads("mingw_installer/1.0@conan/stable")]
            }),
            ({
                'compiler.exception': 'seh',
                'compiler.libcxx': "libstdc++",
                'compiler.threads': 'posix',
                'compiler.version': '4.9',
                'arch': 'x86_64',
                'build_type': 'Release',
                'compiler': 'gcc'
            }, {
                'zlib:shared': False
            }, {}, {
                '*':
                [ConanFileReference.loads("mingw_installer/1.0@conan/stable")]
            }),
            ({
                'compiler.exception': 'seh',
                'compiler.libcxx': "libstdc++",
                'arch': 'x86_64',
                'compiler.threads': 'posix',
                'compiler.version': '4.9',
                'build_type': 'Debug',
                'compiler': 'gcc'
            }, {
                'zlib:shared': False
            }, {}, {
                '*':
                [ConanFileReference.loads("mingw_installer/1.0@conan/stable")]
            })
        ]

        self.assertEquals([tuple(a) for a in builder.builds], expected)
コード例 #27
0
from conan.packager import ConanMultiPackager

if __name__ == "__main__":
    builder = ConanMultiPackager(username="******", channel="stable")
    builder.add_common_builds(shared_option_name="lmdb:shared", pure_c=True)

    # filtered_builds = []
    # # for settings, options in builder.builds:
    # for settings, options, env_vars, build_requires, reference in builder.items:

    #     # # Selecting the debug runtimes (MTd, MDd) on Windows for Debug builds
    #     # if settings["compiler"] == "Visual Studio":
    #     #     if settings["compiler.runtime"].startswith("MT"):
    #     #         continue
    #     #     if settings["build_type"] == "Debug" and not settings["compiler.runtime"].endswith("d"):
    #     #         settings["compiler.runtime"] += "d"

    #     # # Build both libstdc++ and libstdc++11
    #     # elif settings["compiler"] == "gcc":
    #     #     settings["compiler.libcxx"] = "libstdc++11"
    #     #     filtered_builds.append([settings, options])

    #     #     settings["compiler.libcxx"] = "libstdc++"
    #     #     filtered_builds.append([settings, options])

    #     # else:
    #     #     filtered_builds.append([settings, options])

    # builder.builds = filtered_builds

    builder.run()
コード例 #28
0
    def test_upload(self):
        runner = MockRunner()
        runner.output = "arepo: myurl"
        builder = ConanMultiPackager(username="******",
                                     channel="testing",
                                     reference="Hello/0.1",
                                     password="******",
                                     upload="myurl",
                                     visual_versions=[],
                                     gcc_versions=[],
                                     apple_clang_versions=[],
                                     runner=runner,
                                     remotes="myurl, otherurl",
                                     platform_info=platform_mock_for("Darwin"))
        builder.add_common_builds()
        builder.run()

        # Duplicated upload remote puts upload repo first (in the remotes order)
        self.assertEqual(runner.calls[0:3], [
            'conan remote add remote0 otherurl --insert',
            'conan remote add upload_repo myurl --insert', 'conan remote list'
        ])

        # Now check that the upload remote order is preserved if we specify it in the remotes
        runner = MockRunner()
        builder = ConanMultiPackager(username="******",
                                     channel="testing",
                                     reference="Hello/0.1",
                                     password="******",
                                     upload="myurl",
                                     visual_versions=[],
                                     gcc_versions=[],
                                     apple_clang_versions=[],
                                     runner=runner,
                                     remotes="otherurl, myurl, moreurl",
                                     platform_info=platform_mock_for("Darwin"))
        builder.add_common_builds()
        builder.run()

        # Duplicated upload remote puts upload repo first (in the remotes order)
        self.assertEqual(runner.calls[0:3], [
            'conan remote add remote0 moreurl --insert',
            'conan remote add upload_repo myurl --insert',
            'conan remote add remote2 otherurl --insert'
        ])

        self.assertEqual(
            runner.calls[-1],
            'conan upload Hello/0.1@pepe/testing --retry 3 --all --force '
            '--confirm -r=upload_repo')

        runner = MockRunner()
        builder = ConanMultiPackager(username="******",
                                     channel="testing",
                                     reference="Hello/0.1",
                                     password="******",
                                     upload="myurl",
                                     visual_versions=[],
                                     gcc_versions=[],
                                     apple_clang_versions=[],
                                     runner=runner,
                                     remotes="otherurl",
                                     platform_info=platform_mock_for("Darwin"))
        builder.add_common_builds()
        builder.run()

        self.assertEqual(runner.calls[0:3], [
            'conan remote add remote0 otherurl --insert', 'conan remote list',
            'conan remote add upload_repo myurl'
        ])

        self.assertEqual(
            runner.calls[-1],
            'conan upload Hello/0.1@pepe/testing --retry 3 --all '
            '--force --confirm -r=upload_repo')
コード例 #29
0
ファイル: build.py プロジェクト: viduranga/conan
from conan.packager import ConanMultiPackager


if __name__ == "__main__":
    builder = ConanMultiPackager()
    builder.add_common_builds(pure_c=True,
                              shared_option_name="c-ares:shared")
    builder.run()
コード例 #30
0
#!/usr/bin/env python3

from conan.packager import ConanMultiPackager
from conans.tools import os_info
import copy
import os

if __name__ == "__main__":
    builder = ConanMultiPackager(build_policy="outdated")

    builder.add(settings={
        "os": "Arduino",
        "os.board": "XYZrobot1280",
        "compiler": "gcc",
        "compiler.version": "7.3",
        "compiler.libcxx": "libstdc++11",
        "arch": "avr"
    },
                build_requires={
                    "*": [
                        "arduino-sdk/1.8.11@conan/testing",
                        "arduino-cmake/1.0.0@conan/testing",
                        "cmake_installer/3.16.3@conan/stable"
                    ]
                })

    builder.run()