mirror of
https://gitlab.gnome.org/GNOME/gitg
synced 2024-10-14 11:52:29 +00:00
8e7da995f9
Although most of the parameters used for file naming when building libraries and introspection data can be replaced by variables, the actual naming can create a lot of confusion. This naming scheme has been improved by using clearer names and by also using a prefix in them.
180 lines
4.7 KiB
Meson
180 lines
4.7 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'),
|
|
find_library('objc'),
|
|
]
|
|
cflags += '-xobjective-c'
|
|
|
|
ldflags += cc.get_supported_link_arguments([
|
|
'-framework Foundation',
|
|
'-framework AppKit',
|
|
])
|
|
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: [
|
|
get_option('libdir'),
|
|
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.full_path(), '--output', '@OUTPUT@', join_paths(libgitg_build_dir, libgitg_gir_name)],
|
|
depends: libgitg,
|
|
install: true,
|
|
install_dir: gitg_girepositorydir,
|
|
)
|