summaryrefslogtreecommitdiffstats
path: root/misc/utility/scons_hints.py
diff options
context:
space:
mode:
Diffstat (limited to 'misc/utility/scons_hints.py')
-rw-r--r--misc/utility/scons_hints.py98
1 files changed, 98 insertions, 0 deletions
diff --git a/misc/utility/scons_hints.py b/misc/utility/scons_hints.py
new file mode 100644
index 0000000000..fe380e399d
--- /dev/null
+++ b/misc/utility/scons_hints.py
@@ -0,0 +1,98 @@
+"""
+Adds type hints to SCons scripts. Implemented via
+`from misc.utility.scons_hints import *`.
+
+This is NOT a 1-1 representation of what the defines will represent in an
+SCons build, as proxies are almost always utilized instead. Rather, this is
+a means of tracing back what those proxies are calling to in the first place.
+"""
+
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ # ruff: noqa: F401
+ from SCons.Action import Action
+ from SCons.Builder import Builder
+ from SCons.Defaults import Chmod, Copy, CScan, DefaultEnvironment, Delete, DirScanner, Mkdir, Move, Touch
+ from SCons.Environment import Base
+ from SCons.Platform import Platform
+ from SCons.Platform.virtualenv import Virtualenv
+ from SCons.Scanner import FindPathDirs, ScannerBase
+ from SCons.Script import ARGLIST, ARGUMENTS, BUILD_TARGETS, COMMAND_LINE_TARGETS, DEFAULT_TARGETS
+ from SCons.Script.Main import (
+ AddOption,
+ BuildTask,
+ CleanTask,
+ DebugOptions,
+ GetBuildFailures,
+ GetOption,
+ PrintHelp,
+ Progress,
+ QuestionTask,
+ SetOption,
+ ValidateOptions,
+ )
+ from SCons.Script.SConscript import Configure, Return, SConsEnvironment, call_stack
+ from SCons.Script.SConscript import SConsEnvironment as Environment
+ from SCons.Subst import SetAllowableExceptions as AllowSubstExceptions
+ from SCons.Tool import CScanner, DScanner, ProgramScanner, SourceFileScanner, Tool
+ from SCons.Util import AddMethod, WhereIs
+ from SCons.Variables import BoolVariable, EnumVariable, ListVariable, PackageVariable, PathVariable, Variables
+
+ # Global functions
+ GetSConsVersion = SConsEnvironment.GetSConsVersion
+ EnsurePythonVersion = SConsEnvironment.EnsurePythonVersion
+ EnsureSConsVersion = SConsEnvironment.EnsureSConsVersion
+ Exit = SConsEnvironment.Exit
+ GetLaunchDir = SConsEnvironment.GetLaunchDir
+ SConscriptChdir = SConsEnvironment.SConscriptChdir
+
+ # SConsEnvironment functions
+ Default = SConsEnvironment(DefaultEnvironment()).Default
+ Export = SConsEnvironment(DefaultEnvironment()).Export
+ Help = SConsEnvironment(DefaultEnvironment()).Help
+ Import = SConsEnvironment(DefaultEnvironment()).Import
+ SConscript = SConsEnvironment(DefaultEnvironment()).SConscript
+
+ # Environment functions
+ AddPostAction = DefaultEnvironment().AddPostAction
+ AddPreAction = DefaultEnvironment().AddPreAction
+ Alias = DefaultEnvironment().Alias
+ AlwaysBuild = DefaultEnvironment().AlwaysBuild
+ CacheDir = DefaultEnvironment().CacheDir
+ Clean = DefaultEnvironment().Clean
+ Command = DefaultEnvironment().Command
+ Decider = DefaultEnvironment().Decider
+ Depends = DefaultEnvironment().Depends
+ Dir = DefaultEnvironment().Dir
+ Entry = DefaultEnvironment().Entry
+ Execute = DefaultEnvironment().Execute
+ File = DefaultEnvironment().File
+ FindFile = DefaultEnvironment().FindFile
+ FindInstalledFiles = DefaultEnvironment().FindInstalledFiles
+ FindSourceFiles = DefaultEnvironment().FindSourceFiles
+ Flatten = DefaultEnvironment().Flatten
+ GetBuildPath = DefaultEnvironment().GetBuildPath
+ Glob = DefaultEnvironment().Glob
+ Ignore = DefaultEnvironment().Ignore
+ Install = DefaultEnvironment().Install
+ InstallAs = DefaultEnvironment().InstallAs
+ InstallVersionedLib = DefaultEnvironment().InstallVersionedLib
+ Literal = DefaultEnvironment().Literal
+ Local = DefaultEnvironment().Local
+ NoCache = DefaultEnvironment().NoCache
+ NoClean = DefaultEnvironment().NoClean
+ ParseDepends = DefaultEnvironment().ParseDepends
+ Precious = DefaultEnvironment().Precious
+ PyPackageDir = DefaultEnvironment().PyPackageDir
+ Repository = DefaultEnvironment().Repository
+ Requires = DefaultEnvironment().Requires
+ SConsignFile = DefaultEnvironment().SConsignFile
+ SideEffect = DefaultEnvironment().SideEffect
+ Split = DefaultEnvironment().Split
+ Tag = DefaultEnvironment().Tag
+ Value = DefaultEnvironment().Value
+ VariantDir = DefaultEnvironment().VariantDir
+
+ env: SConsEnvironment
+ env_modules: SConsEnvironment