#!/usr/bin/env python # -*- coding: utf-8 -*- from cpt.packager import ConanMultiPackager import os if __name__ == "__main__": login_username = os.getenv("CONAN_LOGIN_USERNAME") username = os.getenv("CONAN_USERNAME") tag_version = os.getenv("CONAN_PACKAGE_VERSION", os.getenv("TRAVIS_TAG")) package_version = tag_version.replace("v", "") package_name_unset = "SET-CONAN_PACKAGE_NAME-OR-CONAN_REFERENCE" package_name = os.getenv("CONAN_PACKAGE_NAME", package_name_unset) reference = "{}/{}".format(package_name, package_version) channel = os.getenv("CONAN_CHANNEL", "stable") upload = os.getenv("CONAN_UPLOAD") stable_branch_pattern = os.getenv("CONAN_STABLE_BRANCH_PATTERN", r"v\d+\.\d+\.\d+.*") test_folder = os.getenv("CPT_TEST_FOLDER", os.path.join("conan", "test_package")) upload_only_when_stable = os.getenv("CONAN_UPLOAD_ONLY_WHEN_STABLE", True) header_only = os.getenv("CONAN_HEADER_ONLY", False) pure_c = os.getenv("CONAN_PURE_C", False) disable_shared = os.getenv("CONAN_DISABLE_SHARED_BUILD", "False") if disable_shared == "True" and package_name == package_name_unset: raise Exception("CONAN_DISABLE_SHARED_BUILD: True is only supported when you define CONAN_PACKAGE_NAME") builder = ConanMultiPackager(username=username, reference=reference, channel=channel, login_username=login_username, upload=upload, stable_branch_pattern=stable_branch_pattern, upload_only_when_stable=upload_only_when_stable, test_folder=test_folder) if header_only == "False": builder.add_common_builds(pure_c=pure_c) else: builder.add() filtered_builds = [] for settings, options, env_vars, build_requires, reference in builder.items: if disable_shared == "False" or not options["{}:shared".format(package_name)]: filtered_builds.append([settings, options, env_vars, build_requires]) builder.builds = filtered_builds builder.run()