def _configure_meson(self): meson = Meson(self) defs = {} if self.settings.os == "Linux": defs["wayland_backend" if self._gtk3 else "wayland-backend"] = "true" if self.options.with_wayland else "false" defs["x11_backend" if self._gtk3 else "x11-backend"] = "true" if self.options.with_x11 else "false" defs["introspection"] = "false" if self._gtk3 else "disabled" defs["gtk_doc"] = "false" defs["man-pages" if self._gtk4 else "man"] = "false" defs["tests" if self._gtk3 else "build-tests"] = "false" defs["examples" if self._gtk3 else "build-examples"] = "false" defs["demos"] = "false" defs["datadir"] = os.path.join(self.package_folder, "res", "share") defs["localedir"] = os.path.join(self.package_folder, "res", "share", "locale") defs["sysconfdir"] = os.path.join(self.package_folder, "res", "etc") if self._gtk4: enabled_disabled = lambda opt : "enabled" if opt else "disabled" defs["media-ffmpeg"] = enabled_disabled(self.options.with_ffmpeg) defs["media-gstreamer"] = enabled_disabled(self.options.with_gstreamer) defs["print-cups"] = enabled_disabled(self.options.with_cups) if tools.Version(self.version) < "4.3.2": defs["print-cloudprint"] = enabled_disabled(self.options.with_cloudprint) args=[] args.append("--wrap-mode=nofallback") meson.configure(defs=defs, build_folder=self._build_subfolder, source_folder=self._source_subfolder, pkg_config_paths=[self.install_folder], args=args) return meson
def _configure_meson(self): meson = Meson(self) defs = dict() if tools.is_apple_os(self.settings.os): defs[ "iconv"] = "external" # https://gitlab.gnome.org/GNOME/glib/issues/1557 defs["selinux"] = "enabled" if self.options.get_safe( "with_selinux") else "disabled" defs["libmount"] = "enabled" if self.options.get_safe( "with_mount") else "disabled" defs["internal_pcre"] = not self.options.with_pcre if self.settings.os == "FreeBSD": defs["xattr"] = "false" defs["tests"] = "false" if tools.Version(self.version) >= "2.67.0": defs["libelf"] = "enabled" if self.options.with_elf else "disabled" meson.configure( source_folder=self._source_subfolder, args=["--wrap-mode=nofallback"], build_folder=self._build_subfolder, defs=defs, ) return meson
def _configure_meson(self): meson = Meson(self) defs = dict() if tools.is_apple_os(self.settings.os): defs[ "iconv"] = "native" # https://gitlab.gnome.org/GNOME/glib/issues/1557 elif self.settings.os == "Linux": defs["selinux"] = self.options.with_selinux defs["libmount"] = self.options.with_mount defs["libdir"] = "lib" if str(self.settings.compiler) in ["gcc", "clang"]: if self.settings.arch == "x86": defs["c_args"] = "-m32" defs["cpp_args"] = "-m32" defs["c_link_args"] = "-m32" defs["cpp_link_args"] = "-m32" elif self.settings.arch == "x86_64": defs["c_args"] = "-m64" defs["cpp_args"] = "-m64" defs["c_link_args"] = "-m64" defs["cpp_link_args"] = "-m64" meson.configure(source_folder=self._source_subfolder, build_folder=self._build_subfolder, defs=defs) return meson
def _configure_meson(self): meson = Meson(self) defs = {} if tools.Version(self.version) >= "2.42.0": defs["introspection"] = "false" else: defs["gir"] = "false" defs["docs"] = "false" defs["man"] = "false" defs["installed_tests"] = "false" defs["png"] = "true" if self.options.with_libpng else "false" defs["tiff"] = "true" if self.options.with_libtiff else "false" defs["jpeg"] = "true" if self.options.with_libjpeg else "false" if "with_jasper" in self.options: defs["jasper"] = "true" if self.options.with_jasper else "false" if tools.Version(self.version) < "2.42.0": defs["x11"] = "false" defs["builtin_loaders"] = "all" defs["gio_sniffing"] = "false" defs[ "introspection"] = "enabled" if self.options.with_introspection else "disabled" args = [] args.append("--wrap-mode=nofallback") meson.configure(defs=defs, build_folder=self._build_subfolder, source_folder=self._source_subfolder, pkg_config_paths=".", args=args) return meson
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))
def _configure_meson(self): if self._meson: return self._meson defs = { "enable-wayland": self.options.with_wayland, "enable-docs": self.options.docs, "enable-x11": self.options.with_x11, "libdir": os.path.join(self.package_folder, "lib"), "default_library": ("shared" if self.options.shared else "static") } if self._has_xkbregistry_option: defs["enable-xkbregistry"] = self.options.xkbregistry # workaround for https://github.com/conan-io/conan-center-index/issues/3377 # FIXME: do not remove this pkg-config file once xorg recipe fixed xeyboard_config_pkgfile = os.path.join(self.build_folder, "xkeyboard-config.pc") if os.path.isfile(xeyboard_config_pkgfile): os.remove(xeyboard_config_pkgfile) self._meson = Meson(self) self._meson.configure(defs=defs, source_folder=self._source_subfolder, build_folder=self._build_subfolder, pkg_config_paths=self.build_folder) return self._meson
def _configure_meson(self): defs = dict() def add_flag(name, value): if name in defs: defs[name] += " " + value else: defs[name] = value def add_compiler_flag(value): add_flag("c_args", value) add_flag("cpp_args", value) def add_linker_flag(value): add_flag("c_link_args", value) add_flag("cpp_link_args", value) meson = Meson(self) if self.settings.compiler == "Visual Studio": add_linker_flag("-lws2_32") add_compiler_flag("-%s" % self.settings.compiler.runtime) if int(str(self.settings.compiler.version)) < 14: add_compiler_flag("-Dsnprintf=_snprintf") if self.settings.get_safe("compiler.runtime"): defs["b_vscrt"] = str(self.settings.compiler.runtime).lower() defs["tools"] = "disabled" defs["examples"] = "disabled" defs["benchmarks"] = "disabled" defs["tests"] = "disabled" meson.configure(build_folder=self._build_subfolder, source_folder=self._source_subfolder, defs=defs) return meson
def _configure_meson(self): meson = Meson(self) defs = {} if self.settings.os == "Linux": defs[ "wayland_backend" if self._gtk3 else "wayland-backend"] = "true" if self.options.with_wayland else "false" defs["x11_backend" if self._gtk3 else "x11-backend"] = "true" if self.options.with_x11 else "false" defs["introspection"] = "false" if self._gtk3 else "disabled" defs["documentation"] = "false" defs["man-pages"] = "false" defs["tests" if self._gtk3 else "build-tests"] = "false" defs["examples" if self._gtk3 else "build-examples"] = "false" defs["demos"] = "false" defs["datadir"] = os.path.join(self.package_folder, "res", "share") defs["localedir"] = os.path.join(self.package_folder, "res", "share", "locale") defs["sysconfdir"] = os.path.join(self.package_folder, "res", "etc") args = [] args.append("--wrap-mode=nofallback") meson.configure(defs=defs, build_folder=self._build_subfolder, source_folder=self._source_subfolder, pkg_config_paths=[self.install_folder], args=args) return meson
def _configure_meson(self): if self._meson: return self._meson self._meson = Meson(self) self._meson.options["distro_install"] = True self._meson.configure(source_folder=self._source_subfolder, build_folder=self._build_subfolder) return self._meson
def build(self): args = [] if self.options.web: args.append("--with-web") args.append("--without-x") args.append("--without-xpm") args.append("--without-gif") args.append("--without-tiff") args.append("--without-sound") args.append("--without-dbus") args.append("--without-selinux") args.append("--without-xml2") args.append("--without-gnutls") args.append("--without-libgmp") elif self.options.nativecomp: args.append("--with-nativecomp") else: args.append("--with-x-toolkit=gtk3") if self.options.web: meson = Meson(self) meson.configure(source_folder="emacs") else: with tools.chdir("emacs"): self.run("sh autogen.sh") autotools = AutoToolsBuildEnvironment(self) autotools.configure(args=args) autotools.make()
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 _configure_meson(self): if self._meson: return self._meson self._meson = Meson(self) self._meson.options["tests"] = False self._meson.options["sharedstatedir"] = self._sharedstatedir self._meson.configure(source_folder=self._source_subfolder, build_folder=self._build_subfolder) return self._meson
def _configure_meson(self): if self._meson: return self._meson self._meson = Meson(self) self._meson.options["deprecated"] = self.options.with_deprecated self._meson.options["docs"] = False self._meson.configure(build_folder=self._build_subfolder, source_folder=self._source_subfolder) return self._meson
def _configure_meson(self): defs = dict() defs["introspection"] = "false" meson = Meson(self) meson.configure(build_folder="build", source_folder=self._source_subfolder, defs=defs, args=['--wrap-mode=nofallback']) return meson
def _configure_builder(self): if self._builder: return self._builder self._builder = Meson(self, backend=self._meson_backend) self._builder.configure(source_folder=self._source_subfolder, build_folder=self._build_subfolder, defs=self._defs, args=self._args) return self._builder
def _configure_meson(self): if self._meson: return self._meson self._meson = Meson(self) self._meson.options["examples"] = False self._meson.options["utils"] = False self._meson.options["tests"] = False self._meson.options["useroot"] = False self._meson.configure(source_folder=self._source_subfolder, build_folder=self._build_subfolder) return self._meson
def _configure_meson(self): meson = Meson(self) defs = {} defs['introspection'] = 'no' defs['docs'] = 'false' defs['x11'] = 'yes' if self.options.with_x11 else 'no' args=[] args.append('--wrap-mode=nofallback') meson.configure(defs=defs, build_folder=self._build_subfolder, source_folder=self._source_subfolder, pkg_config_paths='.', args=args) return meson
def _configure_meson(self): meson = Meson(self) defs = {} defs['introspection'] = 'false' defs['docs'] = 'false' args=[] args.append('--wrap-mode=nofallback') args.append('--localedir=%s' % os.path.join(self.package_folder, 'bin', 'share', 'locale')) meson.configure(defs=defs, build_folder=self._build_subfolder, source_folder=self._source_subfolder, pkg_config_paths='.', args=args) return meson
def _configure_meson(self): if self._meson: return self._meson self._meson = Meson(self) self._meson.options["runtime"] = self._idna_option self._meson.options["builtin"] = self._idna_option self._meson.configure(source_folder=self._source_subfolder, build_folder=self._build_subfolder, pkg_config_paths=[self.install_folder]) return self._meson
def _configure_meson(self): if self._meson: return self._meson self._meson = Meson(self) args = [] args.append('--wrap-mode=nofallback') self._meson.configure(build_folder=self._build_subfolder, source_folder=self._source_subfolder, pkg_config_paths='.', args=args) return self._meson
def _configure_meson(self): if self._meson: return self._meson self._meson = Meson(self) self._meson.options["deprecated"] = self.options.with_deprecated self._meson.options["docs"] = False if tools.Version(self.version) >= "1.0.10": self._meson.options["bin"] = False self._meson.options["tests"] = False self._meson.configure(build_folder=self._build_subfolder, source_folder=self._source_subfolder) return self._meson
def _configure_meson(self): meson = Meson(self) defs = dict() defs["build_introspection_data"] = self.options["glib"].shared meson.configure( source_folder=self._source_subfolder, args=["--wrap-mode=nofallback"], build_folder=self._build_subfolder, defs=defs, ) return meson
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()
def _configure_meson(self): yes_no = lambda v: "enabled" if v else "disabled" meson = Meson(self) defs = dict() defs["tests"] = "disabled" defs["zlib"] = yes_no(self.options.with_zlib) defs["png"] = yes_no(self.options.with_png) defs["freetype"] = yes_no(self.options.with_freetype) defs["fontconfig"] = yes_no(self.options.with_fontconfig) if self.settings.os == "Linux": defs["xcb"] = yes_no(self.options.get_safe("with_xcb")) defs["xlib"] = yes_no(self.options.get_safe("with_xlib")) defs["xlib-xrender"] = yes_no( self.options.get_safe("with_xlib_xrender")) else: defs["xcb"] = "disabled" defs["xlib"] = "disabled" if self.options.get_safe("with_opengl") == "desktop": defs["gl-backend"] = "gl" elif self.options.get_safe("with_opengl") == "gles2": defs["gl-backend"] = "glesv2" elif self.options.get_safe("with_opengl") == "gles3": defs["gl-backend"] = "glesv3" else: defs["gl-backend"] = "disabled" defs["glesv2"] = yes_no( self.options.get_safe("with_opengl") == "gles2") defs["glesv3"] = yes_no( self.options.get_safe("with_opengl") == "gles3") defs["tee"] = yes_no(self.options.tee) defs["symbol-lookup"] = yes_no( self.options.get_safe("with_symbol_lookup")) # future options to add, see meson_options.txt. # for now, disabling explicitly, to avoid non-reproducible auto-detection of system libs defs["cogl"] = "disabled" # https://gitlab.gnome.org/GNOME/cogl defs["directfb"] = "disabled" defs["drm"] = "disabled" # not yet compilable in cairo 1.17.4 defs["openvg"] = "disabled" # https://www.khronos.org/openvg/ defs["qt"] = "disabled" # not yet compilable in cairo 1.17.4 defs["gtk2-utils"] = "disabled" defs[ "spectre"] = "disabled" # https://www.freedesktop.org/wiki/Software/libspectre/ meson.configure( source_folder=self._source_subfolder, args=["--wrap-mode=nofallback"], build_folder=self._build_subfolder, defs=defs, ) return meson
def _configure_meson(self): defs = dict() def add_flag(name, value): if name in defs: defs[name] += " " + value else: defs[name] = value def add_compiler_flag(value): add_flag("c_args", value) add_flag("cpp_args", value) def add_linker_flag(value): add_flag("c_link_args", value) add_flag("cpp_link_args", value) meson = Meson(self) if self.settings.compiler == "Visual Studio": add_linker_flag("-lws2_32") add_compiler_flag(f"-{self.settings.compiler.runtime}") if int(str(self.settings.compiler.version)) < 14: add_compiler_flag("-Dsnprintf=_snprintf") if self.settings.get_safe("compiler.runtime"): defs["b_vscrt"] = str(self.settings.compiler.runtime).lower() for x in ["tools", "examples", "benchmarks", "tests"]: defs[x] = "disabled" for x in _features: defs[x] = self.options.get_safe(x) # Disable options that cause build issues on non-Linux systems if self.settings.os != 'Linux' or (hasattr(self, 'settings_build') and tools.cross_building( self, skip_x64_x86=True)): meson.options["introspection"] = "disabled" meson.options["orc"] = "disabled" # Disable unused plugins for plugin in ["closedcaption", "rsvg", "ttml", "openexr"]: meson.options[plugin] = "disabled" # Enable hls explicitly for HTTP streaming meson.options["hls"] = "enabled" meson.options["hls-crypto"] = "openssl" # Somehow Meson ignore PKG_CONFIG_PATH env. Force setting it with option. meson.options["pkg_config_path"] = os.getenv('PKG_CONFIG_PATH') meson.configure(build_folder=self._build_subfolder, source_folder=self._source_subfolder, defs=defs) return meson
def _configure_meson(self): if not self._meson: defs = { "tests": "false", } self._meson = Meson(self) self._meson.configure( source_folder=self._source_subfolder, build_folder=self._build_subfolder, defs=defs, args=['--datadir=%s' % os.path.join(self.package_folder, "res")], ) return self._meson
def _configure_meson(self): defs = dict() defs["introspection"] = "disabled" defs["libthai"] = "enabled" if self.options.with_libthai else "disabled" defs["cairo"] = "enabled" if self.options.with_cairo else "disabled" defs["xft"] = "enabled" if self.options.with_xft else "disabled" defs["fontconfig"] = "enabled" if self.options.with_fontconfig else "disabled" defs["freetype"] = "enabled" if self.options.with_freetype else "disabled" meson = Meson(self) meson.configure(build_folder=self._build_subfolder, source_folder=self._source_subfolder, defs=defs, args=['--wrap-mode=nofallback']) return meson
def _configure_meson(self): meson = Meson(self) meson.configure( defs={ "enable-wayland": self.options.with_wayland, "enable-docs": self.options.docs, "enable-x11": self.options.with_x11, "libdir": os.path.join(self.package_folder, "lib"), "default_library": ("shared" if self.options.shared else "static") }, source_folder=self._source_subfolder, build_folder=self._build_subfolder) return meson
def _configure_meson(self): meson = Meson(self) defs = dict() if tools.is_apple_os(self.settings.os): defs["iconv"] = "external" # https://gitlab.gnome.org/GNOME/glib/issues/1557 if self.settings.os == "Linux": defs["selinux"] = "enabled" if self.options.with_selinux else "disabled" defs["libmount"] = "enabled" if self.options.with_mount else "disabled" defs["internal_pcre"] = not self.options.with_pcre meson.configure(source_folder=self._source_subfolder, args=['--wrap-mode=nofallback'], build_folder=self._build_subfolder, defs=defs) return meson
def _configure_meson(self): if not self._meson: defs = { "tests": "false", } self._meson = Meson(self) self._meson.configure( source_folder=self._source_subfolder, build_folder=self._build_subfolder, defs=defs, args=[f'--datadir={self.package_folder}/res'], ) return self._meson
def build(self): meson = Meson(self) meson.configure() meson.build()
def build(self): meson = Meson(self) meson.configure(cache_build_folder="build") meson.build()