def create_and_validate(recipe_buffer, expected_value): tempdir = tempfile.mkdtemp() with chdir(tempdir): with open("conanfile.py", "w") as fd: fd.write(recipe_buffer) fd.flush() assert expected_value == build_shared.is_shared()
def add_boost_shared(build, recipe=None): if build_shared.is_shared(): shared_option_name = "%s:shared" % build_shared.get_name_from_recipe( recipe=recipe) build.options.update( {'boost_*:shared': build.options[shared_option_name]}) return build
def get_builder(shared_option_name=None, pure_c=False, dll_with_static_runtime=False, build_policy=None, cwd=None, **kwargs): recipe = build_shared.get_recipe_path(cwd) # Bincrafters default is to upload only when stable, but boost is an exception # Empty string allows boost packages upload for testing branch with tools.environment_append({"CONAN_UPLOAD_ONLY_WHEN_STABLE": ""}): shared_option_name = False if shared_option_name is None and not build_shared.is_shared( ) else shared_option_name builder = build_template_default.get_builder( shared_option_name=shared_option_name, pure_c=pure_c, dll_with_static_runtime=dll_with_static_runtime, build_policy=build_policy, cwd=cwd, **kwargs) builder.builds = map( lambda item: add_boost_shared(item, recipe=recipe), builder.items) return builder
def get_builder(args=None, shared_option_name=None, pure_c=True, dll_with_static_runtime=False): builder = build_shared.get_builder(args) if shared_option_name is None and build_shared.is_shared(): shared_option_name = "%s:shared" % build_shared.get_name_from_recipe() builder.add_common_builds(shared_option_name=shared_option_name, pure_c=pure_c, dll_with_static_runtime=dll_with_static_runtime) return builder
def create_and_validate(recipe_buffer, expected_value, optional_subdir=False): with chdir_subdir(subdir=None): if optional_subdir: subdir = "subdir" os.mkdir(subdir) else: subdir = "." with chdir_subdir(subdir=subdir): with open("conanfile.py", "w") as fd: fd.write(recipe_buffer) fd.flush() recipe = build_shared.get_recipe_path(cwd=subdir) assert expected_value == build_shared.is_shared(recipe=recipe)
def get_builder(shared_option_name=None, pure_c=True, dll_with_static_runtime=False, build_policy=None, cwd=None, **kwargs): recipe = build_shared.get_recipe_path(cwd) builder = build_shared.get_builder(build_policy, cwd=cwd, **kwargs) if shared_option_name is None and build_shared.is_shared(): shared_option_name = "%s:shared" % build_shared.get_name_from_recipe( recipe=recipe) builder.add_common_builds(shared_option_name=shared_option_name, pure_c=pure_c, dll_with_static_runtime=dll_with_static_runtime, **kwargs) return builder
import os from bincrafters import build_template_default, build_shared from cpt.packager import ConanMultiPackager class FakeLinuxPlatformInfo(object): @staticmethod def system(): return "Linux" if __name__ == "__main__": if "GCC_ON_MACOS" in os.environ: builder = ConanMultiPackager(platform_info=FakeLinuxPlatformInfo()) shared_option_name = None if build_shared.is_shared(): shared_option_name = "%s:shared" % build_shared.get_name_from_recipe() builder.add_common_builds(shared_option_name=shared_option_name, pure_c=True, dll_with_static_runtime=False) filtered_builds = [] for settings, options, env_vars, build_requires, reference in builder.items: settings["compiler.libcxx"] = "libstdc++" if not settings["arch"] == "x86": filtered_builds.append([settings, options, env_vars, build_requires]) builder.builds = filtered_builds else: builder = build_template_default.get_builder(pure_c=True) builder.run()
# Copyright (c) 2019, Kai Wolf - SW Consulting. All rights reserved. # For the licensing terms see LICENSE file in the root directory. For the # list of contributors see the AUTHORS file in the same directory. from bincrafters import build_shared if __name__ == "__main__": recipe = build_shared.get_recipe_path() bbuilder = build_shared.get_builder(build_policy=None) shared_option_name = None if (build_shared.is_shared()): shared_option_name = "%s:shared" % build_shared.get_name_from_recipe( recipe=recipe) bbuilder.add_common_builds(shared_option_name=shared_option_name, pure_c=False, dll_with_static_runtime=False) bbuilder.run()
def add_gflags_shared(build): if build_shared.is_shared(): shared_option_name = "%s:shared" % build_shared.get_name_from_recipe() build.options.update( {'gflags:shared': build.options[shared_option_name]}) return build