mirror of
https://gitlab.gnome.org/GNOME/gitg
synced 2024-07-05 01:19:31 +00:00
The GObject Introspection metadata generation by meson uses a custom target command[0]. This command also needs to specify the shared library where the symbols in the typelib file can be found. However, the values used are wrong because the path to the built shared libraries are specified instead of the name of the shared libraries themselves. This has been fixed by specifying the name of the shared libraries. Fixes #157 [0] http://mesonbuild.com/Vala.html#gobject-introspection
175 lines
4.5 KiB
Meson
175 lines
4.5 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,
|
|
]
|
|
|
|
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.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-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-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.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 + [
|
|
gitg_platform_support_dep,
|
|
gsettings_desktop_schemas_dep,
|
|
gtksourceview_dep,
|
|
libide_dep,
|
|
libsecret_dep,
|
|
libsoup_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,
|
|
true,
|
|
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,
|
|
)
|