summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChun-wei Fan <fanchunwei@src.gnome.org>2018-08-21 00:30:46 +0800
committerChun-wei Fan <fanchunwei@src.gnome.org>2018-08-21 09:53:05 +0800
commit2c6b3b9a3593e9eeb5da0af54dfff3b0810dcea6 (patch)
tree053e6b785d818979378c2710c45c5ffda45ac819
parent7378dedc564dbf7ba271853938ce0c58bff071b8 (diff)
downloadgobject-introspection-2c6b3b9a3593e9eeb5da0af54dfff3b0810dcea6.tar.gz
g-ir-tool-template.in: Don't hardcode /usr/bin/env
For Visual Studio builds, it is likely that we specify a specific Python installation as there may well be multiple Python installations, but _giscanner.pyd gets tied to the particular Python DLL that it was built with. So, we cannot just use /usr/bin/env python3 in such a case on Visual Studio, but instead we use the full path to the Python executable in the shebang so that the correct Python installation is used, when running the installed scripts. This is necessary as Meson could bump the Python version it requires but _giscanner.pyd could not be used on the newer Python that is required due to differences in the Python version and the CRT Python itself is linked to, for instance. We continue to use /usr/bin/env python[2|3] for other builds.
-rw-r--r--Makefile-tools.am2
-rwxr-xr-xtools/g-ir-tool-template.in2
-rw-r--r--tools/meson.build9
3 files changed, 9 insertions, 4 deletions
diff --git a/Makefile-tools.am b/Makefile-tools.am
index 8c4a069b..c70d9850 100644
--- a/Makefile-tools.am
+++ b/Makefile-tools.am
@@ -9,7 +9,7 @@ EXTRA_DIST += \
tools/g-ir-tool-template.in \
tools/meson.build
-TOOL_SUBSTITUTIONS = -e s,@libdir\@,$(libdir), -e s,@datarootdir\@,$(datarootdir), -e s,@PYTHON\@,$(PYTHON),
+TOOL_SUBSTITUTIONS = -e s,@libdir\@,$(libdir), -e s,@datarootdir\@,$(datarootdir), -e s,@PYTHON_CMD\@,\/usr\/bin\/env\ $(PYTHON),
g-ir-scanner: tools/g-ir-tool-template.in _giscanner.la Makefile
$(AM_V_GEN) sed $(TOOL_SUBSTITUTIONS) -e s,@TOOL_MODULE\@,scannermain, -e s,@TOOL_FUNCTION\@,scanner_main, $< > $@.tmp && mv $@.tmp $@
diff --git a/tools/g-ir-tool-template.in b/tools/g-ir-tool-template.in
index 83279bd4..fb6b665b 100755
--- a/tools/g-ir-tool-template.in
+++ b/tools/g-ir-tool-template.in
@@ -1,4 +1,4 @@
-#!/usr/bin/env @PYTHON@
+#!@PYTHON_CMD@
# -*- Mode: Python -*-
# GObject-Introspection - a framework for introspecting GObject libraries
# Copyright (C) 2008 Johan Dahlin
diff --git a/tools/meson.build b/tools/meson.build
index 73472664..912eb6ba 100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -9,13 +9,18 @@ if get_option('doctool')
tools += [['g-ir-doc-tool', 'docmain', 'doc_main']]
endif
-python_name = 'python@0@'.format(python.language_version().split('.')[0])
+if cc.get_id() == 'msvc'
+ python_cmd = python.get_variable('prefix') + '\\python.exe'
+else
+ python_cmd = '/usr/bin/env python@0@'.format(python.language_version().split('.')[0])
+endif
+
tool_output = []
foreach tool : tools
tools_conf = configuration_data()
tools_conf.set('libdir', libdir_abs)
tools_conf.set('datarootdir', datadir_abs)
- tools_conf.set('PYTHON', python_name)
+ tools_conf.set('PYTHON_CMD', python_cmd)
tools_conf.set('TOOL_MODULE', tool[1])
tools_conf.set('TOOL_FUNCTION', tool[2])