chore(linux): use shared meson config

Fixes: #8406
This commit is contained in:
Eberhard Beilharz 2024-06-24 19:06:01 +02:00
parent 97611efffc
commit bcc09b78c8
No known key found for this signature in database
GPG key ID: E9140597606020D3
7 changed files with 30 additions and 4 deletions

1
linux/ibus-keyman/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
resources/

View file

@ -45,6 +45,15 @@ else
MESON_COVERAGE=
fi
# Import our standard compiler defines; this is copied from
# /resources/build/meson/standard.meson.build by build.sh, because meson doesn't
# allow us to reference a file outside its root. ${THIS_SCRIPT_PATH}/meson.build
# then includes `resources` as a subdir.
if builder_has_action configure; then
mkdir -p "${THIS_SCRIPT_PATH}/resources"
cp "${KEYMAN_ROOT}/resources/build/meson/standard.meson.build" "${THIS_SCRIPT_PATH}/resources/meson.build"
fi
configure_action() {
# shellcheck disable=SC2086,SC2154
meson setup ${MESON_COVERAGE} --werror --buildtype $MESON_TARGET "${builder_extra_params[@]}" "$MESON_PATH"

View file

@ -2,7 +2,12 @@ project('ibus-keyman', 'c', 'cpp',
version: run_command('cat', '../../VERSION.md', check: true).stdout().strip(),
license: 'GPL-2+',
meson_version: '>=1.0')
cc = meson.get_compiler('c')
# Import our standard compiler defines; this is copied from
# /resources/build/standard.meson.build by build.sh, because
# meson doesn't allow us to reference a file outside its root
subdir('resources')
conf = configuration_data()
ibus = dependency('ibus-1.0', version: '>= 1.2.0')
@ -14,7 +19,7 @@ icu = dependency('icu-i18n')
core_dir = meson.current_source_dir() / '../../core'
common_dir = meson.current_source_dir() / '../../common'
keymancore_lib = cc.find_library(
keymancore_lib = c_compiler.find_library(
'keymancore', # meson will prefix 'lib'
dirs: [ core_dir / 'build/arch' / get_option('buildtype') / 'src' ]
)
@ -26,7 +31,7 @@ endif
env = find_program('env')
# Check if we have patched ibus (https://github.com/ibus/ibus/pull/2440)
if cc.has_header_symbol('ibus.h', 'IBUS_CAP_PREFILTER', dependencies: [ibus], required: false)
if c_compiler.has_header_symbol('ibus.h', 'IBUS_CAP_PREFILTER', dependencies: [ibus], required: false)
conf.set('IBUS_HAS_PREFILTER', 1)
endif

View file

@ -5,7 +5,7 @@ test_files = [
'../src/KeymanSystemServiceClient.cpp',
]
keymancore_tests_lib = cc.find_library(
keymancore_tests_lib = c_compiler.find_library(
'keymancore-tests', # meson will prefix 'lib'
dirs: [ core_dir / 'build/arch' / get_option('buildtype') / 'tests/kmx_test_source' ]
)

View file

@ -0,0 +1 @@
resources/meson.build

View file

@ -23,6 +23,15 @@ builder_describe \
builder_parse "$@"
# Import our standard compiler defines; this is copied from
# /resources/build/meson/standard.meson.build by build.sh, because meson doesn't
# allow us to reference a file outside its root. ${THIS_SCRIPT_PATH}/meson.build
# then includes `resources` as a subdir.
if builder_has_action configure; then
cp "${KEYMAN_ROOT}/resources/build/meson/standard.meson.build" "${THIS_SCRIPT_PATH}/resources/meson.build"
cat "${THIS_SCRIPT_PATH}/resources/meson.build.in" >> "${THIS_SCRIPT_PATH}/resources/meson.build"
fi
if builder_is_debug_build; then
MESON_TARGET=debug
export CPPFLAGS=-DG_MESSAGES_DEBUG

View file

@ -1,3 +1,4 @@
# This file will be appended to meson.build by build.sh
install_data('com.keyman.SystemService1.conf', install_dir: get_option('datadir') / 'dbus-1/system.d/')
install_data('com.keyman.SystemService1.service', install_dir: get_option('datadir') / 'dbus-1/system-services/')
install_data('systemd-keyman.service', install_dir: get_option('prefix') / 'lib/systemd/system/')