gitg/libgitg/meson.build
2022-10-10 22:31:16 +02:00

183 lines
4.9 KiB
Meson

libgitg_build_dir = meson.current_build_dir()
libgitg_api_name = 'libgitg-' + gitg_api_version
libgitg_gir_api_name = 'Gitg-' + gitg_api_version
libgitg_vapi_name = libgitg_api_name + '.vapi'
libgitg_gir_name = libgitg_gir_api_name + '.gir'
libgitg_typelib_name = libgitg_gir_api_name + '.typelib'
common_deps = [
gee_dep,
gio_dep,
glib_dep,
gtk_dep,
libgit2_glib_dep,
libdazzle_dep,
gpgme_dependency,
]
sources = files(
'gitg-assembly-info.vala',
'gitg-async.vala',
'gitg-authentication-dialog.vala',
'gitg-avatar-cache.vala',
'gitg-branch-base.vala',
'gitg-branch.vala',
'gitg-cell-renderer-lanes.vala',
'gitg-color.vala',
'gitg-commit-list-view.vala',
'gitg-commit-model.vala',
'gitg-commit.vala',
'gitg-credentials-manager.vala',
'gitg-date.vala',
'gitg-diff-image-composite.vala',
'gitg-diff-image-difference.vala',
'gitg-diff-image-overlay.vala',
'gitg-diff-image-side-by-side.vala',
'gitg-diff-image-slider.vala',
'gitg-diff-image-surface-cache.vala',
'gitg-diff-selectable.vala',
'gitg-diff-stat.vala',
'gitg-diff-view-commit-details.vala',
'gitg-diff-view-file-info.vala',
'gitg-diff-view-file-renderer-binary.vala',
'gitg-diff-view-file-renderer-image.vala',
'gitg-diff-view-file-renderer-text.vala',
'gitg-diff-view-file-renderer-textable.vala',
'gitg-diff-view-file-renderer-text-split.vala',
'gitg-diff-view-file-renderer.vala',
'gitg-diff-view-file-selectable.vala',
'gitg-diff-view-file.vala',
'gitg-diff-view-lines-renderer.vala',
'gitg-diff-view-options.vala',
'gitg-diff-view.vala',
'gitg-font-manager.vala',
'gitg-gpg-utils.vala',
'gitg-hook.vala',
'gitg-init.vala',
'gitg-label-renderer.vala',
'gitg-lanes.vala',
'gitg-lane.vala',
'gitg-progress-bin.vala',
'gitg-ref-base.vala',
'gitg-ref.vala',
'gitg-remote.vala',
'gitg-repository-list-box.vala',
'gitg-repository.vala',
'gitg-resource.vala',
'gitg-sidebar.vala',
'gitg-stage-status-enumerator.vala',
'gitg-stage.vala',
'gitg-textconv.vala',
'gitg-theme.vala',
'gitg-utils.vala',
'gitg-when-mapped.vala',
)
resource_data = files(
'resources/ui/gitg-authentication-dialog.ui',
'resources/ui/gitg-diff-view-commit-details.ui',
'resources/ui/gitg-diff-view-file-renderer-binary.ui',
'resources/ui/gitg-diff-view-file-renderer-image.ui',
'resources/ui/gitg-diff-view-file-renderer-text.ui',
'resources/ui/gitg-diff-view-file-renderer-text-split.ui',
'resources/ui/gitg-diff-view-file.ui',
'resources/ui/gitg-diff-view-options-spacing.ui',
'resources/ui/gitg-diff-view-options.ui',
'resources/ui/gitg-diff-view.ui',
'resources/ui/gitg-repository-list-box-row.ui',
'resources/ui/gitg-sidebar.ui',
'resources/ui/libgitg-style.css',
)
sources += gnome.compile_resources(
'libgitg-resources',
'resources/resources.xml',
source_dir: 'resources',
dependencies: resource_data,
)
deps = common_deps + [
config_dep,
gitg_platform_support_dep,
gsettings_desktop_schemas_dep,
gtksourceview_dep,
libide_dep,
libsecret_dep,
m_dep,
]
cflags = warn_flags + [
'-DDATADIR="@0@"'.format(gitg_datadir),
'-DLIBDIR="@0@"'.format(gitg_libdir),
'-DGETTEXT_PACKAGE="@0@"'.format(gitg_gettext),
]
ldflags = common_ldflags
if gdk_targets.contains('quartz')
sources += files('gitg-platform-support-osx.c')
deps += [
dependency('gio-unix-2.0'),
dependency('appleframeworks', modules : ['Foundation', 'AppKit'])
]
cflags += '-xobjective-c'
elif gdk_targets.contains('win32')
sources += files('gitg-platform-support-win32.c')
deps += dependency('gio-windows-2.0')
else
sources += files('gitg-platform-support.c')
deps += dependency('gio-unix-2.0')
endif
libgitg = shared_library(
'gitg-' + gitg_api_version,
sources: sources,
version: libversion,
soversion: soversion,
include_directories: top_inc,
dependencies: deps,
c_args: cflags,
vala_header: 'libgitg.h',
vala_vapi: libgitg_vapi_name,
vala_gir: libgitg_gir_name,
link_args: ldflags,
link_depends: symbol_map,
install: true,
install_dir: [
true,
join_paths(gitg_includedir, libgitg_api_name, 'libgitg'),
true,
true
]
)
libgitg_dep = declare_dependency(
include_directories: include_directories('.'),
dependencies: common_deps + [m_dep],
link_with: libgitg,
)
# FIXME: libgitg_dep requires m_dep because math.h and float.h includes are exposed
# However, meson is not able to append it
pkg.generate(
libraries: libgitg,
version: gitg_version,
name: 'gitg',
description: 'gitg library',
filebase: libgitg_api_name,
subdirs: libgitg_api_name,
requires: common_deps,
variables: 'exec_prefix=' + gitg_prefix,
)
custom_target(
libgitg_typelib_name,
output: libgitg_typelib_name,
command: [g_ir_compiler, '--shared-library', libgitg_api_name, '--output', '@OUTPUT@', join_paths(libgitg_build_dir, libgitg_gir_name)],
depends: libgitg,
install: true,
install_dir: gitg_girepositorydir,
)