aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Turney <jon.turney@dronecode.org.uk>2017-03-27 14:52:34 +0100
committerJon Turney <jon.turney@dronecode.org.uk>2017-04-06 22:47:15 +0100
commit600f16f9f834f14ff411b477674b6112cbac33d1 (patch)
treed40cff8cb637fb4a74d3149ed14499123ef7fbc8
parentcbc5064a67b2e7ff1a69d40f65c84e3d55fe2a66 (diff)
downloadmeson-600f16f9f834f14ff411b477674b6112cbac33d1.zip
meson-600f16f9f834f14ff411b477674b6112cbac33d1.tar.gz
meson-600f16f9f834f14ff411b477674b6112cbac33d1.tar.bz2
Use extra_paths on Cygwin
Cygwin executables are still loaded by the Windows PE loader, so PATH needs to include any extra directories where required DLLs can be found. Cygwin uses a unix style ':'-separated PATH. os.pathsep is used correctly on extra_paths in meson_exe.py, but not in mesontest.py
-rw-r--r--mesonbuild/backend/backends.py4
-rw-r--r--mesonbuild/backend/ninjabackend.py2
-rwxr-xr-xmesontest.py2
3 files changed, 4 insertions, 4 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index 5517fbd..80cf0ee 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -252,7 +252,7 @@ class Backend:
exe_wrapper = self.environment.cross_info.config['binaries'].get('exe_wrapper', None)
else:
exe_wrapper = None
- if mesonlib.is_windows():
+ if mesonlib.is_windows() or mesonlib.is_cygwin():
extra_paths = self.determine_windows_extra_paths(exe)
else:
extra_paths = []
@@ -481,7 +481,7 @@ class Backend:
exe_wrapper = self.environment.cross_info.config['binaries'].get('exe_wrapper', None)
else:
exe_wrapper = None
- if mesonlib.is_windows():
+ if mesonlib.is_windows() or mesonlib.is_cygwin():
extra_paths = self.determine_windows_extra_paths(exe)
else:
extra_paths = []
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index bc51ace..3143970 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -492,7 +492,7 @@ int dummy;
# the project, we need to set PATH so the DLLs are found. We use
# a serialized executable wrapper for that and check if the
# CustomTarget command needs extra paths first.
- if target.capture or (mesonlib.is_windows() and
+ if target.capture or ((mesonlib.is_windows() or mesonlib.is_cygwin()) and
self.determine_windows_extra_paths(target.command[0])):
exe_data = self.serialise_executable(target.command[0], cmd[1:],
# All targets are built from the build dir
diff --git a/mesontest.py b/mesontest.py
index a1708e3..d626ba7 100755
--- a/mesontest.py
+++ b/mesontest.py
@@ -202,7 +202,7 @@ class TestHarness:
child_env.update(test.env)
if len(test.extra_paths) > 0:
- child_env['PATH'] += ';'.join([''] + test.extra_paths)
+ child_env['PATH'] += os.pathsep.join([''] + test.extra_paths)
# If MALLOC_PERTURB_ is not set, or if it is set to an empty value,
# (i.e., the test or the environment don't explicitly set it), set