#!/usr/bin/env python3 import os, sys from pathlib import Path assert 'MESON_SOURCE_ROOT' in os.environ assert 'MESON_BUILD_ROOT' in os.environ assert 'MESON_SUBDIR' in os.environ assert 'MESONINTROSPECT' in os.environ assert 'MY_ENV' in os.environ # Environment has absolute paths and argv has relative paths when using ninja # backend and absolute paths when using vs backend. What matters is once # resolved they point to same location. env_source_root = Path(os.environ['MESON_SOURCE_ROOT']).resolve() env_build_root = Path(os.environ['MESON_BUILD_ROOT']).resolve() env_current_source_dir = Path(env_source_root, os.environ['MESON_SUBDIR']).resolve() print(sys.argv) argv_paths = [Path(i).resolve() for i in sys.argv[1:]] source_root, build_root, current_source_dir = argv_paths print(f'{source_root} == {env_source_root}') assert source_root == env_source_root print(f'{build_root} == {env_build_root}') assert build_root == env_build_root print(f'{current_source_dir} == {env_current_source_dir}') assert current_source_dir == env_current_source_dir