[libpeas/meson.msvc: 2/12] meson: Don't use 'cp' to copy files



commit d1429c5d4d782be4572f84196b821b50a4e48cd6
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Fri Nov 15 14:32:34 2019 +0800

    meson: Don't use 'cp' to copy files
    
    'cp' is a UNIX/BASH shell-only command, which does not exist on standard
    Windows cmd.exe shells by default, so use a Python script that tries to
    do similar things.

 copyfile.py                                               | 15 +++++++++++++++
 meson.build                                               |  3 +++
 peas-demo/plugins/helloworld/meson.build                  |  2 +-
 peas-demo/plugins/luahello/meson.build                    |  2 +-
 peas-demo/plugins/pythonhello/meson.build                 |  2 +-
 peas-demo/plugins/secondtime/meson.build                  |  2 +-
 .../libpeas-gtk/plugins/builtin-configurable/meson.build  |  2 +-
 tests/libpeas-gtk/plugins/configurable/meson.build        |  2 +-
 tests/libpeas-gtk/plugins/meson.build                     |  2 +-
 tests/libpeas-gtk/plugins/valid-custom-icon/meson.build   |  2 +-
 tests/libpeas/plugins/embedded/meson.build                |  2 +-
 tests/libpeas/plugins/extension-c/meson.build             |  4 ++--
 tests/libpeas/plugins/extension-lua/meson.build           |  2 +-
 tests/libpeas/plugins/meson.build                         |  2 +-
 tests/plugins/builtin/meson.build                         |  2 +-
 tests/plugins/has-dep/meson.build                         |  2 +-
 tests/plugins/loadable/meson.build                        |  2 +-
 tests/plugins/meson.build                                 |  2 +-
 tests/plugins/self-dep/meson.build                        |  2 +-
 19 files changed, 36 insertions(+), 18 deletions(-)
---
diff --git a/copyfile.py b/copyfile.py
new file mode 100644
index 0000000..b57734f
--- /dev/null
+++ b/copyfile.py
@@ -0,0 +1,15 @@
+#!/usr/bin/env python3
+
+# Replace calls to 'cp' with Python
+
+import shutil
+import sys
+
+if len(sys.argv) < 3:
+    raise ValueError('Usage: %s <srcfiles> <destfile>' % sys.argv[0])
+
+last_arg_index = len(sys.argv) - 1
+destdir = sys.argv[last_arg_index]
+
+for x in range(1, last_arg_index):
+    shutil.copy(sys.argv[x], destdir)
diff --git a/meson.build b/meson.build
index 68ccb79..240c5e4 100644
--- a/meson.build
+++ b/meson.build
@@ -258,6 +258,9 @@ if build_python3_loader and not python3_found
   build_python3_loader = false
 endif
 
+# Replace 'cp' calls
+copyfile_script = find_program('copyfile.py')
+
 subdir('libpeas')
 if build_gtk_widgetry == true
   subdir('libpeas-gtk')
diff --git a/peas-demo/plugins/helloworld/meson.build b/peas-demo/plugins/helloworld/meson.build
index 0e325ce..7374361 100644
--- a/peas-demo/plugins/helloworld/meson.build
+++ b/peas-demo/plugins/helloworld/meson.build
@@ -27,7 +27,7 @@ custom_target(
   'lib@0@-data'.format(libhelloworld_name),
   input: libhelloworld_plugin_data,
   output: libhelloworld_plugin_data,
-  command: ['cp', '@INPUT@', '@OUTDIR@'],
+  command: [copyfile_script, '@INPUT@', '@OUTDIR@'],
   build_by_default: true,
   install_dir: join_paths(peas_demo_plugins_dir, 'helloworld'),
   install: true,
diff --git a/peas-demo/plugins/luahello/meson.build b/peas-demo/plugins/luahello/meson.build
index 90d0dae..0d6997d 100644
--- a/peas-demo/plugins/luahello/meson.build
+++ b/peas-demo/plugins/luahello/meson.build
@@ -9,7 +9,7 @@ custom_target(
   '@0@-data'.format(luahello_name),
   input: luahello_plugin_data,
   output: luahello_plugin_data,
-  command: ['cp', '@INPUT@', '@OUTDIR@'],
+  command: [copyfile_script, '@INPUT@', '@OUTDIR@'],
   build_by_default: true,
   install_dir: join_paths(peas_demo_plugins_dir, 'luahello'),
   install: true,
diff --git a/peas-demo/plugins/pythonhello/meson.build b/peas-demo/plugins/pythonhello/meson.build
index 7ba4406..64e4202 100644
--- a/peas-demo/plugins/pythonhello/meson.build
+++ b/peas-demo/plugins/pythonhello/meson.build
@@ -9,7 +9,7 @@ custom_target(
   '@0@-data'.format(pythonhello_name),
   input: pythonhello_plugin_data,
   output: pythonhello_plugin_data,
-  command: ['cp', '@INPUT@', '@OUTDIR@'],
+  command: [copyfile_script, '@INPUT@', '@OUTDIR@'],
   build_by_default: true,
   install_dir: join_paths(peas_demo_plugins_dir, 'pythonhello'),
   install: true,
diff --git a/peas-demo/plugins/secondtime/meson.build b/peas-demo/plugins/secondtime/meson.build
index 30c0dac..e79097a 100644
--- a/peas-demo/plugins/secondtime/meson.build
+++ b/peas-demo/plugins/secondtime/meson.build
@@ -26,7 +26,7 @@ custom_target(
   'lib@0@-data'.format(libsecondtime_name),
   input: libsecondtime_plugin_data,
   output: libsecondtime_plugin_data,
-  command: ['cp', '@INPUT@', '@OUTDIR@'],
+  command: [copyfile_script, '@INPUT@', '@OUTDIR@'],
   build_by_default: true,
   install_dir: join_paths(peas_demo_plugins_dir, 'secondtime'),
   install: true,
diff --git a/tests/libpeas-gtk/plugins/builtin-configurable/meson.build 
b/tests/libpeas-gtk/plugins/builtin-configurable/meson.build
index c967f5d..4ce8c6f 100644
--- a/tests/libpeas-gtk/plugins/builtin-configurable/meson.build
+++ b/tests/libpeas-gtk/plugins/builtin-configurable/meson.build
@@ -32,6 +32,6 @@ custom_target(
   'lib@0@-data'.format(libbuiltin_configurable_name),
   input: libbuiltin_configurable_plugin_data,
   output: libbuiltin_configurable_plugin_data,
-  command: ['cp', '@INPUT@', '@OUTDIR@'],
+  command: [copyfile_script, '@INPUT@', '@OUTDIR@'],
   build_by_default: true,
 )
diff --git a/tests/libpeas-gtk/plugins/configurable/meson.build 
b/tests/libpeas-gtk/plugins/configurable/meson.build
index 553066b..9c8f885 100644
--- a/tests/libpeas-gtk/plugins/configurable/meson.build
+++ b/tests/libpeas-gtk/plugins/configurable/meson.build
@@ -32,6 +32,6 @@ custom_target(
   'lib@0@-data'.format(libconfigurable_name),
   input: libconfigurable_plugin_data,
   output: libconfigurable_plugin_data,
-  command: ['cp', '@INPUT@', '@OUTDIR@'],
+  command: [copyfile_script, '@INPUT@', '@OUTDIR@'],
   build_by_default: true,
 )
diff --git a/tests/libpeas-gtk/plugins/meson.build b/tests/libpeas-gtk/plugins/meson.build
index 432607f..be1c704 100644
--- a/tests/libpeas-gtk/plugins/meson.build
+++ b/tests/libpeas-gtk/plugins/meson.build
@@ -9,7 +9,7 @@ custom_target(
   'libpeas-gtk-test-data',
   input: libpeas_gtk_plugins_data,
   output: libpeas_gtk_plugins_data,
-  command: ['cp', '@INPUT@', '@OUTDIR@'],
+  command: [copyfile_script, '@INPUT@', '@OUTDIR@'],
   build_by_default: true,
 )
 
diff --git a/tests/libpeas-gtk/plugins/valid-custom-icon/meson.build 
b/tests/libpeas-gtk/plugins/valid-custom-icon/meson.build
index b5ec576..e1aac3b 100644
--- a/tests/libpeas-gtk/plugins/valid-custom-icon/meson.build
+++ b/tests/libpeas-gtk/plugins/valid-custom-icon/meson.build
@@ -9,6 +9,6 @@ custom_target(
   '@0@-data'.format(valid_custom_icon_name),
   input: valid_custom_icon_plugin_data,
   output: valid_custom_icon_plugin_data,
-  command: ['cp', '@INPUT@', '@OUTDIR@'],
+  command: [copyfile_script, '@INPUT@', '@OUTDIR@'],
   build_by_default: true,
 )
diff --git a/tests/libpeas/plugins/embedded/meson.build b/tests/libpeas/plugins/embedded/meson.build
index b56c0c9..c3e1b93 100644
--- a/tests/libpeas/plugins/embedded/meson.build
+++ b/tests/libpeas/plugins/embedded/meson.build
@@ -47,6 +47,6 @@ custom_target(
   '@0@-data'.format(libembedded_name),
   input: libembedded_plugin_data,
   output: libembedded_plugin_data,
-  command: ['cp', '@INPUT@', '@OUTDIR@'],
+  command: [copyfile_script, '@INPUT@', '@OUTDIR@'],
   build_by_default: true,
 )
diff --git a/tests/libpeas/plugins/extension-c/meson.build b/tests/libpeas/plugins/extension-c/meson.build
index ab03c4c..1c4030e 100644
--- a/tests/libpeas/plugins/extension-c/meson.build
+++ b/tests/libpeas/plugins/extension-c/meson.build
@@ -35,7 +35,7 @@ custom_target(
   'lib@0@-data'.format(libextension_c_name),
   input: libextension_c_plugin_data,
   output: libextension_c_plugin_data,
-  command: ['cp', '@INPUT@', '@OUTDIR@'],
+  command: [copyfile_script, '@INPUT@', '@OUTDIR@'],
   build_by_default: true,
 )
 
@@ -59,6 +59,6 @@ custom_target(
   'lib@0@-data'.format(libextension_c_missing_name),
   input: libextension_c_missing_plugin_data,
   output: libextension_c_missing_plugin_data,
-  command: ['cp', '@INPUT@', '@OUTDIR@'],
+  command: [copyfile_script, '@INPUT@', '@OUTDIR@'],
   build_by_default: true,
 )
diff --git a/tests/libpeas/plugins/extension-lua/meson.build b/tests/libpeas/plugins/extension-lua/meson.build
index f113a39..1e87f44 100644
--- a/tests/libpeas/plugins/extension-lua/meson.build
+++ b/tests/libpeas/plugins/extension-lua/meson.build
@@ -10,6 +10,6 @@ custom_target(
   '@0@-data'.format(extension_lua_name),
   input: extension_lua_plugin_data,
   output: extension_lua_plugin_data,
-  command: ['cp', '@INPUT@', '@OUTDIR@'],
+  command: [copyfile_script, '@INPUT@', '@OUTDIR@'],
   build_by_default: true,
 )
diff --git a/tests/libpeas/plugins/meson.build b/tests/libpeas/plugins/meson.build
index babe693..f410684 100644
--- a/tests/libpeas/plugins/meson.build
+++ b/tests/libpeas/plugins/meson.build
@@ -17,7 +17,7 @@ custom_target(
   'libpeas-test-data',
   input: libpeas_plugins_data,
   output: libpeas_plugins_data,
-  command: ['cp', '@INPUT@', '@OUTDIR@'],
+  command: [copyfile_script, '@INPUT@', '@OUTDIR@'],
   build_by_default: true,
 )
 
diff --git a/tests/plugins/builtin/meson.build b/tests/plugins/builtin/meson.build
index 2a46254..1603c30 100644
--- a/tests/plugins/builtin/meson.build
+++ b/tests/plugins/builtin/meson.build
@@ -29,6 +29,6 @@ custom_target(
   'lib@0@-data'.format(libbuiltin_name),
   input: libbuiltin_plugin_data,
   output: libbuiltin_plugin_data,
-  command: ['cp', '@INPUT@', '@OUTDIR@'],
+  command: [copyfile_script, '@INPUT@', '@OUTDIR@'],
   build_by_default: true,
 )
diff --git a/tests/plugins/has-dep/meson.build b/tests/plugins/has-dep/meson.build
index eddef12..21a4da7 100644
--- a/tests/plugins/has-dep/meson.build
+++ b/tests/plugins/has-dep/meson.build
@@ -30,6 +30,6 @@ custom_target(
   'lib@0@-data'.format(libhas_dep_name),
   input: libhas_dep_plugin_data,
   output: libhas_dep_plugin_data,
-  command: ['cp', '@INPUT@', '@OUTDIR@'],
+  command: [copyfile_script, '@INPUT@', '@OUTDIR@'],
   build_by_default: true,
 )
diff --git a/tests/plugins/loadable/meson.build b/tests/plugins/loadable/meson.build
index 522959a..76ee40b 100644
--- a/tests/plugins/loadable/meson.build
+++ b/tests/plugins/loadable/meson.build
@@ -29,6 +29,6 @@ custom_target(
   'lib@0@-data'.format(libloadable_name),
   input: libloadable_plugin_data,
   output: libloadable_plugin_data,
-  command: ['cp', '@INPUT@', '@OUTDIR@'],
+  command: [copyfile_script, '@INPUT@', '@OUTDIR@'],
   build_by_default: true,
 )
diff --git a/tests/plugins/meson.build b/tests/plugins/meson.build
index c19a8fb..03d1627 100644
--- a/tests/plugins/meson.build
+++ b/tests/plugins/meson.build
@@ -10,7 +10,7 @@ custom_target(
   '@0@-data'.format(generic_name),
   input: generic_plugins_data,
   output: generic_plugins_data,
-  command: ['cp', '@INPUT@', '@OUTDIR@'],
+  command: [copyfile_script, '@INPUT@', '@OUTDIR@'],
   build_by_default: true,
 )
 
diff --git a/tests/plugins/self-dep/meson.build b/tests/plugins/self-dep/meson.build
index 4cf0471..f44ee2c 100644
--- a/tests/plugins/self-dep/meson.build
+++ b/tests/plugins/self-dep/meson.build
@@ -29,6 +29,6 @@ custom_target(
   'lib@0@-data'.format(libself_dep_name),
   input: libself_dep_plugin_data,
   output: libself_dep_plugin_data,
-  command: ['cp', '@INPUT@', '@OUTDIR@'],
+  command: [copyfile_script, '@INPUT@', '@OUTDIR@'],
   build_by_default: true,
 )
\ No newline at end of file


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]