From 02c847607102b6e1986db6a9fad90b81d092f8cd Mon Sep 17 00:00:00 2001 From: Alexey Rochev Date: Fri, 7 Jan 2022 00:58:02 +0300 Subject: [PATCH] Use C++ linker when building with libicu ICU is a C++ library, event though it has C interface. Therefore we have to use C++ linker when linking with it. --- fuzz/meson.build | 1 + meson.build | 7 +++++++ src/meson.build | 1 + tests/meson.build | 3 ++- tools/meson.build | 1 + 5 files changed, 12 insertions(+), 1 deletion(-) diff --git a/fuzz/meson.build b/fuzz/meson.build index fae7cba..13a9509 100644 --- a/fuzz/meson.build +++ b/fuzz/meson.build @@ -19,6 +19,7 @@ foreach test_case : ['fuzzer', 'load_fuzzer', 'load_dafsa_fuzzer'] c_args : fuzzer_cargs, include_directories : [configinc, includedir], dependencies : libicu_dep, + link_language : link_language ) test(test_name, exe) endforeach diff --git a/meson.build b/meson.build index 2263e31..0f7c205 100644 --- a/meson.build +++ b/meson.build @@ -19,6 +19,8 @@ libunistring = notfound networking_deps = notfound libiconv_dep = notfound +link_language = 'c' + # FIXME: Cleanup this when Meson gets 'feature-combo': # https://github.com/mesonbuild/meson/issues/4566 # Dependency fallbacks would help too: @@ -59,6 +61,11 @@ if ['libicu', 'auto'].contains(enable_runtime) or ['libicu', 'auto'].contains(en if enable_builtin == 'auto' enable_builtin = 'libicu' endif + if add_languages('cpp', native : false) + link_language = 'cpp' + else + error('C++ compiler is not available') + endif elif [enable_runtime, enable_builtin].contains('libicu') error('You requested libicu but it is not installed.') endif diff --git a/src/meson.build b/src/meson.build index 1d2b38f..81d2d31 100644 --- a/src/meson.build +++ b/src/meson.build @@ -29,6 +29,7 @@ libpsl = library('psl', sources, suffixes_dafsa_h, dependencies : [libidn2_dep, libidn_dep, libicu_dep, libunistring, networking_deps, libiconv_dep], version: library_version, install: true, + link_language : link_language ) pkgconfig.generate(libpsl, diff --git a/tests/meson.build b/tests/meson.build index f37ce30..a963ac6 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -32,6 +32,7 @@ foreach test_name : tests exe = executable(test_name, source, c_args : tests_cargs, link_with : libpsl, - include_directories : [configinc, includedir]) + include_directories : [configinc, includedir], + link_language : link_language) test(test_name, exe, depends : [psl_dafsa, psl_ascii_dafsa]) endforeach diff --git a/tools/meson.build b/tools/meson.build index e3a6668..0523afe 100644 --- a/tools/meson.build +++ b/tools/meson.build @@ -2,6 +2,7 @@ psl = executable('psl', 'psl.c', link_with : libpsl, include_directories : [configinc, includedir], c_args : ['-DHAVE_CONFIG_H'], + link_language : link_language, install : true, )