コード例 #1
0
ファイル: build.py プロジェクト: fmorgner/asio-conan
def main():
    builder = ConanMultiPackager(
        username='******',
        archs=['x86_64'],
        upload='https://api.bintray.com/conan/fmorgner/conan-fmorgner',
        remotes='https://api.bintray.com/conan/fmorgner/conan-fmorgner',
    )
    builder.add()
    builder.run()
コード例 #2
0
    def test_remotes(self):
        runner = MockRunner()
        builder = ConanMultiPackager(username="******",
                                     remotes=["url1", "url2"],
                                     runner=runner)

        builder.add({}, {}, {}, {})
        builder.run_builds()
        self.assertIn('conan remote add remote0 url2 --insert', runner.calls)
        self.assertIn('conan remote add remote1 url1 --insert', runner.calls)

        runner = MockRunner()
        builder = ConanMultiPackager(username="******",
                                     remotes="myurl1",
                                     runner=runner)

        builder.add({}, {}, {}, {})
        builder.run_builds()
        self.assertIn('conan remote add remote0 myurl1 --insert', runner.calls)
コード例 #3
0
    def test_32bits_images(self):
        packager = ConanMultiPackager("--build missing -r conan.io",
                                      "lasote", "mychannel",
                                      runner=self.runner,
                                      use_docker=True,
                                      docker_32_images=True,
                                      reference="zlib/1.2.11")

        packager.add({"arch": "x86", "compiler": "gcc", "compiler.version": "6"})
        packager.run_builds(1, 1)
        self.assertIn("docker pull lasote/conangcc6-i386", self.runner.calls[0])

        self.runner.reset()
        packager = ConanMultiPackager("--build missing -r conan.io",
                                      "lasote", "mychannel",
                                      runner=self.runner,
                                      use_docker=True,
                                      docker_32_images=False)

        packager.add({"arch": "x86", "compiler": "gcc", "compiler.version": "6"})
        packager.run_builds(1, 1)
        self.assertNotIn("docker pull lasote/conangcc6-i386", self.runner.calls[0])

        self.runner.reset()
        with tools.environment_append({"CONAN_DOCKER_32_IMAGES": "1"}):
            packager = ConanMultiPackager("--build missing -r conan.io",
                                          "lasote", "mychannel",
                                          runner=self.runner,
                                          use_docker=True)

            packager.add({"arch": "x86", "compiler": "gcc", "compiler.version": "6"})
            packager.run_builds(1, 1)
            self.assertIn("docker pull lasote/conangcc6-i386", self.runner.calls[0])
            self.assertIn("arch_build=x86\\", self.runner.calls[-1])
コード例 #4
0
    def test_url_handling(self):
        runner = MockRunner()
        builder = ConanMultiPackager(username="******",
                                     remotes=["URL1", "URL2"],
                                     upload="URL",
                                     runner=runner)
        builder.add({}, {}, {}, {})
        builder.run_builds()
        print(runner.calls)
        self.assertIn('conan remote add remote0 url2 --insert', runner.calls)
        self.assertIn('conan remote add remote1 url1 --insert', runner.calls)
        self.assertIn('conan remote add upload_repo url', runner.calls)

        runner = MockRunner()
        builder = ConanMultiPackager(username="******",
                                     remotes="URL1, URL2",
                                     upload="URL",
                                     runner=runner)
        builder.add({}, {}, {}, {})
        builder.run_builds()
        self.assertIn('conan remote add remote0 url2 --insert', runner.calls)
        self.assertIn('conan remote add remote1 url1 --insert', runner.calls)
        self.assertIn('conan remote add upload_repo url', runner.calls)

        runner = MockRunner()
        builder = ConanMultiPackager(username="******",
                                     remotes="URL1",
                                     upload="URL",
                                     runner=runner)
        builder.add({}, {}, {}, {})
        builder.run_builds()
        self.assertIn('conan remote add remote0 url1 --insert', runner.calls)
        self.assertIn('conan remote add upload_repo url', runner.calls)
コード例 #5
0
class AppTest(unittest.TestCase):

    def setUp(self):
        self.runner = MockRunner()
        self.packager = ConanMultiPackager("--build missing -r conan.io",
                                           "lasote", "mychannel",
                                           runner=self.runner)

    def testSerialize(self):
        self.packager.add({"os": "Windows", "compiler": "Visual Studio"},
                          {"option1": "value1", "option2": "value2"})

        serial = self.packager.serialize()
        self.assertEquals(serial, '{"username": "******", "conan_pip_package": null, "args": "--build missing -r conan.io", '\
                          '"builds": [[{"os": "Windows", "compiler": "Visual Studio"}, '\
                          '{"option2": "value2", "option1": "value1"}]], "channel": "mychannel"}')

        mp = ConanMultiPackager.deserialize(serial, username="******")
        self.assertEqual(mp.conan_pip_package, None)

        self.packager.conan_pip_package = "conan==0.0.1rc7"
        serial = self.packager.serialize()
        mp = ConanMultiPackager.deserialize(serial, username="******")
        self.assertEqual(mp.conan_pip_package, "conan==0.0.1rc7")

    def _add_build(self, number):
        self.packager.add({"os": "os%d" % number, "compiler": "os%d" % number},
                          {"option%d" % number: "value%d" % number,
                           "option%d" % number: "value%d" % number})

    def testPages(self):
        for number in xrange(10):
            self._add_build(number)

        # 10 pages, 1 per build
        self.packager.pack(1, 10)
        self.assertTrue(self.runner.tests_for([0]))

        # 2 pages, 5 per build
        self.runner.reset()
        self.packager.pack(1, 2)
        self.assertTrue(self.runner.tests_for([0, 2, 4, 6, 8]))

        self.runner.reset()
        self.packager.pack(2, 2)
        self.assertTrue(self.runner.tests_for([1, 3, 5, 7, 9]))

        # 3 pages, 4 builds in page 1 and 3 in the rest of pages
        self.runner.reset()
        self.packager.pack(1, 3)
        self.assertTrue(self.runner.tests_for([0, 3, 6, 9]))

        self.runner.reset()
        self.packager.pack(2, 3)
        self.assertTrue(self.runner.tests_for([1, 4, 7]))

        self.runner.reset()
        self.packager.pack(3, 3)
        self.assertTrue(self.runner.tests_for([2, 5, 8]))

    def testDocker(self):
        self.packager.docker_pack(1, 2, ["4.3", "5.2"])
        self.assertIn("sudo docker pull lasote/conangcc43", self.runner.calls[0])
        self.assertIn("-e CONAN_CURRENT_PAGE=1 -e CONAN_TOTAL_PAGES=2 ", self.runner.calls[1])
        self.assertIn('-e CONAN_BUILDER_ENCODED=\'{"username": "******"', self.runner.calls[1])
        self.assertIn('-e CONAN_USERNAME=lasote -e CONAN_CHANNEL=mychannel', self.runner.calls[1])
コード例 #6
0
from conan.packager import ConanMultiPackager

if __name__ == "__main__":
    builder = ConanMultiPackager()
    builder.add(settings={})
    builder.run()
コード例 #7
0
from conan.packager import ConanMultiPackager


# Common settings
username = "******" if "CONAN_USERNAME" not in os.environ else None
# Windows settings
visual_versions = ["15", "16"] if "CONAN_VISUAL_VERSIONS" not in os.environ else None
visual_runtimes = ["MD", "MDd"] if "CONAN_VISUAL_RUNTIMES" not in os.environ else None
dll_sign = False if "CONAN_DISABLE_DLL_SIGN" in os.environ else True

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=True)
    # Adjusting build configurations
    builds = builder.items
    # Replace build configurations
    builder.items = []
    for settings, options, env_vars, build_requires, _ in builds:
        builder.add(
            settings=settings,
            options=options,
            env_vars=env_vars,
            build_requires=build_requires
        )
    builder.run()
コード例 #8
0
from conan.packager import ConanMultiPackager

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

    builder.add({"compiler.libcxx": "libstdc++11", "build_type": "Release"})
    builder.add({"compiler.libcxx": "libstdc++11", "build_type": "Debug"})

    builder.run()
コード例 #9
0
from conan.packager import ConanMultiPackager

if __name__ == "__main__":
    builder = ConanMultiPackager(build_policy="missing", gcc_versions=["5"], archs=["x86_64"], username="******")
    builder.add({"compiler.version": 5, "compiler.libcxx": "libstdc++11", "arch": "x86_64", "build_type": "Release"}, 
                {"zipkin-cpp-opentracing:shared": False})
    builder.add({"compiler.version": 5, "compiler.libcxx": "libstdc++11", "arch": "x86_64", "build_type": "Debug"}, 
                {"zipkin-cpp-opentracing:shared": False})
    builder.run()
コード例 #10
0
from conan.packager import ConanMultiPackager


if __name__ == "__main__":
    builder = ConanMultiPackager()
    builder.add(settings={"os": "Android", "os.api_level": "21", "arch": "armv7", "compiler": "clang", "compiler.version": "7.0", "compiler.libcxx": "libc++"},
                options={"android-ndk:libcxx": "shared", "android-ndk:arm_mode": "thumb", "android-ndk:neon": "True"})
    builder.add(settings={"os": "Android", "os.api_level": "28", "arch": "armv8", "compiler": "clang", "compiler.version": "7.0", "compiler.libcxx": "libc++"})
    builder.run()
コード例 #11
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from conan.packager import ConanMultiPackager
from conans.client.tools.oss import detected_os
from conans.util.env_reader import get_env

if __name__ == "__main__":
    arch_str = get_env("ARCH", "x86,x86_64")
    archs = arch_str.split(",")

    builder = ConanMultiPackager(
        # docker_entry_script="pwd && ls",
    )
    for arch in archs:
        builder.add(settings={
            "arch_build": arch,
            "os_build": detected_os(),
        })
    builder.run()
コード例 #12
0
from conan.packager import ConanMultiPackager
from conans import tools

if __name__ == "__main__":
    builder = ConanMultiPackager()
    if tools.os_info.is_windows:
        builder.add(settings={
            "compiler": "Visual Studio",
            "compiler.version": "16",
            "arch": "x86",
            "build_type": "Release"
        },
                    options={},
                    env_vars={},
                    build_requires={})
    elif tools.os_info.is_linux:
        builder.add(settings={
            "compiler": "gcc",
            "compiler.version": "8",
            "arch": "x86_64",
            "build_type": "Release"
        },
                    options={},
                    env_vars={},
                    build_requires={})
    builder.run()
コード例 #13
0
ファイル: build.py プロジェクト: lasote/conan-libcurl
from conan.packager import ConanMultiPackager
import platform

if __name__ == "__main__":
    builder = ConanMultiPackager()
    builder.add_common_builds(pure_c=True, shared_option_name="libcurl:shared")
    accepted_builds = []
    if platform.system() == "Linux": 
        for build in builder.builds:
            if build[0]["arch"] != "x86":
                accepted_builds.append([build[0], build[1]])
        builder.builds = accepted_builds

    if platform.system() == "Darwin": 
        for build in builder.builds:
            if not build[0]["arch"] == "x86":
                accepted_builds.append([build[0], build[1]])

        builder.builds = accepted_builds
        for compiler in builder.apple_clang_versions:
            builder.add({"compiler": "apple-clang", "compiler.version": compiler, 
                         "arch": "x86_64", "build_type": "Release"}, {"libcurl:shared": False,
                                                                  "libcurl:darwin_ssl": False,
                                                                  "libcurl:custom_cacert": True})
            builder.add({"compiler": "apple-clang", "compiler.version": compiler, 
                         "arch": "x86_64", "build_type": "Debug"}, {"libcurl:shared": False,
                                                                  "libcurl:darwin_ssl": False,
                                                           "libcurl:custom_cacert": True})
    builder.run()
コード例 #14
0
ファイル: build.py プロジェクト: lasote/conan-mingw-installer
from conan.packager import ConanMultiPackager
import copy


if __name__ == "__main__":
    builder = ConanMultiPackager()
    base = {"os": "Windows", "compiler": "gcc", "compiler.version": "7",
            "compiler.exception": "seh", "compiler.libcxx": "libstdc++",
            "compiler.threads": "posix"}
    for version in ["4.9", "5", "6", "7", "8"]:
        tmp = copy.copy(base)
        tmp["compiler.version"] = version
        for th in ["posix", "win32"]:
            tmp2 = copy.copy(tmp)
            tmp2["compiler.threads"] = th
            for ex in ["seh", "sjlj"]:
                tmp3 = copy.copy(tmp2)
                tmp3["arch"] = "x86_64"
                tmp3["compiler.exception"] = ex
                builder.add(tmp3, {}, {}, {})
            for ex in ["dwarf2", "sjlj"]:
                tmp3 = copy.copy(tmp2)
                tmp3["arch"] = "x86"
                tmp3["compiler.exception"] = ex
                builder.add(tmp3, {}, {}, {})
    
    builder.run()
コード例 #15
0
ファイル: build.py プロジェクト: dwerner/conan-protobuf
                        for shared in ["True", "False"]:
                            if build_type == "Debug" and compiler_runtime == "MT" and shared == "True":
                                # NB: "Debug Assertion Failed!" in protoc.exe, at C++ Runtime "debug_heap.cpp" or "dbgheap.cpp"
                                # "arch": ["x86", "x86_64"]
                                # "compiler.version": ["11", 12", "14"]
                                continue

                            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["Protobuf:shared"] = shared

                            builder.add(settings, options)
    else:
        for build_type in ["Release", "Debug"]:
            for shared in ["True", "False"]:
                settings = {}
                settings["build_type"] = build_type

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

                builder.add(settings, options)

    builder.run()
コード例 #16
0
ファイル: build.py プロジェクト: lasote/conan-7z-installer
from conan.packager import ConanMultiPackager
from conans import __version__ as conan_version
from conans.model.version import Version


if __name__ == "__main__":
    builder = ConanMultiPackager()
    os_name = "os" if conan_version < Version("0.99") else "os_build"
    builder.add({os_name: "Windows"}, {}, {}, {})
    builder.run()
コード例 #17
0
import os
from conan.packager import ConanMultiPackager

# Common settings
username = "******" if "CONAN_USERNAME" not in os.environ else None

if __name__ == "__main__":
    builder = ConanMultiPackager(username=username,
                                 exclude_vcvars_precommand=True)
    builder.add()
    builder.run()
コード例 #18
0
    username, _ = reponame_a.split("/") if reponame_a else reponame_t.split("/")
    channel, version = repobranch_a.split("/") 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({}, {}, {}, {})
    builder.run()
コード例 #19
0
from conan.packager import ConanMultiPackager

if __name__ == "__main__":
    builder = ConanMultiPackager()
    builder.add(settings={"os": "iOS", "os.version": "9.0", 'arch': 'x86_64'})
    # builder.add(settings={"os": "watchOS", "os.version": "4.0", "arch": "armv8"})
    # builder.add(settings={"os": "tvOS", "os.version": "11.0", "arch": "armv8"})
    builder.run()

コード例 #20
0
ファイル: build.py プロジェクト: monkeber/conan-libmaxminddb
from conan.packager import ConanMultiPackager

if __name__ == "__main__":
    command = "gcc --version && g++ --version"
    builder = ConanMultiPackager(docker_entry_script=command)
    builder.add(
        settings={
            'compiler.libcxx': 'libstdc++11',
            'arch': 'x86_64',
            'build_type': 'Release',
            'compiler': 'gcc'
        })
    builder.run()
コード例 #21
0
from conan.packager import ConanMultiPackager
import copy

if __name__ == "__main__":
    builder = ConanMultiPackager()
    base = {
        "os": "Windows",
        "compiler": "gcc",
        "compiler.version": "7.1",
        "compiler.exception": "seh",
        "compiler.libcxx": "libstdc++",
        "compiler.threads": "posix"
    }
    for version in ["4.9", "5.4", "6.4", "7.2"]:
        tmp = copy.copy(base)
        tmp["compiler.version"] = version
        for th in ["posix", "win32"]:
            tmp2 = copy.copy(tmp)
            tmp2["compiler.threads"] = th
            for ex in ["seh", "sjlj"]:
                tmp3 = copy.copy(tmp2)
                tmp3["compiler.exception"] = ex
                builder.add(tmp3, {}, {}, {})

    builder.run()
コード例 #22
0
ファイル: build.py プロジェクト: sobotklp/conan-libjson
from conan.packager import ConanMultiPackager

if __name__ == "__main__":
    builder = ConanMultiPackager(username="******")
    #builder.add_common_builds(pure_c=False)
    builder.add(settings={
        "arch": "x86_64",
        "build_type": "Debug"
    },
                options={},
                env_vars={},
                build_requires={})
    builder.run()
コード例 #23
0
                      "3.11.1", "3.10.0", "3.9.0", "3.8.2",
                      "3.8.1", "3.8.0", "3.7.2", "3.7.1",
                      "3.7.0", "3.6.3", "3.6.2", "3.6.1",
                      "3.6.0", "3.5.2", "3.4.3", "3.3.2",
                      "3.2.3", "3.1.3", "3.0.2", "2.8.12"]

if __name__ == "__main__":

    builder = ConanMultiPackager()

    i386 = "CONAN_DOCKER_IMAGE" in os.environ and \
        os.environ["CONAN_DOCKER_IMAGE"].endswith("i386")

    # New mode, with version field
    for version in available_versions:
        # Unknown problem with 3.0.2 on travis
        # Building from sources takes much time so build the very recent 32bit version only
        if (version > "3.0.2" and not i386) or platform.system() == "Windows" or \
                version == available_versions[0]:
            builder.add({}, {}, {}, {}, reference="cmake_installer/%s" % version)

    # Old mode, with options
    for version in available_versions:
        # Unknown problem with 3.0.2 on travis
        # Building from sources takes much time so build the very recent 32bit version only
        if (version > "3.0.2" and not i386) or platform.system() == "Windows" or \
                version == available_versions[0]:
            builder.add({}, {"cmake_installer:version": version}, {}, {}, "cmake_installer/1.0")

    builder.run()
コード例 #24
0
from conan.packager import ConanMultiPackager

if __name__ == "__main__":
    builder = ConanMultiPackager()
    libstd = ['libstdc++11', 'libstdc++']
    types = ['Debug', 'Release']
    configs = [[i, k] for i in libstd for k in types]
    for triple in configs:
        builder.add(settings={
            "build_type": triple[1],
            "compiler.libcxx": triple[0]
        },
                    options={},
                    env_vars={},
                    build_requires={})
    builder.run()
コード例 #25
0
class AppTest(unittest.TestCase):
    def setUp(self):
        self.runner = MockRunner()
        self.packager = ConanMultiPackager("--build missing -r conan.io",
                                           "lasote",
                                           "mychannel",
                                           runner=self.runner)
        if "APPVEYOR" in os.environ:
            del os.environ["APPVEYOR"]
        if "TRAVIS" in os.environ:
            del os.environ["TRAVIS"]

    def _add_build(self, number, compiler=None, version=None):
        self.packager.add(
            {
                "os": "os%d" % number,
                "compiler": compiler or "compiler%d" % number,
                "compiler.version": version or "4.3"
            }, {
                "option%d" % number: "value%d" % number,
                "option%d" % number: "value%d" % number
            })

    def test_full_profile(self):
        self.packager.add({
            "os": "Windows",
            "compiler": "gcc"
        }, {"option1": "One"}, {
            "VAR_1": "ONE",
            "VAR_2": "TWO"
        }, {"*": ["myreference/1.0@lasote/testing"]})
        self.packager.run_builds(1, 1)
        profile = self.runner.get_profile_from_trace(0)
        self.assertEquals(profile.settings["os"], "Windows")
        self.assertEquals(profile.settings["compiler"], "gcc")
        self.assertEquals(profile.options.as_list(), [("option1", "One")])
        self.assertEquals(profile.env_values.data[None]["VAR_1"], "ONE")
        self.assertEquals(profile.env_values.data[None]["VAR_2"], "TWO")
        self.assertEquals(
            profile.build_requires["*"],
            [ConanFileReference.loads("myreference/1.0@lasote/testing")])

    def test_profile_environ(self):
        self.packager.add({
            "os": "Windows",
            "compiler": "gcc"
        }, {"option1": "One"}, {
            "VAR_1": "ONE",
            "VAR_2": "TWO"
        }, {"*": ["myreference/1.0@lasote/testing"]})
        with tools.environment_append(
            {"CONAN_BUILD_REQUIRES": "br1/1.0@conan/testing"}):
            self.packager.run_builds(1, 1)
            profile = self.runner.get_profile_from_trace(0)
            self.assertEquals(profile.build_requires["*"], [
                ConanFileReference.loads("myreference/1.0@lasote/testing"),
                ConanFileReference.loads("br1/1.0@conan/testing")
            ])

    def test_pages(self):
        for number in range(10):
            self._add_build(number)

        # 10 pages, 1 per build
        self.packager.run_builds(1, 10)
        self.runner.assert_tests_for([0])

        # 2 pages, 5 per build
        self.runner.reset()
        self.packager.run_builds(1, 2)
        self.runner.assert_tests_for([0, 2, 4, 6, 8])

        self.runner.reset()
        self.packager.run_builds(2, 2)
        self.runner.assert_tests_for([1, 3, 5, 7, 9])

        # 3 pages, 4 builds in page 1 and 3 in the rest of pages
        self.runner.reset()
        self.packager.run_builds(1, 3)
        self.runner.assert_tests_for([0, 3, 6, 9])

        self.runner.reset()
        self.packager.run_builds(2, 3)
        self.runner.assert_tests_for([1, 4, 7])

        self.runner.reset()
        self.packager.run_builds(3, 3)
        self.runner.assert_tests_for([2, 5, 8])

    def test_deprecation_gcc(self):

        with self.assertRaisesRegexp(Exception,
                                     "DEPRECATED GCC MINOR VERSIONS!"):
            ConanMultiPackager("--build missing -r conan.io",
                               "lasote",
                               "mychannel",
                               runner=self.runner,
                               gcc_versions=["4.3", "5.4"],
                               use_docker=True)

    def test_32bits_images(self):
        packager = ConanMultiPackager("--build missing -r conan.io",
                                      "lasote",
                                      "mychannel",
                                      runner=self.runner,
                                      use_docker=True,
                                      docker_32_images=True,
                                      reference="zlib/1.2.11")

        packager.add({
            "arch": "x86",
            "compiler": "gcc",
            "compiler.version": "6"
        })
        packager.run_builds(1, 1)
        self.assertIn("docker pull lasote/conangcc6-x86", self.runner.calls[0])

        self.runner.reset()
        packager = ConanMultiPackager("--build missing -r conan.io",
                                      "lasote",
                                      "mychannel",
                                      runner=self.runner,
                                      use_docker=True,
                                      docker_32_images=False)

        packager.add({
            "arch": "x86",
            "compiler": "gcc",
            "compiler.version": "6"
        })
        packager.run_builds(1, 1)
        self.assertNotIn("docker pull lasote/conangcc6-i386",
                         self.runner.calls[0])

        self.runner.reset()
        with tools.environment_append({"CONAN_DOCKER_32_IMAGES": "1"}):
            packager = ConanMultiPackager("--build missing -r conan.io",
                                          "lasote",
                                          "mychannel",
                                          runner=self.runner,
                                          use_docker=True)

            packager.add({
                "arch": "x86",
                "compiler": "gcc",
                "compiler.version": "6"
            })
            packager.run_builds(1, 1)
            self.assertIn("docker pull lasote/conangcc6-x86",
                          self.runner.calls[0])
            self.assertIn("arch_build=x86\\", self.runner.calls[-1])

        # Test the opossite
        packager = ConanMultiPackager("--build missing -r conan.io",
                                      "lasote",
                                      "mychannel",
                                      runner=self.runner,
                                      use_docker=True,
                                      docker_32_images=False,
                                      reference="zlib/1.2.11")

        packager.add({
            "arch": "x86",
            "compiler": "gcc",
            "compiler.version": "6"
        })
        packager.run_builds(1, 1)
        self.assertIn("docker pull lasote/conangcc6", self.runner.calls[0])

    def test_docker_gcc(self):
        self.packager = ConanMultiPackager("--build missing -r conan.io",
                                           "lasote",
                                           "mychannel",
                                           runner=self.runner,
                                           gcc_versions=["4.3", "5"],
                                           use_docker=True)
        self._add_build(1, "gcc", "4.3")
        self._add_build(2, "gcc", "4.3")
        self._add_build(3, "gcc", "4.3")

        self.packager.run_builds(1, 2)
        self.assertIn("docker pull lasote/conangcc43", self.runner.calls[0])
        self.assertIn('docker run ', self.runner.calls[1])
        self.assertIn('os=os1', self.runner.calls[4])
        self.packager.run_builds(1, 2)
        self.assertIn("docker pull lasote/conangcc43", self.runner.calls[0])

        with tools.environment_append({"CONAN_DOCKER_USE_SUDO": "1"}):
            self.packager.run_builds(1, 2)
            self.assertIn("sudo docker run", self.runner.calls[-1])

        # Next build from 4.3 is cached, not pulls are performed
        self.assertIn('os=os3', self.runner.calls[5])

    def test_docker_clang(self):
        self.packager = ConanMultiPackager("--build missing -r conan.io",
                                           "lasote",
                                           "mychannel",
                                           runner=self.runner,
                                           clang_versions=["3.8", "4.0"],
                                           use_docker=True)

        self._add_build(1, "clang", "3.8")
        self._add_build(2, "clang", "3.8")
        self._add_build(3, "clang", "3.8")

        self.packager.run_builds(1, 2)
        self.assertIn("docker pull lasote/conanclang38", self.runner.calls[0])
        self.assertIn('docker run ', self.runner.calls[1])
        self.assertIn('os=os1', self.runner.calls[4])

        # Next build from 3.8 is cached, not pulls are performed
        self.assertIn('os=os3', self.runner.calls[5])

    def test_docker_gcc_and_clang(self):
        self.packager = ConanMultiPackager("--build missing -r conan.io",
                                           "lasote",
                                           "mychannel",
                                           runner=self.runner,
                                           gcc_versions=["5", "6"],
                                           clang_versions=["3.9", "4.0"],
                                           use_docker=True)

        self._add_build(1, "gcc", "5")
        self._add_build(2, "gcc", "5")
        self._add_build(3, "gcc", "5")
        self._add_build(4, "clang", "3.9")
        self._add_build(5, "clang", "3.9")
        self._add_build(6, "clang", "3.9")

        self.packager.run_builds(1, 2)
        self.assertIn("docker pull lasote/conangcc5", self.runner.calls[0])
        self.assertIn('docker run ', self.runner.calls[1])

        self.assertIn('os=os1', self.runner.calls[4])
        self.assertIn('os=os3', self.runner.calls[5])

        self.packager.run_builds(2, 2)
        self.assertIn("docker pull lasote/conanclang39", self.runner.calls[16])
        self.assertIn('docker run ', self.runner.calls[17])
        self.assertIn('os=os4', self.runner.calls[20])
        self.assertIn('os=os6', self.runner.calls[21])

    def test_upload_false(self):
        packager = ConanMultiPackager("--build missing -r conan.io",
                                      "lasote",
                                      "mychannel",
                                      upload=False)
        self.assertFalse(packager._upload_enabled())

    def test_docker_env_propagated(self):
        # test env
        with tools.environment_append({"CONAN_FAKE_VAR": "32"}):
            self.packager = ConanMultiPackager("--build missing -r conan.io",
                                               "lasote",
                                               "mychannel",
                                               runner=self.runner,
                                               gcc_versions=["5", "6"],
                                               clang_versions=["3.9", "4.0"],
                                               use_docker=True)
            self._add_build(1, "gcc", "5")
            self.packager.run_builds(1, 1)
            self.assertIn('-e CONAN_FAKE_VAR="32"', self.runner.calls[-1])

    @unittest.skipUnless(sys.platform.startswith("win"), "Requires Windows")
    def test_msvc(self):
        self.packager = ConanMultiPackager("--build missing -r conan.io",
                                           "lasote",
                                           "mychannel",
                                           runner=self.runner,
                                           visual_versions=[15])
        self.packager.add_common_builds()

        with tools.environment_append({"VisualStudioVersion": "15.0"}):
            self.packager.run_builds(1, 1)

        self.assertIn("vcvars", self.runner.calls[1])

    @unittest.skipUnless(sys.platform.startswith("win"), "Requires Windows")
    def test_msvc_no_precommand(self):
        self.packager = ConanMultiPackager("--build missing -r conan.io",
                                           "lasote",
                                           "mychannel",
                                           runner=self.runner,
                                           visual_versions=[15],
                                           exclude_vcvars_precommand=True)
        self.packager.add_common_builds()
        self.packager.run_builds(1, 1)

        self.assertNotIn("vcvars", self.runner.calls[1])

    def test_docker_invalid(self):
        self.packager = ConanMultiPackager("--build missing -r conan.io",
                                           "lasote",
                                           "mychannel",
                                           runner=self.runner,
                                           use_docker=True)

        self._add_build(1, "msvc", "10")

        # Only clang and gcc have docker images
        self.assertRaises(Exception, self.packager.run_builds)

    def test_assign_builds_retrocompatibility(self):
        self.packager = ConanMultiPackager("--build missing -r conan.io",
                                           "lasote",
                                           "mychannel",
                                           runner=self.runner,
                                           gcc_versions=["4.3", "5"],
                                           use_docker=True)
        self.packager.add_common_builds()
        self.packager.builds = [({"os": "Windows"}, {"option": "value"})]
        self.assertEquals(self.packager.items, [
            BuildConf(settings={'os': 'Windows'},
                      options={'option': 'value'},
                      env_vars={},
                      build_requires={},
                      reference=None)
        ])

    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)

    def test_named_pages(self):
        builder = ConanMultiPackager(username="******")
        named_builds = defaultdict(list)
        builder.add_common_builds(shared_option_name="zlib:shared",
                                  pure_c=True)
        for settings, options, env_vars, build_requires in builder.builds:
            named_builds[settings['arch']].append(
                [settings, options, env_vars, build_requires])
        builder.named_builds = named_builds

        self.assertEquals(builder.builds, [])
        if platform.system() == "Darwin":  # Not default x86 in Macos
            self.assertEquals(len(builder.named_builds), 1)
            self.assertFalse("x86" in builder.named_builds)
            self.assertTrue("x86_64" in builder.named_builds)
        else:
            self.assertEquals(len(builder.named_builds), 2)
            self.assertTrue("x86" in builder.named_builds)
            self.assertTrue("x86_64" in builder.named_builds)

    def test_remotes(self):
        runner = MockRunner()
        builder = ConanMultiPackager(username="******",
                                     remotes=["url1", "url2"],
                                     runner=runner)

        builder.add({}, {}, {}, {})
        builder.run_builds()
        self.assertIn('conan remote add remote0 url2 --insert', runner.calls)
        self.assertIn('conan remote add remote1 url1 --insert', runner.calls)

        runner = MockRunner()
        builder = ConanMultiPackager(username="******",
                                     remotes="myurl1",
                                     runner=runner)

        builder.add({}, {}, {}, {})
        builder.run_builds()
        self.assertIn('conan remote add remote0 myurl1 --insert', runner.calls)

    def test_visual_defaults(self):

        with tools.environment_append({"CONAN_VISUAL_VERSIONS": "10"}):
            builder = ConanMultiPackager(
                username="******", platform_info=platform_mock_for("Windows"))
            builder.add_common_builds()
            for settings, _, _, _ in builder.builds:
                self.assertEquals(settings["compiler"], "Visual Studio")
                self.assertEquals(settings["compiler.version"], "10")

        with tools.environment_append({
                "CONAN_VISUAL_VERSIONS":
                "10",
                "MINGW_CONFIGURATIONS":
                "4.9@x86_64@seh@posix"
        }):

            builder = ConanMultiPackager(
                username="******", platform_info=platform_mock_for("Windows"))
            builder.add_common_builds()
            for settings, _, _, _ in builder.builds:
                self.assertEquals(settings["compiler"], "gcc")
                self.assertEquals(settings["compiler.version"], "4.9")

    def select_defaults_test(self):
        builder = ConanMultiPackager(platform_info=platform_mock_for("Linux"),
                                     gcc_versions=["4.8", "5"],
                                     username="******")

        self.assertEquals(builder.clang_versions, [])

        with tools.environment_append({"CONAN_GCC_VERSIONS": "4.8, 5"}):
            builder = ConanMultiPackager(
                platform_info=platform_mock_for("Linux"), username="******")

            self.assertEquals(builder.clang_versions, [])
            self.assertEquals(builder.gcc_versions, ["4.8", "5"])

        builder = ConanMultiPackager(platform_info=platform_mock_for("Linux"),
                                     clang_versions=["4.8", "5"],
                                     username="******")

        self.assertEquals(builder.gcc_versions, [])

        with tools.environment_append({"CONAN_CLANG_VERSIONS": "4.8, 5"}):
            builder = ConanMultiPackager(
                platform_info=platform_mock_for("Linux"), username="******")

            self.assertEquals(builder.gcc_versions, [])
            self.assertEquals(builder.clang_versions, ["4.8", "5"])

    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')

    def test_login(self):
        runner = MockRunner()
        builder = ConanMultiPackager(username="******",
                                     channel="testing",
                                     reference="Hello/0.1",
                                     password="******",
                                     upload="myurl",
                                     visual_versions=[],
                                     gcc_versions=[],
                                     apple_clang_versions=[],
                                     runner=runner)

        builder.login("Myremote", "myuser", "mypass", force=False)
        self.assertIn('conan user myuser -p="mypass" -r=Myremote',
                      runner.calls[-1])
        runner.calls = []
        # Already logged, not call conan user again
        builder.login("Myremote", "myuser", "mypass", force=False)
        self.assertEquals(len(runner.calls), 0)
        # Already logged, but forced
        runner.calls = []
        builder.login("Myremote", "myuser", "mypass", force=True)
        self.assertEquals(len(runner.calls), 1)

        # Default users/pass
        runner.calls = []
        builder.login("Myremote2")
        self.assertIn('conan user pepe -p="password" -r=Myremote2',
                      runner.calls[-1])

    def test_build_policy(self):
        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"),
                                     build_policy="outdated")
        builder.add_common_builds()
        builder.run()
        self.assertIn(" --build=outdated", runner.calls[-1])

        with tools.environment_append({"CONAN_BUILD_POLICY": "missing"}):
            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"),
                build_policy="missing")
            builder.add_common_builds()
            builder.run()
            self.assertIn(" --build=missing", runner.calls[-1])

    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")
コード例 #26
0
                accepted_builds.append([build[0], build[1]])
        builder.builds = accepted_builds

    if platform.system() == "Darwin":
        for build in builder.builds:
            if not build[0]["arch"] == "x86":
                accepted_builds.append([build[0], build[1]])

        builder.builds = accepted_builds
        for compiler in builder.apple_clang_versions:
            builder.add(
                {
                    "compiler": "apple-clang",
                    "compiler.version": compiler,
                    "arch": "x86_64",
                    "build_type": "Release"
                }, {
                    "libcurl:shared": False,
                    "libcurl:darwin_ssl": False,
                    "libcurl:custom_cacert": True
                })
            builder.add(
                {
                    "compiler": "apple-clang",
                    "compiler.version": compiler,
                    "arch": "x86_64",
                    "build_type": "Debug"
                }, {
                    "libcurl:shared": False,
                    "libcurl:darwin_ssl": False,
                    "libcurl:custom_cacert": True
コード例 #27
0
from conan.packager import ConanMultiPackager
from conans import __version__ as conan_version
from conans.model.version import Version

if __name__ == "__main__":
    builder = ConanMultiPackager()
    if conan_version < Version("0.99"):
        builder.add({"os": "Windows", "arch": "x86"}, {}, {}, {})
        builder.add({"os": "Windows", "arch": "x86_64"}, {}, {}, {})
    else:
        builder.add({"os_build": "Windows", "arch_build": "x86"}, {}, {}, {})
        builder.add({
            "os_build": "Windows",
            "arch_build": "x86_64"
        }, {}, {}, {})

    builder.run()
コード例 #28
0
ファイル: build.py プロジェクト: polysquare/clang-conan
from conan.packager import ConanMultiPackager
import platform

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

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

    if platform.system() == "Linux":
        for ver in ["4.8", "4.9", "5.2", "5.3"]:
            for arch in ["x86", "x86_64"]:
                for libcxx in ["libstdc++", "libstdc++11"]:
                    builder.add({"arch": arch,
                                 "build_type": "Release",
                                 "compiler": "gcc",
                                 "compiler.version": ver,
                                 "compiler.libcxx": libcxx},
                                 {})

    if platform.system() == "Darwin":
        for compiler_version in ["5.0", "5.1", "6.0", "6.1", "7.0"]:
            for arch in ["x86", "x86_64"]:
                for build_type in ["Release"]:
                    builder.add({"arch": arch,
                                 "build_type": build_type,
                                 "compiler": "apple-clang",
                                 "compiler.version": compiler_version}, {})
    builder.run()
コード例 #29
0
ファイル: build.py プロジェクト: Tereius/conan-ffmpeg
from conan.packager import ConanMultiPackager

if __name__ == "__main__":
    builder = ConanMultiPackager()
    builder.add(settings={
        "os": "Android",
        "os.api_level": 21,
        "arch": "armv7",
        "compiler": "gcc",
        "compiler.version": "4.9",
        "compiler.libcxx": "libstdc++"
    },
                options={},
                env_vars={},
                build_requires={})
    builder.add(settings={
        "os": "Android",
        "os.api_level": 21,
        "arch": "armv7",
        "compiler": "clang",
        "compiler.version": "5.0",
        "compiler.libcxx": "libc++"
    },
                options={},
                env_vars={},
                build_requires={})
    builder.run()
コード例 #30
0
ファイル: build.py プロジェクト: bilke/conan-boost
from conan.packager import ConanMultiPackager
import copy
import platform

if __name__ == "__main__":
    builder = ConanMultiPackager()
    builder.add_common_builds(shared_option_name="Boost:shared", pure_c=False)
    builder.add({}, {"Boost:header_only": True}, {}, {})
    if platform.system() == "Linux":
        filtered_builds = []
        for settings, options, env_vars, build_requires in builder.builds:
            filtered_builds.append([settings, options])
            new_options = copy.copy(options)
            new_options["Boost:fPIC"] = True
            filtered_builds.append(
                [settings, new_options, env_vars, build_requires])
        builder.builds = filtered_builds
    builder.run()
コード例 #31
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()
コード例 #32
0
    repobranch_a = os.getenv("APPVEYOR_REPO_BRANCH","")

    reponame_t = os.getenv("TRAVIS_REPO_SLUG","")
    repobranch_t = os.getenv("TRAVIS_BRANCH","")

    username, _ = reponame_a.split("/") if reponame_a else reponame_t.split("/")
    channel, version = repobranch_a.split("/") 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({"os" : get_os(), "arch" : "x86_64"}, {}, {}, {}) 
    builder.run()
コード例 #33
0
ファイル: build.py プロジェクト: scropions/conan-boost
from conan.packager import ConanMultiPackager
import copy
import os
import platform

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

    if os.getenv("HEADER_ONLY"):

        builder.add({}, {"boost:header_only": True})
    else:
        builder.add_common_builds(shared_option_name="boost:shared",
                                  pure_c=False)

        if platform.system() == "Windows":
            filtered_builds = []
            for settings, options, env_vars, build_requires in builder.builds:

                # MinGW shared with linker errors. I don't have a clue
                if settings["compiler"] == "gcc" and options[
                        "boost:shared"] is True:
                    continue

                if ((settings["compiler"] == "Visual Studio") and
                    (int(settings["compiler.version"]) >= 14)) and (int(
                        settings["compiler.version"]) <= 15):
                    options_use_icu = options.copy()
                    options_use_icu["boost:use_icu"] = True
                    filtered_builds.append(
                        [settings, options_use_icu, env_vars, build_requires])
コード例 #34
0
ファイル: build.py プロジェクト: omaralvarez/conan_dlib
import os
from conan.packager import ConanMultiPackager

if __name__ == "__main__":
    builder = ConanMultiPackager(
        build_policy="missing",
        remotes="https://api.bintray.com/conan/bincrafters/public-conan")

    builder.add({"compiler.libcxx": "libstdc++11"})
    builder.add_common_builds(shared_option_name="dlib:shared", pure_c=False)
    builder.run()
コード例 #35
0
ファイル: run.py プロジェクト: kde-frameworks-conan/kconfig
#/usr/bin/python3

from conan.packager import ConanMultiPackager
import platform


if __name__ == "__main__":
    builder = ConanMultiPackager(visual_runtimes=["MT", "MD"])
    
    if platform.system() == "Windows":
        builder.add_common_builds()
    
    if platform.system() == "Linux":
        for ver in builder.gcc_versions:
            for bt in [ "Release", "Debug"]:
                builder.add(
                    {"arch": "x86_64", 
                     "build_type": bt,
                     "compiler": "gcc",
                     "compiler.version": ver,
                     "compiler.libcxx": "libstdc++11"})
    
    builder.run()
コード例 #36
0
ファイル: build.py プロジェクト: polysquare/llvm-conan
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({"arch": arch,
                             "build_type": "Release",
                             "compiler": "apple-clang",
                             "compiler.version": ver}, {})
    builder.run()