diff --git a/linux/ibus-keyman/.gitignore b/linux/ibus-keyman/.gitignore new file mode 100644 index 0000000000..cb76b31565 --- /dev/null +++ b/linux/ibus-keyman/.gitignore @@ -0,0 +1 @@ +resources/ diff --git a/linux/ibus-keyman/build.sh b/linux/ibus-keyman/build.sh index 9667960471..231e9039ea 100755 --- a/linux/ibus-keyman/build.sh +++ b/linux/ibus-keyman/build.sh @@ -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" diff --git a/linux/ibus-keyman/meson.build b/linux/ibus-keyman/meson.build index 80318708ac..763a121245 100644 --- a/linux/ibus-keyman/meson.build +++ b/linux/ibus-keyman/meson.build @@ -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 diff --git a/linux/ibus-keyman/tests/meson.build b/linux/ibus-keyman/tests/meson.build index 73ce8d84d0..40d8b9713a 100644 --- a/linux/ibus-keyman/tests/meson.build +++ b/linux/ibus-keyman/tests/meson.build @@ -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' ] ) diff --git a/linux/keyman-system-service/.gitignore b/linux/keyman-system-service/.gitignore new file mode 100644 index 0000000000..f4e74111e4 --- /dev/null +++ b/linux/keyman-system-service/.gitignore @@ -0,0 +1 @@ +resources/meson.build diff --git a/linux/keyman-system-service/build.sh b/linux/keyman-system-service/build.sh index bb3e1f9461..aa151830eb 100755 --- a/linux/keyman-system-service/build.sh +++ b/linux/keyman-system-service/build.sh @@ -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 diff --git a/linux/keyman-system-service/resources/meson.build b/linux/keyman-system-service/resources/meson.build.in similarity index 84% rename from linux/keyman-system-service/resources/meson.build rename to linux/keyman-system-service/resources/meson.build.in index c28cb81e58..2743889f30 100644 --- a/linux/keyman-system-service/resources/meson.build +++ b/linux/keyman-system-service/resources/meson.build.in @@ -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/')