aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/envconfig.py36
-rw-r--r--mesonbuild/environment.py34
2 files changed, 32 insertions, 38 deletions
diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
index 596defe..c133ec9 100644
--- a/mesonbuild/envconfig.py
+++ b/mesonbuild/envconfig.py
@@ -12,20 +12,15 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-import os, subprocess
+import subprocess
import typing as T
from enum import Enum
from . import mesonlib
-from .mesonlib import EnvironmentException, MachineChoice, PerMachine, split_args
+from .mesonlib import EnvironmentException
from . import mlog
from pathlib import Path
-_T = T.TypeVar('_T')
-
-if T.TYPE_CHECKING:
- from .environment import Environment
-
# These classes contains all the data pulled from configuration files (native
# and cross file currently), and also assists with the reading environment
@@ -136,33 +131,6 @@ class CMakeSkipCompilerTest(Enum):
NEVER = 'never'
DEP_ONLY = 'dep_only'
-
-def get_env_var_pair(for_machine: MachineChoice,
- is_cross: bool,
- var_name: str) -> T.Optional[T.Tuple[str, str]]:
- """
- Returns the exact env var and the value.
- """
- candidates = PerMachine(
- # The prefixed build version takes priority, but if we are native
- # compiling we fall back on the unprefixed host version. This
- # allows native builds to never need to worry about the 'BUILD_*'
- # ones.
- ([var_name + '_FOR_BUILD'] if is_cross else [var_name]),
- # Always just the unprefixed host verions
- [var_name]
- )[for_machine]
- for var in candidates:
- value = os.environ.get(var)
- if value is not None:
- break
- else:
- formatted = ', '.join(['{!r}'.format(var) for var in candidates])
- mlog.debug('None of {} are defined in the environment, not changing global flags.'.format(formatted))
- return None
- mlog.debug('Using {!r} from environment with value: {!r}'.format(var, value))
- return var, value
-
class Properties:
def __init__(
self,
diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
index ba24411..8ff9574 100644
--- a/mesonbuild/environment.py
+++ b/mesonbuild/environment.py
@@ -23,15 +23,13 @@ from . import coredata
from .linkers import ArLinker, ArmarLinker, VisualStudioLinker, DLinker, CcrxLinker, Xc16Linker, CompCertLinker, C2000Linker, IntelVisualStudioLinker, AIXArLinker
from . import mesonlib
from .mesonlib import (
- MesonException, EnvironmentException, MachineChoice, Popen_safe,
+ MesonException, EnvironmentException, MachineChoice, Popen_safe, PerMachine,
PerMachineDefaultable, PerThreeMachineDefaultable, split_args, quote_arg, OptionKey
)
from . import mlog
from .envconfig import (
- BinaryTable, ENV_VAR_PROG_MAP, MachineInfo,
- Properties, known_cpu_families, get_env_var_pair,
- CMakeVariables,
+ BinaryTable, MachineInfo, Properties, known_cpu_families, CMakeVariables,
)
from . import compilers
from .compilers import (
@@ -143,6 +141,34 @@ CompilersDict = T.Dict[str, Compiler]
if T.TYPE_CHECKING:
import argparse
+
+def get_env_var_pair(for_machine: MachineChoice,
+ is_cross: bool,
+ var_name: str) -> T.Optional[T.Tuple[str, str]]:
+ """
+ Returns the exact env var and the value.
+ """
+ candidates = PerMachine(
+ # The prefixed build version takes priority, but if we are native
+ # compiling we fall back on the unprefixed host version. This
+ # allows native builds to never need to worry about the 'BUILD_*'
+ # ones.
+ ([var_name + '_FOR_BUILD'] if is_cross else [var_name]),
+ # Always just the unprefixed host verions
+ [var_name]
+ )[for_machine]
+ for var in candidates:
+ value = os.environ.get(var)
+ if value is not None:
+ break
+ else:
+ formatted = ', '.join(['{!r}'.format(var) for var in candidates])
+ mlog.debug('None of {} are defined in the environment, not changing global flags.'.format(formatted))
+ return None
+ mlog.debug('Using {!r} from environment with value: {!r}'.format(var, value))
+ return var, value
+
+
def detect_gcovr(min_version='3.3', new_rootdir_version='4.2', log=False):
gcovr_exe = 'gcovr'
try: