[pangomm/cairomm-meson-improvements: 3/3] meson: Clean up Visual Studio bits
- From: Chun-wei Fan <fanchunwei src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pangomm/cairomm-meson-improvements: 3/3] meson: Clean up Visual Studio bits
- Date: Tue, 5 May 2020 09:42:03 +0000 (UTC)
commit c6ea007bb9943c5f30885ee427f3274485880258
Author: Chun-wei Fan <fanchunwei src gnome org>
Date: Tue May 5 16:18:10 2020 +0800
meson: Clean up Visual Studio bits
Streamline how we look for the dependencies manually, by using the
'has_headers:' attribute of cpp_compiler.find_library(), so that we can
check for the presence of the headers at the same time as looking for
the glibmm, cairomm and/or libsigc++ headers.
meson.build | 42 +++++++++++++++++++++++++++++-------------
1 file changed, 29 insertions(+), 13 deletions(-)
---
diff --git a/meson.build b/meson.build
index 6a54a07..f1eff7d 100644
--- a/meson.build
+++ b/meson.build
@@ -116,21 +116,28 @@ if is_msvc
# so only look for libsigc++ if glibmm's nor cairomm's pkg-config
# files can't be found
if not glibmm_dep.found() and not cairomm_dep.found()
- assert(cpp_compiler.has_header('sigc++-@0@.0/sigc++/sigc++.h'.format(sigc_major_ver)) and
cpp_compiler.has_header('sigc++-@0@.0/include/sigc++config.h'.format(sigc_major_ver)),
- 'sigc++-@0@.x headers are required'.format(sigc_major_ver))
- else
- sigc_dep = dependency('', required: false) # cairomm/glibmm covers for libsigc++ in their pkg-config
files
+ sigc_required_headers = [
+ 'sigc++-@0@.0/sigc++/sigc++.h'.format(sigc_major_ver),
+ 'sigc++-@0@.0/include/sigc++config.h'.format(sigc_major_ver)
+ ]
endif
- if not glibmm_dep.found()
- assert(cpp_compiler.has_header('glibmm-2.@0@/glibmm.h'.format(glibmm_req_minor_ver)) and
cpp_compiler.has_header('glibmm-2.@0@/include/glibmmconfig.h'.format(glibmm_req_minor_ver)),
- 'glibmm-2.@0@ headers are required'.format(glibmm_req_minor_ver))
+ # cairomm/glibmm covers for libsigc++ in their pkg-config files,
+ # so we only look for libsigc++ if needed
+ sigc_dep = dependency('', required: false)
+ if not glibmm_dep.found()
+ glibmm_required_headers = [
+ 'glibmm-2.@0@/glibmm.h'.format(glibmm_req_minor_ver),
+ 'glibmm-2.@0@/include/glibmmconfig.h'.format(glibmm_req_minor_ver)
+ ]
endif
if not cairomm_dep.found()
- assert(cpp_compiler.has_header('cairomm-1.@0@/cairomm/cairomm.h'.format(cairomm_req_minor_ver)) and
cpp_compiler.has_header('cairomm-1.@0@/include/cairommconfig.h'.format(cairomm_req_minor_ver)),
- 'cairomm-1.@0@ headers are required'.format(cairomm_req_minor_ver))
+ cairomm_required_headers = [
+ 'cairomm-1.@0@/cairomm/cairomm.h'.format(cairomm_req_minor_ver),
+ 'cairomm-1.@0@/include/cairommconfig.h'.format(cairomm_req_minor_ver)
+ ]
endif
if not glibmm_dep.found() or not cairomm_dep.found()
@@ -155,16 +162,25 @@ if is_msvc
# versions are really found
foreach v : msvc_check_range
- glibmm_dep = glibmm_dep.found() ? glibmm_dep :
cpp_compiler.find_library('glibmm-vc@0@0@1@-2_@2@'.format(v.to_string(), debugsuffix, glibmm_req_minor_ver),
required: false)
- cairomm_dep = cairomm_dep.found() ? cairomm_dep :
cpp_compiler.find_library('cairomm-vc@0@0@1@-1_@2@'.format(v.to_string(), debugsuffix,
cairomm_req_minor_ver), required: false)
+ if not glibmm_dep.found()
+ glibmm_dep = cpp_compiler.find_library('glibmm-vc@0@0@1@-2_@2@'.format(v.to_string(), debugsuffix,
glibmm_req_minor_ver),
+ required: false,
+ has_headers: glibmm_required_headers)
+ endif
+ if not cairomm_dep.found()
+ cairomm_dep = cpp_compiler.find_library('cairomm-vc@0@0@1@-1_@2@'.format(v.to_string(), debugsuffix,
cairomm_req_minor_ver),
+ required: false,
+ has_headers: cairomm_required_headers)
+ endif
endforeach
if glibmm_dep.type_name() == 'library' and \
cairomm_dep.type_name() == 'library'
warning('Note: Be sure to check that this finds the same libsigc++ .lib your glibmm is linked to')
- sigc_dep = cpp_compiler.find_library('sigc-@0@.0'.format(sigc_major_ver), required: false)
foreach v : msvc_check_range
- sigc_dep = sigc_dep.found() ? sigc_dep :
cpp_compiler.find_library('sigc-vc@0@0@1@-@2@_0'.format(v.to_string(), debugsuffix, sigc_major_ver),
required: false)
+ if not sigc_dep.found()
+ sigc_dep = cpp_compiler.find_library('sigc-vc@0@0@1@-@2@_0'.format(v.to_string(), debugsuffix,
sigc_major_ver), required: false)
+ endif
endforeach
endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]