예제 #1
0
 def build(self):
     args = ["--auto-features=disabled", "-Dgl_platform=egl"]
     args.append("-Dintrospection=" +
                 ("enabled" if self.options.introspection else "disabled"))
     args.append("-Dgl=" + ("enabled" if self.options.gl else "disabled"))
     args.append("-Dx11=" + ("enabled" if self.options.x11 else "disabled"))
     args.append("-Dvideotestsrc=" +
                 ("enabled" if self.options.videotestsrc else "disabled"))
     args.append("-Daudiotestsrc=" +
                 ("enabled" if self.options.audiotestsrc else "disabled"))
     args.append("-Dvideoconvert=" +
                 ("enabled" if self.options.videoconvert else "disabled"))
     args.append("-Dapp=" + ("enabled" if self.options.app else "disabled"))
     args.append("-Dplayback=" +
                 ("enabled" if self.options.playback else "disabled"))
     args.append("-Dtypefind=" +
                 ("enabled" if self.options.typefind else "disabled"))
     args.append("-Dorc=" + ("enabled" if self.options.orc else "disabled"))
     args.append("-Dopus=" +
                 ("enabled" if self.options.opus else "disabled"))
     args.append("-Dpango=" +
                 ("enabled" if self.options.pango else "disabled"))
     args.append("-Daudioresample=" +
                 ("enabled" if self.options.audiotestsrc else "disabled"))
     args.append("-Dvideoscale=" +
                 ("enabled" if self.options.videoscale else "disabled"))
     args.append("-Daudioconvert=" +
                 ("enabled" if self.options.audioconvert else "disabled"))
     meson = Meson(self)
     meson.configure(
         source_folder="gst-plugins-base-" + self.version,
         args=args,
         pkg_config_paths=os.environ["PKG_CONFIG_PATH"].split(":"))
     meson.install()
예제 #2
0
    def package(self):
        meson = Meson(self)
        meson.install(build_dir="meson")
        if self.settings.os == "Linux":
            pass
        if self.settings.os == "Windows":
            bin_dir = os.path.join(self.package_folder, 'bin')
            vars_dict = tools.vcvars_dict(self.settings)

            windows_sdk_dir = vars_dict['WindowsSdkDir']
            windows_sdk_version = vars_dict['WindowsSDKVersion']
            ucrt_redist_dir = os.path.join(windows_sdk_dir, 'Redist',
                                           windows_sdk_version, 'ucrt', 'DLLs',
                                           'x64')
            if not os.path.exists(ucrt_redist_dir):
                raise ConanInvalidConfiguration(
                    "ucrt redist dir does not exist: %s" % (ucrt_redist_dir))
            self.copy('*.dll', dst=bin_dir, src=ucrt_redist_dir)

            vctoolsredist_dir = vars_dict['VCToolsRedistDir']
            vcredist_dir = os.path.join(vctoolsredist_dir, 'x64',
                                        'Microsoft.VC142.CRT')
            if not os.path.exists(vcredist_dir):
                raise ConanInvalidConfiguration(
                    "ucrt redist dir does not exist: %s" % (ucrt_redist_dir))
            self.copy('*.dll', dst=bin_dir, src=vcredist_dir)

            qt_path_bin = self._get_qt_bin_paths()
            with tools.environment_append({"PATH": qt_path_bin}):
                with tools.chdir(bin_dir):
                    qml_dir = os.path.join(self.source_folder, 'fubble', 'app')
                    # dont do -no-widgets # widgets is needed for svg
                    self.run(
                        'windeployqt.exe fubble.exe --no-compiler-runtime --qmldir "%s"'
                        % (qml_dir))
예제 #3
0
 def build(self):
     if self.options.build_system == "meson":
         meson = Meson(self)
         meson.configure(build_folder="build")
         meson.install()
     elif self.options.build_system == "cmake":
         cmake = CMake(self, generator="Ninja")
         cmake.configure()
         cmake.install()
예제 #4
0
    def build(self):
        definitions  = {}
        definitions["gallium-drivers"]="swrast"
        definitions["llvm"]="enabled"
        definitions["shared-llvm"]="disabled"
        definitions["llvm-rtti"]="enabled" if self.options["llvm-core"].rtti else "disabled"

        meson = Meson(self)
        meson.configure(source_folder="mesa-{}".format(self.version), defs=definitions, args=["--debug"])
        meson.build()
        meson.install()
예제 #5
0
    def build(self):
        args = ["--auto-features=disabled"]
        args.append("-Dvideoparsers=" +
                    ("enabled" if self.options.videoparsers else "disabled"))
        args.append("-Dgl=" + ("enabled" if self.options.gl else "disabled"))
        args.append("-Dpnm=" + ("enabled" if self.options.pnm else "disabled"))
        args.append("-Dwebrtc=" +
                    ("enabled" if self.options.webrtc else "disabled"))
        args.append("-Dsrtp=" +
                    ("enabled" if self.options.srtp else "disabled"))
        args.append("-Drtmp2=" +
                    ("enabled" if self.options.rtmp2 else "disabled"))
        args.append("-Ddtls=" +
                    ("enabled" if self.options.srtp else "disabled"))
        args.append("-Dmpegtsmux=" +
                    ("enabled" if self.options.mpegtsmux else "disabled"))
        args.append("-Dmpegtsdemux=" +
                    ("enabled" if self.options.mpegtsdemux else "disabled"))
        args.append("-Ddebugutils=" +
                    ("enabled" if self.options.debugutils else "disabled"))
        args.append("-Dopencv=" +
                    ("enabled" if self.options.opencv else "disabled"))
        args.append("-Dclosedcaption=" +
                    ("enabled" if self.options.closedcaption else "disabled"))
        args.append("-Dinter=" +
                    ("enabled" if self.options.inter else "disabled"))
        use_cuda = self.options.nvdec or self.options.nvenc or self.options.nvcodec
        if self.settings.arch == "x86_64":
            args.append("-Dnvdec=" +
                        ("enabled" if self.options.nvdec else "disabled"))
            args.append("-Dnvenc=" +
                        ("enabled" if self.options.nvenc else "disabled"))
            if self.version == "master":
                args.append("-Dnvcodec=" + (
                    "enabled" if self.options.nvcodec else "disabled"))

        meson = Meson(self)
        if use_cuda:
            with tools.environment_append({
                    "CUDA_PATH":
                    self.deps_user_info["cuda_dev_config"].cuda_root
            }):
                meson.configure(
                    source_folder="gst-plugins-bad-%s" % self.version,
                    args=args,
                    pkg_config_paths=os.environ["PKG_CONFIG_PATH"].split(":"))
        else:
            meson.configure(
                source_folder="gst-plugins-bad-%s" % self.version,
                args=args,
                pkg_config_paths=os.environ["PKG_CONFIG_PATH"].split(":"))
        meson.build()
        meson.install()
예제 #6
0
 def build(self):
     args = [
         "--auto-features=disabled",
         "-Dman=False",
         "-Dgtk_doc=False",
         "-Dlibmount=False",
         "-Dinternal_pcre=False",
     ]
     meson = Meson(self)
     meson.configure(
         source_folder="%s-%s" % (self.name, self.version),
         args=args,
         pkg_config_paths=os.environ["PKG_CONFIG_PATH"].split(":"))
     meson.install()
예제 #7
0
 def build(self):
     args = ["--auto-features=disabled"]
     args.append("-Dcheck=" +
                 ("enabled" if self.options.examples else "disabled"))
     args.append("-Dtools=" +
                 ("enabled" if self.options.tests else "disabled"))
     args.append("-Dintrospection=" +
                 ("enabled" if self.options.introspection else "disabled"))
     args.append("-Drtspclientsink=" +
                 ("enabled" if self.options.rtspclientsink else "disabled"))
     meson = Meson(self)
     meson.configure(
         source_folder="gst-rtsp-server-%s" % self.version,
         args=args,
         pkg_config_paths=os.environ["PKG_CONFIG_PATH"].split(":"))
     meson.install()
예제 #8
0
    def build(self):
        pkg_config_paths = []
        if "PKG_CONFIG_PATH" in os.environ:
            pkg_config_paths.extend(os.environ["PKG_CONFIG_PATH"].split(":"))
        pkg_config_paths.append(self.build_folder)

        args = ["--auto-features=disabled"]
        args.append("-Dintrospection=" +
                    ("enabled" if self.options.introspection else "disabled"))
        args.append("-Dcheck=" +
                    ("enabled" if self.options.check else "disabled"))
        args.append("-Dtools=" +
                    ("enabled" if self.options.tools else "disabled"))
        meson = Meson(self)
        meson.configure(source_folder="%s-%s" % (self.name, self.version),
                        args=args,
                        pkg_config_paths=pkg_config_paths)
        meson.install()
    def build(self):
        args = ["--auto-features=disabled"]
        args.append("-Dautodetect=" +
                    ("enabled" if self.options.autodetect else "disabled"))
        args.append("-Dgl=" + ("enabled" if self.options.gl else "disabled"))
        args.append("-Dx11=" + ("enabled" if self.options.x11 else "disabled"))
        args.append("-Drtp=" + ("enabled" if self.options.rtp else "disabled"))
        args.append("-Drtsp=" +
                    ("enabled" if self.options.rtsp else "disabled"))
        args.append("-Drtpmanager=" +
                    ("enabled" if self.options.rtp else "disabled"))
        args.append("-Dudp=" + ("enabled" if self.options.udp else "disabled"))
        args.append("-Dpng=" + ("enabled" if self.options.png else "disabled"))
        args.append("-Disomp4=" +
                    ("enabled" if self.options.isomp4 else "disabled"))
        args.append("-Dvideofilter=" +
                    ("enabled" if self.options.videofilter else "disabled"))
        args.append("-Dvpx=" + ("enabled" if self.options.vpx else "disabled"))
        args.append("-Dmultifile=" +
                    ("enabled" if self.options.multifile else "disabled"))
        args.append("-Dmatroska=" +
                    ("enabled" if self.options.matroska else "disabled"))
        args.append("-Dvideomixer=" +
                    ("enabled" if self.options.videomixer else "disabled"))
        args.append("-Dximagesrc=" +
                    ("enabled" if self.options.ximagesrc else "disabled"))
        args.append("-Dximagesrc-xdamage=" + (
            "enabled" if self.options.ximagesrc_xdamage else "disabled"))
        args.append("-Dxshm=" +
                    ("enabled" if self.options.ximagesrc_xshm else "disabled"))
        args.append("-Djpeg=" +
                    ("enabled" if self.options.jpeg else "disabled"))

        meson = Meson(self)
        meson.configure(
            source_folder="gst-plugins-good-%s" % self.version,
            args=args,
            pkg_config_paths=os.environ["PKG_CONFIG_PATH"].split(":"))
        meson.install()
예제 #10
0
 def build(self):
     args = [
         "--auto-features=disabled",
         "--wrap-mode=nofallback",
         "-Dglvnd=true",
         "-Dglx=dri",
         "-Degl=true",
         "-Dgles1=false",
         "-Dgles2=true",
         "-Dgles3=true",
         "-Dplatforms=x11",
         "-Dvulkan-drivers=",
         "-Dgallium-drivers=",
     ]
     if self.settings.arch == "x86_64":
         args.append("-Ddri-drivers=i915,i965")
     if self.settings.arch == "armv8":
         args.append("-Dgallium-drivers=nouveau,tegra")
     meson = Meson(self)
     meson.configure(source_folder="%s-%s" % (self.name, self.version),
                     args=args)
     meson.install()
예제 #11
0
class SshfsConan(ConanFile):
    name = 'sshfs'
    version = '3.7.0'
    license = 'GPLv2'
    author = '*****@*****.**'
    url = 'https://github.com/bobrofon/sshfs-conan'
    description = 'A network filesystem client to connect to SSH servers'
    requires = ('glib/2.64.0@bobrofon/stable', 'fuse3/3.9.1@bobrofon/stable')
    topics = ('ssh', 'fuse', 'fs')
    settings = ('os', 'compiler', 'build_type', 'arch')
    options = {'shared': [True, False]}
    default_options = {'shared': False, 'glib:with_elf': False}
    generators = 'pkg_config'
    build_requires = ('meson/0.54.0',
                      'pkg-config_installer/0.29.2@bincrafters/stable')

    patches = 'patches/*.patch'
    exports = 'tools/*.py', patches
    src_repo_folder = 'sshfs'

    cross_file_name = 'cross_file.txt'

    meson = None

    def configure(self):
        if self.options.shared == False:
            self.options['glib'].shared = False
            self.options['fuse3'].shared = False

    def source(self):
        git_tag = '{}-{}'.format(self.name, self.version)

        git = tools.Git(folder=self.src_repo_folder)
        git.clone('https://github.com/libfuse/sshfs.git', git_tag)

    @classmethod
    def apply_patches(cls):
        for patch in sorted(glob.glob(cls.patches)):
            print('Apply patch {}'.format(patch))
            tools.patch(base_path=cls.src_repo_folder, patch_file=patch)

    def build(self):
        self.apply_patches()
        tools.replace_in_file('glib.pc', ' -lresolv ', ' ')
        tools.replace_in_file('glib.pc', ' -lgio-2.0 ', ' ')
        tools.replace_in_file('glib.pc', ' -lgmodule-2.0 ', ' ')
        tools.replace_in_file('glib.pc', ' -lgobject-2.0 ', ' ')

        defs = meson_tools.common_flags(self.settings)

        if not self.options.shared:
            append_value(defs, 'c_link_args', '-static')

        args = []

        if tools.cross_building(self.settings):
            meson_tools.write_cross_file(self.cross_file_name, self)
            args += ['--cross-file', self.cross_file_name]

        # there is no usage of native compiler but we had to trick
        # meson's sanity check somehow
        meson_env = (meson_tools.with_fake_compiler()
                     if tools.cross_building(self.settings) else tools.no_op())
        self.meson = Meson(self)
        with meson_env:
            self.meson.configure(source_folder=self.src_repo_folder,
                                 build_folder='build',
                                 defs=defs,
                                 args=args)
        self.meson.build()

    def package(self):
        self.meson.install()