gitg/libgitg/meson.build

200 lines
4.9 KiB
Meson
Raw Normal View History

name = gitg_name
api_name = '@0@-@1@'.format(name, gitg_api_version)
lib_name = 'lib' + name
lib_api_name = 'lib' + api_name
gir_ns = 'Gitg'
gir_api_name = '@0@-@1@'.format(gir_ns, gitg_gir_version)
gir_name = gir_api_name + '.gir'
gir_typelib = gir_api_name + '.typelib'
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-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 = [
gee_dep,
gitg_platform_support_dep,
glib_dep,
gtk_dep,
gtksourceview_dep,
libgit2_glib_dep,
libide_dep,
libsoup_dep,
m_dep,
dependency('gsettings-desktop-schemas'),
dependency('libsecret-1')
]
cflags = warn_flags + [
'-DDATADIR="@0@"'.format(gitg_datadir),
'-DLIBDIR="@0@"'.format(gitg_libdir),
'-DGETTEXT_PACKAGE="@0@"'.format(gitg_gettext)
]
ldflags = []
if have_version_script
ldflags += '-Wl,--version-script,' + symbol_map
endif
test_ldflags = []
if gdk_targets.contains('quartz')
sources += files('gitg-platform-support-osx.c')
gio_system_pkg = 'gio-unix-2.0'
deps += [
dependency(gio_system_pkg),
find_library('objc')
]
cflags += '-xobjective-c'
test_ldflags += [
'-framework Foundation',
'-framework AppKit'
]
elif gdk_targets.contains('win32')
sources += files('gitg-platform-support-win32.c')
gio_system_pkg = 'gio-windows-2.0'
deps += dependency(gio_system_pkg)
else
sources += files('gitg-platform-support.c')
gio_system_pkg = 'gio-unix-2.0'
deps += dependency(gio_system_pkg)
endif
foreach test_ldflag: test_ldflags
if cc.has_argument(test_ldflag)
ldflags += test_ldflag
endif
endforeach
libgitg = shared_library(
api_name,
sources: sources,
version: libversion,
soversion: soversion,
include_directories: top_inc,
dependencies: deps,
c_args: cflags,
vala_header: lib_name + '.h',
vala_vapi: lib_api_name + '.vapi',
vala_gir: gir_name,
link_args: ldflags,
link_depends: symbol_map,
install: true,
install_dir: [
get_option('libdir'),
join_paths(gitg_includedir, lib_api_name, lib_name),
true,
true
]
)
libgitg_dep = declare_dependency(
link_with: libgitg,
include_directories: include_directories('.')
)
pkg.generate(
libraries: libgitg,
version: gitg_version,
name: gitg_name,
description: gitg_name + ' library',
filebase: lib_api_name,
subdirs: lib_api_name,
requires: [
'gio-2.0',
'glib-2.0',
'gmodule-2.0',
'gobject-2.0',
'gthread-2.0',
'gtk+-3.0',
'libgit2-glib-1.0',
gio_system_pkg
],
variables: 'exec_prefix=' + gitg_prefix,
install_dir: join_paths(gitg_libdir, 'pkgconfig')
)
libgitg_dir = meson.current_build_dir()
custom_target(
gir_typelib,
output: gir_typelib,
command: [g_ir_compiler, '--shared-library', libgitg.full_path(), '--output', '@OUTPUT@', join_paths(libgitg_dir, gir_name)],
depends: libgitg,
install: true,
install_dir: gitg_girepositorydir
)