[pangomm/use-dllexport-2-42: 8/17] meson.build: Check for API decorations in headers in release tarballs
- From: Chun-wei Fan <fanchunwei src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pangomm/use-dllexport-2-42: 8/17] meson.build: Check for API decorations in headers in release tarballs
- Date: Mon, 30 Mar 2020 14:51:31 +0000 (UTC)
commit a21a003ce37c76c9b38e5a061a71d35efb32c35c
Author: Chun-wei Fan <fanchunwei src gnome org>
Date: Thu Mar 19 15:56:32 2020 +0800
meson.build: Check for API decorations in headers in release tarballs
gmmproc was updated in glibmm-2.64.0 to support adding API decorations that is
needed to support Visual Studio builds using __declspec(dllexport)
(i.e. without using gendef.exe). This checks one of such headers in the
release tarballs to see in the first comment line to see what version of
gmmproc is being used. If it is on or after 2.64.0, enable builds without
using gendef.exe.
meson.build | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
---
diff --git a/meson.build b/meson.build
index 5253a48..89f5418 100644
--- a/meson.build
+++ b/meson.build
@@ -193,6 +193,30 @@ else
])
endif
+if is_msvc and not maintainer_mode
+ # Check for the first line in a file generated with gmmproc,
+ # to see which gmmproc version was used
+ check_gmmproc_ver_cmd = '''
+import os
+import sys
+
+f = open(os.path.join('@0@', 'untracked', 'pango', 'pangomm', 'attributes.h'))
+tokens = f.readline().split()
+f.close()
+gmmproc_ver = tokens[tokens.index('gmmproc') + 1]
+gmmproc_ver_split = gmmproc_ver.split('.')
+if int(gmmproc_ver_split[0]) > 2 or \
+ (int(gmmproc_ver_split[0]) == 2 and int(gmmproc_ver_split[1]) >= 64):
+ sys.exit(0)
+else:
+ sys.exit(1)
+ '''.format('/'.join(project_source_root.split('\\')))
+
+ # Enable __declspec(dllexport) if the pangomm headers generated from the .hg files
+ # were generated using gmmproc from glibmm-2.64.0 or later
+ use_dll_export = run_command(python3, '-c', check_gmmproc_ver_cmd).returncode() == 0
+endif
+
# Some dependencies are required only in maintainer mode and/or if
# reference documentation shall be built.
mm_common_get = find_program('mm-common-get', required: maintainer_mode)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]