[vala/meson-msvc: 17/19] meson: Port install scripts for cmd.exe shells
- From: Chun-wei Fan <fanchunwei src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala/meson-msvc: 17/19] meson: Port install scripts for cmd.exe shells
- Date: Thu, 27 Jan 2022 04:48:59 +0000 (UTC)
commit 74074f3f21095fa3cc8c957e576c9cdcd09b94d5
Author: Chun-wei Fan <fanchunwei src gnome org>
Date: Wed Jan 26 13:10:26 2022 +0800
meson: Port install scripts for cmd.exe shells
On Windows builds using Visual Studio-like compilers, we are using
cmd.exe shells, so we do the symlinking of the tools and man pages using
the commands that Windows provides.
Also, group the various programs and man pages together so that we have
single commands for each of the subdirs that we want to run the install
scripts, to make things simpler.
compiler/meson.build | 15 +++++++++++----
doc/meson.build | 16 +++++++++++-----
valadoc/meson.build | 12 ++++++++++--
vapigen/meson.build | 15 ++++++++++-----
vapigen/vala-gen-introspect/meson.build | 12 ++++++++++--
5 files changed, 52 insertions(+), 18 deletions(-)
---
diff --git a/compiler/meson.build b/compiler/meson.build
index d2761a44d..a07330f69 100644
--- a/compiler/meson.build
+++ b/compiler/meson.build
@@ -20,7 +20,14 @@ valac_exe = executable(
vala_name = 'vala@0@'.format(vala_version_suffix)
-# https://github.com/mesonbuild/meson/issues/1602
-meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@; ln -fs --relative @1@
valac'.format(join_paths(get_option('prefix'), get_option('bindir')), valac_name))
-meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@; ln -fs --relative @1@
@2@'.format(join_paths(get_option('prefix'), get_option('bindir')), valac_name, vala_name))
-meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@; ln -fs --relative @1@
vala'.format(join_paths(get_option('prefix'), get_option('bindir')), valac_name))
+
+valac_names = [ 'valac', vala_name, 'vala' ]
+
+foreach name: valac_names
+ if cc.get_argument_syntax() == 'msvc'
+ meson.add_install_script('cmd', '/c', 'cd /d @0@ & (if exist @2@.exe del @2@.exe) & mklink
@2@.exe @1@.exe'.format(join_paths(get_option('prefix'), get_option('bindir')).replace('/','\\'), valac_name,
name))
+ else
+ # https://github.com/mesonbuild/meson/issues/1602
+ meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@; ln -fs --relative @1@
@2@'.format(join_paths(get_option('prefix'), get_option('bindir')), valac_name, name))
+ endif
+endforeach
diff --git a/doc/meson.build b/doc/meson.build
index c5763e518..43620b98e 100644
--- a/doc/meson.build
+++ b/doc/meson.build
@@ -55,14 +55,20 @@ else
install_man(manpages)
endif
-# https://github.com/mesonbuild/meson/issues/1602
-meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@/man1; ln -fs --relative vala-gen-introspect.1
@1@'.format(join_paths(get_option('prefix'), get_option('mandir')),
'vala-gen-introspect@0@.1'.format(vala_version_suffix)))
-meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@/man1; ln -fs --relative valac.1
@1@'.format(join_paths(get_option('prefix'), get_option('mandir')), 'valac@0@.1'.format(vala_version_suffix)))
-meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@/man1; ln -fs --relative vapigen.1
@1@'.format(join_paths(get_option('prefix'), get_option('mandir')),
'vapigen@0@.1'.format(vala_version_suffix)))
+man_names = [ 'vala-gen-introspect', 'valac', 'vapigen' ]
if valadoc_enabled
- meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@/man1; ln -fs --relative valadoc.1
@1@'.format(join_paths(get_option('prefix'), get_option('mandir')),
'valadoc@0@.1'.format(vala_version_suffix)))
+ man_names += 'valadoc'
endif
+foreach name: man_names
+ if cc.get_argument_syntax() == 'msvc'
+ meson.add_install_script('cmd', '/c', 'cd /d @0@\man1 & (if exist @1@.1 del @1@.1) & mklink
@1@.1 @2@.1'.format(join_paths(get_option('prefix'), get_option('mandir')).replace('/','\\'),
'@1@@0@'.format(vala_version_suffix, name), name))
+ else
+ # https://github.com/mesonbuild/meson/issues/1602
+ meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@/man1; ln -fs --relative @2@.1
@1@'.format(join_paths(get_option('prefix'), get_option('mandir'), name),
'@1@@0@.1'.format(vala_version_suffix, name)))
+ endif
+endforeach
+
if valadoc_enabled
valadoc_flags = [
diff --git a/valadoc/meson.build b/valadoc/meson.build
index 08e891e5b..158f78903 100644
--- a/valadoc/meson.build
+++ b/valadoc/meson.build
@@ -15,8 +15,16 @@ valadoc_exe = executable(
install: true,
)
-# https://github.com/mesonbuild/meson/issues/1602
-meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@; ln -fs --relative @1@
valadoc'.format(join_paths(get_option('prefix'), get_option('bindir')), valadoc_name))
+valadoc_names = [ 'valadoc' ]
+
+foreach name: valadoc_names
+ if cc.get_argument_syntax() == 'msvc'
+ meson.add_install_script('cmd', '/c', 'cd /d @0@ & (if exist @2@.exe del @2@.exe) & mklink
@2@.exe @1@.exe'.format(join_paths(get_option('prefix'), get_option('bindir')).replace('/','\\'),
valadoc_name, name))
+ else
+ # https://github.com/mesonbuild/meson/issues/1602
+ meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@; ln -fs --relative @1@
@2@'.format(join_paths(get_option('prefix'), get_option('bindir')), valadoc_name, name))
+ endif
+endforeach
subdir('doclets')
subdir('icons')
diff --git a/vapigen/meson.build b/vapigen/meson.build
index df3e18c5a..72af0cc78 100644
--- a/vapigen/meson.build
+++ b/vapigen/meson.build
@@ -13,9 +13,6 @@ vapigen_exe = executable(
vala_args: ['--pkg', 'gidl', '--vapidir', join_paths(meson.source_root(), 'gobject-introspection')],
)
-# https://github.com/mesonbuild/meson/issues/1602
-meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@; ln -fs --relative @1@
vapigen'.format(join_paths(get_option('prefix'), get_option('bindir')), vapigen_name))
-
vapicheck_sources = files(
'valavapicheck.vala',
)
@@ -30,8 +27,16 @@ executable(
vala_args: ['--pkg', 'gidl', '--vapidir', join_paths(meson.source_root(), 'gobject-introspection')],
)
-# https://github.com/mesonbuild/meson/issues/1602
-meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@; ln -fs --relative @1@
vapicheck'.format(join_paths(get_option('prefix'), get_option('bindir')), vapicheck_name))
+vapitools_names = [ 'vapigen', 'vapicheck' ]
+
+foreach name: vapitools_names
+ if cc.get_argument_syntax() == 'msvc'
+ meson.add_install_script('cmd', '/c', 'cd /d @0@ & (if exist @1@.exe del @1@.exe) & mklink
@1@.exe @1@@2@.exe'.format(join_paths(get_option('prefix'), get_option('bindir')).replace('/','\\'), name,
vala_version_suffix))
+ else
+ # https://github.com/mesonbuild/meson/issues/1602
+ meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@; ln -fs --relative @1@@2@
@1@'.format(join_paths(get_option('prefix'), get_option('bindir')), name, vala_version_suffix))
+ endif
+endforeach
configure_file(
input: 'vapigen.pc.in',
diff --git a/vapigen/vala-gen-introspect/meson.build b/vapigen/vala-gen-introspect/meson.build
index 79ab97379..a64a40808 100644
--- a/vapigen/vala-gen-introspect/meson.build
+++ b/vapigen/vala-gen-introspect/meson.build
@@ -5,5 +5,13 @@ vala_gen_introspect_sh = configure_file(
install_dir: get_option('bindir'),
)
-# https://github.com/mesonbuild/meson/issues/1602
-meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@; ln -fs @1@
vala-gen-introspect'.format(join_paths(get_option('prefix'), get_option('bindir')),
'vala-gen-introspect@0@'.format(vala_version_suffix)))
+vala_gen_introspect_names = [ 'vala-gen-introspect' ]
+
+foreach name: vala_gen_introspect_names
+ if cc.get_argument_syntax() == 'msvc'
+ meson.add_install_script('cmd', '/c', 'cd /d @0@ & (if exist @2@ del @2@) & mklink @2@
@1@'.format(join_paths(get_option('prefix'), get_option('bindir')).replace('/','\\'),
'@1@@0@'.format(vala_version_suffix, name), name))
+ else
+ # https://github.com/mesonbuild/meson/issues/1602
+ meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@; ln -fs @1@
@2@'.format(join_paths(get_option('prefix'), get_option('bindir'), name),
'@1@@0@'.format(vala_version_suffix, name)))
+ endif
+endforeach
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]