2017-12-29 04:47:22 +00:00
|
|
|
gsk_private_gl_shaders = [
|
2020-01-19 19:08:23 +00:00
|
|
|
'resources/glsl/preamble.glsl',
|
2019-12-14 21:06:12 +00:00
|
|
|
'resources/glsl/preamble.fs.glsl',
|
|
|
|
'resources/glsl/preamble.vs.glsl',
|
|
|
|
'resources/glsl/border.glsl',
|
|
|
|
'resources/glsl/blit.glsl',
|
|
|
|
'resources/glsl/coloring.glsl',
|
|
|
|
'resources/glsl/color.glsl',
|
|
|
|
'resources/glsl/linear_gradient.glsl',
|
|
|
|
'resources/glsl/color_matrix.glsl',
|
|
|
|
'resources/glsl/blur.glsl',
|
|
|
|
'resources/glsl/inset_shadow.glsl',
|
|
|
|
'resources/glsl/outset_shadow.glsl',
|
|
|
|
'resources/glsl/unblurred_outset_shadow.glsl',
|
|
|
|
'resources/glsl/cross_fade.glsl',
|
|
|
|
'resources/glsl/blend.glsl',
|
|
|
|
'resources/glsl/repeat.glsl',
|
2017-03-18 12:14:12 +00:00
|
|
|
]
|
|
|
|
|
2017-03-11 22:31:31 +00:00
|
|
|
gsk_public_sources = files([
|
2018-03-27 22:34:23 +00:00
|
|
|
'gskdiff.c',
|
2019-05-01 21:58:57 +00:00
|
|
|
'gskcairorenderer.c',
|
2016-11-03 08:47:00 +00:00
|
|
|
'gskrenderer.c',
|
|
|
|
'gskrendernode.c',
|
2017-03-11 22:31:31 +00:00
|
|
|
'gskrendernodeimpl.c',
|
2019-05-14 01:20:09 +00:00
|
|
|
'gskrendernodeparser.c',
|
2019-02-28 08:52:49 +00:00
|
|
|
'gskroundedrect.c',
|
|
|
|
'gsktransform.c',
|
2019-05-02 00:13:16 +00:00
|
|
|
'gl/gskglrenderer.c',
|
2017-03-11 22:31:31 +00:00
|
|
|
])
|
|
|
|
|
|
|
|
gsk_private_sources = files([
|
|
|
|
'gskcairoblur.c',
|
2016-11-03 08:47:00 +00:00
|
|
|
'gskdebug.c',
|
|
|
|
'gskprivate.c',
|
|
|
|
'gskprofiler.c',
|
2019-12-14 21:06:12 +00:00
|
|
|
'gl/gskglshaderbuilder.c',
|
2017-11-22 19:13:46 +00:00
|
|
|
'gl/gskglprofiler.c',
|
|
|
|
'gl/gskglglyphcache.c',
|
|
|
|
'gl/gskglimage.c',
|
|
|
|
'gl/gskgldriver.c',
|
2018-07-08 18:08:15 +00:00
|
|
|
'gl/gskglrenderops.c',
|
|
|
|
'gl/gskglshadowcache.c',
|
2018-12-02 09:20:59 +00:00
|
|
|
'gl/gskglnodesample.c',
|
2019-05-22 05:33:45 +00:00
|
|
|
'gl/gskgltextureatlas.c',
|
2019-05-22 07:33:25 +00:00
|
|
|
'gl/gskgliconcache.c',
|
2019-10-11 14:23:33 +00:00
|
|
|
'gl/opbuffer.c',
|
2019-02-10 09:12:47 +00:00
|
|
|
'gl/stb_rect_pack.c',
|
2016-11-03 08:47:00 +00:00
|
|
|
])
|
|
|
|
|
2017-03-17 23:43:36 +00:00
|
|
|
gsk_public_headers = files([
|
2019-05-01 21:58:57 +00:00
|
|
|
'gskcairorenderer.h',
|
2016-11-03 08:47:00 +00:00
|
|
|
'gskenums.h',
|
|
|
|
'gskrenderer.h',
|
|
|
|
'gskrendernode.h',
|
2017-03-17 23:43:36 +00:00
|
|
|
'gskroundedrect.h',
|
2019-02-28 08:52:49 +00:00
|
|
|
'gsktransform.h',
|
2016-11-03 08:47:00 +00:00
|
|
|
'gsktypes.h',
|
2019-05-02 00:13:16 +00:00
|
|
|
'gsk-autocleanup.h',
|
2016-11-03 08:47:00 +00:00
|
|
|
])
|
2017-04-26 15:02:17 +00:00
|
|
|
install_headers(gsk_public_headers, 'gsk.h', subdir: 'gtk-4.0/gsk')
|
2017-03-18 13:07:38 +00:00
|
|
|
|
2019-05-02 00:13:16 +00:00
|
|
|
gsk_public_gl_headers = files([
|
|
|
|
'gl/gskglrenderer.h'
|
|
|
|
])
|
|
|
|
install_headers(gsk_public_gl_headers, subdir: 'gtk-4.0/gsk/gl')
|
|
|
|
gsk_public_headers += gsk_public_gl_headers
|
|
|
|
|
2019-05-02 00:46:23 +00:00
|
|
|
gsk_public_broadway_headers = files([
|
|
|
|
'broadway/gskbroadwayrenderer.h'
|
|
|
|
])
|
2020-04-11 14:41:47 +00:00
|
|
|
install_headers(gsk_public_broadway_headers, subdir: 'gtk-4.0/gsk/broadway')
|
|
|
|
gsk_public_headers += gsk_public_broadway_headers
|
2019-05-02 00:46:23 +00:00
|
|
|
|
2019-05-02 00:57:23 +00:00
|
|
|
gsk_public_vulkan_headers = files([
|
|
|
|
'vulkan/gskvulkanrenderer.h'
|
|
|
|
])
|
2020-04-11 14:41:47 +00:00
|
|
|
install_headers(gsk_public_vulkan_headers, subdir: 'gtk-4.0/gsk/vulkan')
|
|
|
|
gsk_public_headers += gsk_public_vulkan_headers
|
2019-05-02 00:57:23 +00:00
|
|
|
|
2017-03-18 12:14:12 +00:00
|
|
|
gsk_private_vulkan_shaders = []
|
2017-09-05 16:47:10 +00:00
|
|
|
# This is an odd split because we use configure_file() below to workaround
|
|
|
|
# a limitation in meson preventing using custom_target() with gnome.compile_resources()
|
|
|
|
# and that requires file paths, but we also need to have dependencies during development
|
|
|
|
# on constantly regenerated files.
|
2017-03-18 12:14:12 +00:00
|
|
|
gsk_private_vulkan_compiled_shaders = []
|
2017-09-05 16:47:10 +00:00
|
|
|
gsk_private_vulkan_compiled_shaders_deps = []
|
2017-03-18 12:14:12 +00:00
|
|
|
|
2017-03-17 23:43:36 +00:00
|
|
|
if have_vulkan
|
|
|
|
gsk_private_sources += files([
|
2018-01-06 14:36:55 +00:00
|
|
|
'vulkan/gskvulkanblendmodepipeline.c',
|
|
|
|
'vulkan/gskvulkanblurpipeline.c',
|
|
|
|
'vulkan/gskvulkanborderpipeline.c',
|
|
|
|
'vulkan/gskvulkanboxshadowpipeline.c',
|
|
|
|
'vulkan/gskvulkanbuffer.c',
|
|
|
|
'vulkan/gskvulkanclip.c',
|
|
|
|
'vulkan/gskvulkancolorpipeline.c',
|
|
|
|
'vulkan/gskvulkancolortextpipeline.c',
|
|
|
|
'vulkan/gskvulkancrossfadepipeline.c',
|
|
|
|
'vulkan/gskvulkancommandpool.c',
|
|
|
|
'vulkan/gskvulkaneffectpipeline.c',
|
|
|
|
'vulkan/gskvulkanglyphcache.c',
|
|
|
|
'vulkan/gskvulkanlineargradientpipeline.c',
|
|
|
|
'vulkan/gskvulkanimage.c',
|
|
|
|
'vulkan/gskvulkantextpipeline.c',
|
|
|
|
'vulkan/gskvulkantexturepipeline.c',
|
|
|
|
'vulkan/gskvulkanmemory.c',
|
|
|
|
'vulkan/gskvulkanpipeline.c',
|
|
|
|
'vulkan/gskvulkanpushconstants.c',
|
|
|
|
'vulkan/gskvulkanrender.c',
|
|
|
|
'vulkan/gskvulkanrenderer.c',
|
|
|
|
'vulkan/gskvulkanrenderpass.c',
|
|
|
|
'vulkan/gskvulkanshader.c',
|
2017-03-17 23:43:36 +00:00
|
|
|
])
|
|
|
|
|
2017-08-15 15:17:05 +00:00
|
|
|
subdir('resources/vulkan')
|
2017-03-18 12:14:12 +00:00
|
|
|
endif # have_vulkan
|
|
|
|
|
2017-11-17 11:04:02 +00:00
|
|
|
if get_variable('broadway_enabled')
|
2019-05-02 00:46:23 +00:00
|
|
|
gsk_public_sources += files([
|
2019-03-29 08:09:54 +00:00
|
|
|
'broadway/gskbroadwayrenderer.c',
|
2017-11-17 11:04:02 +00:00
|
|
|
])
|
|
|
|
endif
|
|
|
|
|
2017-04-26 15:02:17 +00:00
|
|
|
gsk_resources_xml = configure_file(output: 'gsk.resources.xml',
|
|
|
|
input: 'gen-gsk-gresources-xml.py',
|
|
|
|
command: [
|
|
|
|
find_program('gen-gsk-gresources-xml.py'),
|
|
|
|
'@OUTPUT@',
|
2017-12-29 04:47:22 +00:00
|
|
|
gsk_private_gl_shaders,
|
2017-04-26 15:02:17 +00:00
|
|
|
gsk_private_vulkan_compiled_shaders,
|
|
|
|
gsk_private_vulkan_shaders
|
|
|
|
])
|
2017-03-17 23:43:36 +00:00
|
|
|
|
|
|
|
# FIXME: do we need this variable?
|
|
|
|
gsk_sources = gsk_public_sources + gsk_private_sources
|
|
|
|
|
2017-03-18 12:54:33 +00:00
|
|
|
gsk_enums = gnome.mkenums('gskenumtypes',
|
2017-04-26 15:02:17 +00:00
|
|
|
sources: gsk_public_headers,
|
|
|
|
c_template: 'gskenumtypes.c.template',
|
|
|
|
h_template: 'gskenumtypes.h.template',
|
|
|
|
install_dir: join_paths(gtk_includedir, 'gtk-4.0/gsk'),
|
|
|
|
install_header: true)
|
2017-03-18 12:54:33 +00:00
|
|
|
|
|
|
|
gskenum_h = gsk_enums[1]
|
2016-11-03 08:47:00 +00:00
|
|
|
|
2017-03-18 12:14:12 +00:00
|
|
|
gskresources = gnome.compile_resources('gskresources',
|
2017-04-26 15:02:17 +00:00
|
|
|
gsk_resources_xml,
|
2017-09-05 16:47:10 +00:00
|
|
|
dependencies: gsk_private_vulkan_compiled_shaders_deps,
|
2017-04-26 15:02:17 +00:00
|
|
|
source_dir: '.',
|
|
|
|
c_name: '_gsk',
|
|
|
|
extra_args: [ '--manual-register', ])
|
2016-11-03 08:47:00 +00:00
|
|
|
|
2017-04-26 15:02:17 +00:00
|
|
|
gsk_gen_headers = [ gskenum_h, ]
|
2016-11-03 08:47:00 +00:00
|
|
|
|
|
|
|
gsk_deps = [
|
|
|
|
graphene_dep,
|
|
|
|
pango_dep,
|
|
|
|
cairo_dep,
|
2019-05-28 03:51:20 +00:00
|
|
|
cairo_csi_dep,
|
2016-11-03 08:47:00 +00:00
|
|
|
pixbuf_dep,
|
|
|
|
libgdk_dep,
|
|
|
|
]
|
|
|
|
|
2017-03-18 12:54:33 +00:00
|
|
|
libgsk = static_library('gsk',
|
2017-04-26 15:02:17 +00:00
|
|
|
sources: [ gsk_sources, gsk_enums, gskresources, ],
|
|
|
|
dependencies: gsk_deps,
|
|
|
|
include_directories: [ confinc, ],
|
|
|
|
c_args: [
|
2019-11-27 13:33:43 +00:00
|
|
|
'-DGTK_COMPILATION',
|
2017-04-26 15:02:17 +00:00
|
|
|
'-DG_LOG_DOMAIN="Gsk"',
|
|
|
|
'-DG_LOG_STRUCTURED=1',
|
|
|
|
] + common_cflags,
|
|
|
|
link_with: libgdk,
|
|
|
|
link_args: common_ldflags)
|
2016-11-03 08:47:00 +00:00
|
|
|
|
2017-03-22 00:45:39 +00:00
|
|
|
# We don't have link_with: to internal static libs here on purpose, just
|
|
|
|
# list the dependencies and generated headers and such, for use in the
|
|
|
|
# "public" libgtk_dep used by internal executables.
|
2017-08-15 12:55:17 +00:00
|
|
|
libgsk_dep = declare_dependency(include_directories: [ confinc, ],
|
2017-09-05 16:47:10 +00:00
|
|
|
sources: [ gskenum_h, ],
|
2017-04-26 15:02:17 +00:00
|
|
|
dependencies: libgdk_dep)
|