@@ -137,30 +137,12 @@ gio = dependency('gio-2.0', version: glib_required_version,
137137ffi = dependency (' libffi' , fallback : [' libffi' , ' ffi_dep' ])
138138gi = dependency (' gobject-introspection-1.0' , version : ' >= 1.66.0' ,
139139 fallback : [' gobject-introspection' , ' girepo_dep' ])
140+ cairo = dependency (' cairo' , fallback : [' cairo' , ' libcairo_dep' ])
141+ cairo_gobject = dependency (' cairo-gobject' ,
142+ fallback : [' cairo' , ' libcairogobject_dep' ])
143+ cairo_xlib = dependency (' cairo-xlib' , required : false )
140144spidermonkey = dependency (' mozjs-115' )
141145
142- # We might need to look for the headers and lib's for Cairo
143- # manually on MSVC/clang-cl builds...
144- if get_option (' cairo' ).disabled()
145- # dummy not-found dependency since we break the tristate feature in the else block
146- cairo = dependency ('' , required : false )
147- cairo_gobject = cairo
148- cairo_xlib = cairo
149- else
150- cairo = dependency (' cairo' , required : get_option (' cairo' ).enabled() and cxx.get_argument_syntax() != ' msvc' )
151- cairo_gobject = dependency (' cairo-gobject' , required : cairo.found() and cxx.get_argument_syntax() != ' msvc' )
152- cairo_xlib = dependency (' cairo-xlib' , required : false )
153- endif
154-
155- if cxx.get_argument_syntax() == ' msvc' and not get_option (' cairo' ).disabled()
156- if not cairo.found()
157- cairo = cc.find_library (' cairo' , has_headers : [' cairo.h' ], required : get_option (' cairo' ).enabled())
158- endif
159- if not cairo_gobject.found()
160- cairo_gobject = cc.find_library (' cairo-gobject' , has_headers : [' cairo-gobject.h' ], required : cairo.found())
161- endif
162- endif
163-
164146sysprof_capture = dependency (' sysprof-capture-4' ,
165147 required : get_option (' profiler' ), include_type : ' system' ,
166148 fallback : [' sysprof' , ' libsysprof_capture_dep' ],
@@ -241,7 +223,6 @@ it on other platforms.''')
241223 endif
242224endif
243225
244- build_cairo = cairo.found()
245226build_readline = readline.found()
246227
247228### Check for library features #################################################
@@ -334,8 +315,6 @@ header_conf.set('GJS_VERSION', int_version,
334315header_conf.set_quoted(' PACKAGE_STRING' , ' @0@ @1@' .format(meson .project_name(),
335316 meson .project_version()))
336317
337- header_conf.set(' ENABLE_CAIRO' , build_cairo,
338- description : ' Build with Cairo support' )
339318header_conf.set(' ENABLE_PROFILER' , build_profiler,
340319 description : ' Build the profiler' )
341320# COMPAT: SpiderMonkey headers in some places use DEBUG instead of JS_DEBUG
@@ -451,6 +430,23 @@ libgjs_sources = [
451430 ' modules/console.cpp' , ' modules/console.h' ,
452431 ' modules/print.cpp' , ' modules/print.h' ,
453432 ' modules/system.cpp' , ' modules/system.h' ,
433+ ' modules/cairo-private.h' ,
434+ ' modules/cairo-module.h' ,
435+ ' modules/cairo-region.cpp' ,
436+ ' modules/cairo-context.cpp' ,
437+ ' modules/cairo-path.cpp' ,
438+ ' modules/cairo-surface.cpp' ,
439+ ' modules/cairo-image-surface.cpp' ,
440+ ' modules/cairo-ps-surface.cpp' ,
441+ ' modules/cairo-pdf-surface.cpp' ,
442+ ' modules/cairo-svg-surface.cpp' ,
443+ ' modules/cairo-pattern.cpp' ,
444+ ' modules/cairo-gradient.cpp' ,
445+ ' modules/cairo-linear-gradient.cpp' ,
446+ ' modules/cairo-radial-gradient.cpp' ,
447+ ' modules/cairo-surface-pattern.cpp' ,
448+ ' modules/cairo-solid-pattern.cpp' ,
449+ ' modules/cairo.cpp' ,
454450]
455451
456452# GjsPrivate introspection sources
@@ -473,54 +469,20 @@ libgjs_jsapi_sources = [
473469 ' util/misc.cpp' , ' util/misc.h' ,
474470]
475471
476- module_cairo_srcs = [
477- ' modules/cairo-private.h' ,
478- ' modules/cairo-module.h' ,
479- ' modules/cairo-region.cpp' ,
480- ' modules/cairo-context.cpp' ,
481- ' modules/cairo-path.cpp' ,
482- ' modules/cairo-surface.cpp' ,
483- ' modules/cairo-image-surface.cpp' ,
484- ' modules/cairo-ps-surface.cpp' ,
485- ' modules/cairo-pdf-surface.cpp' ,
486- ' modules/cairo-svg-surface.cpp' ,
487- ' modules/cairo-pattern.cpp' ,
488- ' modules/cairo-gradient.cpp' ,
489- ' modules/cairo-linear-gradient.cpp' ,
490- ' modules/cairo-radial-gradient.cpp' ,
491- ' modules/cairo-surface-pattern.cpp' ,
492- ' modules/cairo-solid-pattern.cpp' ,
493- ' modules/cairo.cpp' ,
494- ]
495-
496472module_resource_srcs = gnome.compile_resources(' js-resources' ,
497473 ' js.gresource.xml' ,
498474 c_name : ' js_resources' )
499475module_resource_lib = static_library (' js-resources' , module_resource_srcs,
500476 dependencies : gio, override_options : [' unity=off' ])
501477
502- libgjs_dependencies = [glib, gobject, gthread, gio, gi, ffi, spidermonkey,
503- readline, libatomic]
504- pkg_dependencies = [glib, gobject, gthread, gio, gi, ffi, spidermonkey]
505- libraries_private = []
506-
507- if build_cairo
508- libgjs_sources += module_cairo_srcs
509- libgjs_dependencies += [cairo, cairo_gobject]
510- if cairo.type_name() == ' pkgconfig'
511- pkg_dependencies += [cairo]
512- elif cairo.type_name() == ' library'
513- libraries_private += cairo
514- endif
515- if cairo_gobject.type_name() == ' pkgconfig'
516- pkg_dependencies += [cairo_gobject]
517- elif cairo_gobject.type_name() == ' library'
518- libraries_private += cairo_gobject
519- endif
520- if cairo_xlib.found()
521- libgjs_dependencies += cairo_xlib
522- pkg_dependencies += cairo_xlib
523- endif
478+ libgjs_dependencies = [glib, gobject, gthread, gio, gi, ffi, cairo,
479+ cairo_gobject, spidermonkey, readline, libatomic]
480+ pkg_dependencies = [glib, gobject, gthread, gio, gi, ffi, cairo, cairo_gobject,
481+ spidermonkey]
482+
483+ if cairo_xlib.found()
484+ libgjs_dependencies += cairo_xlib
485+ pkg_dependencies += cairo_xlib
524486endif
525487
526488if build_readline
@@ -624,7 +586,6 @@ endif
624586
625587pkg.generate(libgjs, name : api_name, description : ' JS bindings for GObjects' ,
626588 requires : [glib, gobject, gio], requires_private : pkg_dependencies,
627- libraries_private : libraries_private,
628589 subdirs : api_name,
629590 variables : [
630591 ' exec_prefix=${prefix}' ,
@@ -752,10 +713,6 @@ building a debug or debugoptimized build. This will make development more
752713difficult. Consider reconfiguring SpiderMonkey with --enable-debug.''' )
753714endif
754715
755- if not build_cairo
756- warning (' Building without Cairo support, not all tests will be run.' )
757- endif
758-
759716if get_option (' skip_gtk_tests' )
760717 warning (' Not using GTK, not all tests will be run.' )
761718endif
@@ -806,7 +763,6 @@ summary({
806763 ' Precompiled headers' : get_option (' b_pch' ),
807764}, section : ' Build options' , bool_yn : true )
808765summary ({
809- ' Cairo module' : build_cairo,
810766 ' Use readline for input' : build_readline,
811767 ' Profiler (Linux only)' : build_profiler,
812768 ' Dtrace debugging' : get_option (' dtrace' ),
0 commit comments