diff options
author | Chun-wei Fan <fanchunwei@src.gnome.org> | 2020-06-18 11:34:39 +0800 |
---|---|---|
committer | Chun-wei Fan <fanchunwei@src.gnome.org> | 2020-06-18 14:31:29 +0800 |
commit | dfa750203deb26f57fc1d2024366bd9fbd17ad76 (patch) | |
tree | ae1dcf1c5be0dc1290118435c5ba79dc15d90710 /glib | |
parent | 2db1529957783a4f141892586a4d6a6528665a1f (diff) | |
download | glibmm-dfa750203deb26f57fc1d2024366bd9fbd17ad76.tar.gz |
Meson/Visual Studio builds: Include toolset version by default
This makes the built DLL and .lib's contain the toolset version if the build is
carried out using Visual Studio 2017 or later, unless the
'msvc14x-parallel-installable' option is set to be false during configuration.
The reasoning behind this change is that there are subtle problems when, for
instance, one tries to link to a Visual Studio 2017-built glibmm when building
gtkmm and libxml++ with Visual Studio 2019. This is unfortunate as
Microsoft did try hard to make interoperating between binaries built with
Visual Studio 2015, 2017 and 2019 as easy as possible in terms of ABI and API,
but unfortunately this hits the corner cases where this compatibility does not
work.
As the name suggests, this attempts to make Visual Studio 2017 and 2019
builds share a single set of underlying C DLLs easier, while avoiding breakages
caused by such subtle differences.
Diffstat (limited to 'glib')
-rw-r--r-- | glib/glibmm-uninstalled.pc.in | 2 | ||||
-rw-r--r-- | glib/glibmm.pc.in | 2 | ||||
-rw-r--r-- | glib/glibmm/meson.build | 6 | ||||
-rw-r--r-- | glib/meson.build | 3 |
4 files changed, 7 insertions, 6 deletions
diff --git a/glib/glibmm-uninstalled.pc.in b/glib/glibmm-uninstalled.pc.in index af8c482a..c060b44d 100644 --- a/glib/glibmm-uninstalled.pc.in +++ b/glib/glibmm-uninstalled.pc.in @@ -8,5 +8,5 @@ Description: C++ binding for GLib, not installed Version: @PACKAGE_VERSION@ URL: http://www.gtkmm.org/ Requires: gobject-2.0 sigc++-3.0 -Libs: ${pc_top_builddir}/${pcfiledir}/glibmm/libglibmm-@GLIBMM_API_VERSION@.la +Libs: ${pc_top_builddir}/${pcfiledir}/glibmm/libglibmm@MSVC_TOOLSET_VER@-@GLIBMM_API_VERSION@.la Cflags: -I${pc_top_builddir}/${pcfiledir} -I${pc_top_builddir}/${pcfiledir}/@srcdir@ diff --git a/glib/glibmm.pc.in b/glib/glibmm.pc.in index 25e6c167..0ab1168e 100644 --- a/glib/glibmm.pc.in +++ b/glib/glibmm.pc.in @@ -17,5 +17,5 @@ Description: C++ wrapper for GLib Version: @PACKAGE_VERSION@ URL: http://www.gtkmm.org/ Requires: gobject-2.0 sigc++-3.0 -Libs: -L${libdir} -lglibmm-@GLIBMM_API_VERSION@ +Libs: -L${libdir} -lglibmm@MSVC_TOOLSET_VER@-@GLIBMM_API_VERSION@ Cflags: -I${includedir}/@GLIBMM_MODULE_NAME@ -I${libdir}/@GLIBMM_MODULE_NAME@/include diff --git a/glib/glibmm/meson.build b/glib/glibmm/meson.build index 7bda0eaa..b06e91fe 100644 --- a/glib/glibmm/meson.build +++ b/glib/glibmm/meson.build @@ -3,7 +3,7 @@ # Input: glibmm_build_dep, glibmm_pcname, maintainer_mode, project_source_root, # generate_binding_py, handle_built_files_py, m4_files, pm_files, # glibmm_libversion, install_includedir, python3, glibmm_rc, gmmproc_dir, -# is_host_windows, gendef, gmmproc, generate_wrap_init_pl +# is_host_windows, gendef, gmmproc, generate_wrap_init_pl, glibmm_libname # Output: glibmm_hg_ccg_basenames, glibmm_extra_h_files, built_files_root, # glibmm_built_h_file_targets, glibmm_dep @@ -243,7 +243,7 @@ if maintainer_mode extra_include_dirs = ['..'] - glibmm_library = library(glibmm_pcname, extra_glibmm_objects, + glibmm_library = library(glibmm_libname, extra_glibmm_objects, glibmm_built_cc_file_targets, glibmm_extra_cc_files, built_dummy_h_file_target, include_directories: extra_include_dirs, cpp_args: glibmm_cpp_args, @@ -295,7 +295,7 @@ else # not maintainer_mode extra_include_dirs = [ '..', '..' / '..' / 'untracked' / 'glib' ] - glibmm_library = library(glibmm_pcname, extra_glibmm_objects, + glibmm_library = library(glibmm_libname, extra_glibmm_objects, built_cc_files, glibmm_extra_cc_files, include_directories: extra_include_dirs, cpp_args: glibmm_cpp_args, diff --git a/glib/meson.build b/glib/meson.build index 7b810d3a..0c20a912 100644 --- a/glib/meson.build +++ b/glib/meson.build @@ -4,7 +4,7 @@ # glibmm_pcname, giomm_pcname, glibmm_api_version, glibmm_requires, # giomm_requires, build_deprecated_api, install_pkgconfigdir, # is_os_cocoa, cpp_compiler, glibmm_major_version, glibmm_minor_version, -# glibmm_micro_version +# glibmm_micro_version, msvc14x_toolset_ver # Output: pkg_conf_data, install_glibmmconfigdir, glibmmconfig_h pkg_conf_data = configuration_data() @@ -32,6 +32,7 @@ pkg_conf_data.set('GLIBMM_MICRO_VERSION', glibmm_micro_version) pkg_conf_data.set('GIOMM_MAJOR_VERSION', glibmm_major_version) pkg_conf_data.set('GIOMM_MINOR_VERSION', glibmm_minor_version) pkg_conf_data.set('GIOMM_MICRO_VERSION', glibmm_micro_version) +pkg_conf_data.set('MSVC_TOOLSET_VER', msvc14x_toolset_ver) library_build_type = get_option('default_library') |