Nuitka-winsvc 2.7.7__cp313-cp313-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Nuitka-winsvc might be problematic. Click here for more details.
- nuitka/Builtins.py +259 -0
- nuitka/BytecodeCaching.py +184 -0
- nuitka/Bytecodes.py +109 -0
- nuitka/CacheCleanup.py +54 -0
- nuitka/Constants.py +425 -0
- nuitka/Errors.py +93 -0
- nuitka/HardImportRegistry.py +408 -0
- nuitka/MainControl.py +1201 -0
- nuitka/ModuleRegistry.py +364 -0
- nuitka/OptionParsing.py +2473 -0
- nuitka/Options.py +2948 -0
- nuitka/OutputDirectories.py +201 -0
- nuitka/PostProcessing.py +551 -0
- nuitka/Progress.py +252 -0
- nuitka/PythonFlavors.py +426 -0
- nuitka/PythonOperators.py +146 -0
- nuitka/PythonVersions.py +513 -0
- nuitka/Serialization.py +291 -0
- nuitka/SourceCodeReferences.py +176 -0
- nuitka/Tracing.py +579 -0
- nuitka/TreeXML.py +141 -0
- nuitka/Variables.py +515 -0
- nuitka/Version.py +88 -0
- nuitka/__init__.py +19 -0
- nuitka/__main__.py +224 -0
- nuitka/__past__.py +217 -0
- nuitka/build/Backend.scons +1111 -0
- nuitka/build/CCompilerVersion.scons +281 -0
- nuitka/build/DataComposerInterface.py +116 -0
- nuitka/build/Offsets.scons +626 -0
- nuitka/build/Onefile.scons +564 -0
- nuitka/build/SconsCaching.py +451 -0
- nuitka/build/SconsCompilerSettings.py +1133 -0
- nuitka/build/SconsHacks.py +215 -0
- nuitka/build/SconsInterface.py +664 -0
- nuitka/build/SconsProgress.py +100 -0
- nuitka/build/SconsSpawn.py +436 -0
- nuitka/build/SconsUtils.py +939 -0
- nuitka/build/__init__.py +19 -0
- nuitka/build/include/nuitka/allocator.h +450 -0
- nuitka/build/include/nuitka/builtins.h +97 -0
- nuitka/build/include/nuitka/calling.h +123 -0
- nuitka/build/include/nuitka/checkers.h +39 -0
- nuitka/build/include/nuitka/checksum_tools.h +28 -0
- nuitka/build/include/nuitka/compiled_asyncgen.h +281 -0
- nuitka/build/include/nuitka/compiled_cell.h +64 -0
- nuitka/build/include/nuitka/compiled_coroutine.h +271 -0
- nuitka/build/include/nuitka/compiled_frame.h +502 -0
- nuitka/build/include/nuitka/compiled_function.h +170 -0
- nuitka/build/include/nuitka/compiled_generator.h +287 -0
- nuitka/build/include/nuitka/compiled_method.h +54 -0
- nuitka/build/include/nuitka/constants.h +251 -0
- nuitka/build/include/nuitka/constants_blob.h +34 -0
- nuitka/build/include/nuitka/debug_settings.h +60 -0
- nuitka/build/include/nuitka/environment_variables.h +30 -0
- nuitka/build/include/nuitka/environment_variables_system.h +51 -0
- nuitka/build/include/nuitka/exception_groups.h +167 -0
- nuitka/build/include/nuitka/exceptions.h +1458 -0
- nuitka/build/include/nuitka/filesystem_paths.h +117 -0
- nuitka/build/include/nuitka/freelists.h +92 -0
- nuitka/build/include/nuitka/hedley.h +1774 -0
- nuitka/build/include/nuitka/helper/attributes.h +90 -0
- nuitka/build/include/nuitka/helper/boolean.h +86 -0
- nuitka/build/include/nuitka/helper/bytearrays.h +34 -0
- nuitka/build/include/nuitka/helper/bytes.h +28 -0
- nuitka/build/include/nuitka/helper/calling_generated.h +132 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_eq.h +247 -0
- nuitka/build/include/nuitka/helper/comparisons_ge.h +197 -0
- nuitka/build/include/nuitka/helper/comparisons_gt.h +197 -0
- nuitka/build/include/nuitka/helper/comparisons_le.h +247 -0
- nuitka/build/include/nuitka/helper/comparisons_lt.h +247 -0
- nuitka/build/include/nuitka/helper/comparisons_ne.h +197 -0
- nuitka/build/include/nuitka/helper/complex.h +46 -0
- nuitka/build/include/nuitka/helper/dictionaries.h +481 -0
- nuitka/build/include/nuitka/helper/floats.h +32 -0
- nuitka/build/include/nuitka/helper/import_hard.h +121 -0
- nuitka/build/include/nuitka/helper/indexes.h +47 -0
- nuitka/build/include/nuitka/helper/ints.h +165 -0
- nuitka/build/include/nuitka/helper/iterators.h +376 -0
- nuitka/build/include/nuitka/helper/lists.h +94 -0
- nuitka/build/include/nuitka/helper/lists_generated.h +36 -0
- nuitka/build/include/nuitka/helper/mappings.h +39 -0
- nuitka/build/include/nuitka/helper/operations.h +114 -0
- nuitka/build/include/nuitka/helper/operations_binary_add.h +240 -0
- nuitka/build/include/nuitka/helper/operations_binary_bitand.h +108 -0
- nuitka/build/include/nuitka/helper/operations_binary_bitor.h +108 -0
- nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +108 -0
- nuitka/build/include/nuitka/helper/operations_binary_divmod.h +103 -0
- nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +34 -0
- nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +103 -0
- nuitka/build/include/nuitka/helper/operations_binary_lshift.h +99 -0
- nuitka/build/include/nuitka/helper/operations_binary_matmult.h +60 -0
- nuitka/build/include/nuitka/helper/operations_binary_mod.h +304 -0
- nuitka/build/include/nuitka/helper/operations_binary_mult.h +247 -0
- nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +125 -0
- nuitka/build/include/nuitka/helper/operations_binary_pow.h +90 -0
- nuitka/build/include/nuitka/helper/operations_binary_rshift.h +99 -0
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +117 -0
- nuitka/build/include/nuitka/helper/operations_binary_truediv.h +103 -0
- nuitka/build/include/nuitka/helper/operations_builtin_types.h +247 -0
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +173 -0
- nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +76 -0
- nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +76 -0
- nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +76 -0
- nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +95 -0
- nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +62 -0
- nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +60 -0
- nuitka/build/include/nuitka/helper/operations_inplace_mod.h +218 -0
- nuitka/build/include/nuitka/helper/operations_inplace_mult.h +184 -0
- nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +115 -0
- nuitka/build/include/nuitka/helper/operations_inplace_pow.h +87 -0
- nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +62 -0
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +102 -0
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +95 -0
- nuitka/build/include/nuitka/helper/raising.h +114 -0
- nuitka/build/include/nuitka/helper/rangeobjects.h +66 -0
- nuitka/build/include/nuitka/helper/richcomparisons.h +35 -0
- nuitka/build/include/nuitka/helper/sequences.h +33 -0
- nuitka/build/include/nuitka/helper/sets.h +25 -0
- nuitka/build/include/nuitka/helper/slices.h +314 -0
- nuitka/build/include/nuitka/helper/strings.h +30 -0
- nuitka/build/include/nuitka/helper/subscripts.h +390 -0
- nuitka/build/include/nuitka/helper/tuples.h +187 -0
- nuitka/build/include/nuitka/helpers.h +417 -0
- nuitka/build/include/nuitka/importing.h +149 -0
- nuitka/build/include/nuitka/incbin.h +402 -0
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +626 -0
- nuitka/build/include/nuitka/printing.h +84 -0
- nuitka/build/include/nuitka/python_pgo.h +57 -0
- nuitka/build/include/nuitka/safe_string_ops.h +57 -0
- nuitka/build/include/nuitka/threading.h +142 -0
- nuitka/build/include/nuitka/tracing.h +82 -0
- nuitka/build/include/nuitka/type_aliases.h +30 -0
- nuitka/build/include/nuitka/unfreezing.h +91 -0
- nuitka/build/inline_copy/appdirs/LICENSE.txt +23 -0
- nuitka/build/inline_copy/appdirs/appdirs.py +611 -0
- nuitka/build/inline_copy/atomicwrites/LICENSE +19 -0
- nuitka/build/inline_copy/atomicwrites/atomicwrites.py +226 -0
- nuitka/build/inline_copy/bin/scons.py +58 -0
- nuitka/build/inline_copy/clcache/clcache/LICENSE +30 -0
- nuitka/build/inline_copy/clcache/clcache/__init__.py +4 -0
- nuitka/build/inline_copy/clcache/clcache/caching.py +2008 -0
- nuitka/build/inline_copy/colorama/LICENSE.txt +27 -0
- nuitka/build/inline_copy/colorama/colorama/__init__.py +6 -0
- nuitka/build/inline_copy/colorama/colorama/ansi.py +102 -0
- nuitka/build/inline_copy/colorama/colorama/ansitowin32.py +258 -0
- nuitka/build/inline_copy/colorama/colorama/initialise.py +80 -0
- nuitka/build/inline_copy/colorama/colorama/win32.py +152 -0
- nuitka/build/inline_copy/colorama/colorama/winterm.py +169 -0
- nuitka/build/inline_copy/glob2/LICENSE +27 -0
- nuitka/build/inline_copy/glob2/glob2/__init__.py +5 -0
- nuitka/build/inline_copy/glob2/glob2/compat.py +167 -0
- nuitka/build/inline_copy/glob2/glob2/fnmatch.py +141 -0
- nuitka/build/inline_copy/glob2/glob2/impl.py +216 -0
- nuitka/build/inline_copy/jinja2/LICENSE.rst +28 -0
- nuitka/build/inline_copy/jinja2/README.rst +2 -0
- nuitka/build/inline_copy/jinja2/jinja2/__init__.py +72 -0
- nuitka/build/inline_copy/jinja2/jinja2/_compat.py +105 -0
- nuitka/build/inline_copy/jinja2/jinja2/_identifier.py +2 -0
- nuitka/build/inline_copy/jinja2/jinja2/bccache.py +361 -0
- nuitka/build/inline_copy/jinja2/jinja2/compiler.py +1721 -0
- nuitka/build/inline_copy/jinja2/jinja2/constants.py +32 -0
- nuitka/build/inline_copy/jinja2/jinja2/debug.py +378 -0
- nuitka/build/inline_copy/jinja2/jinja2/defaults.py +56 -0
- nuitka/build/inline_copy/jinja2/jinja2/environment.py +1276 -0
- nuitka/build/inline_copy/jinja2/jinja2/exceptions.py +146 -0
- nuitka/build/inline_copy/jinja2/jinja2/ext.py +627 -0
- nuitka/build/inline_copy/jinja2/jinja2/filters.py +1190 -0
- nuitka/build/inline_copy/jinja2/jinja2/idtracking.py +286 -0
- nuitka/build/inline_copy/jinja2/jinja2/lexer.py +739 -0
- nuitka/build/inline_copy/jinja2/jinja2/loaders.py +483 -0
- nuitka/build/inline_copy/jinja2/jinja2/meta.py +106 -0
- nuitka/build/inline_copy/jinja2/jinja2/nativetypes.py +220 -0
- nuitka/build/inline_copy/jinja2/jinja2/nodes.py +999 -0
- nuitka/build/inline_copy/jinja2/jinja2/optimizer.py +49 -0
- nuitka/build/inline_copy/jinja2/jinja2/parser.py +903 -0
- nuitka/build/inline_copy/jinja2/jinja2/runtime.py +808 -0
- nuitka/build/inline_copy/jinja2/jinja2/sandbox.py +488 -0
- nuitka/build/inline_copy/jinja2/jinja2/tests.py +174 -0
- nuitka/build/inline_copy/jinja2/jinja2/utils.py +642 -0
- nuitka/build/inline_copy/jinja2/jinja2/visitor.py +87 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Action.py +1475 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Builder.py +905 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/CacheDir.py +314 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Conftest.py +805 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Debug.py +251 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Defaults.py +646 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Environment.py +2561 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/EnvironmentValues.py +119 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Errors.py +222 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Executor.py +660 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Job.py +439 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Memoize.py +242 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/Alias.py +176 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/FS.py +3861 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/Python.py +195 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/__init__.py +1784 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/PathList.py +224 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/__init__.py +341 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/aix.py +81 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/cygwin.py +61 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/darwin.py +70 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/hpux.py +45 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/irix.py +41 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/mingw.py +33 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/os2.py +55 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/posix.py +124 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/sunos.py +47 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/virtualenv.py +115 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/win32.py +429 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/SConf.py +1119 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/SConsign.py +453 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/C.py +226 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/Dir.py +131 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/Prog.py +114 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/RC.py +57 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/__init__.py +436 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/Interactive.py +372 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/Main.py +1469 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/SConsOptions.py +1071 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/SConscript.py +686 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/__init__.py +425 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Subst.py +979 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Taskmaster.py +1062 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/386asm.py +61 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/GettextCommon.py +429 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/__init__.py +52 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/arch.py +66 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/common.py +371 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/netframework.py +83 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/sdk.py +411 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/vc.py +994 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/vs.py +608 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/PharLapCommon.py +116 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/__init__.py +882 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixc++.py +43 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixcc.py +74 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixcxx.py +77 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixlink.py +78 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/applelink.py +209 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/ar.py +63 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/as.py +49 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/asm.py +78 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/bcc32.py +81 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/c++.py +44 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/cc.py +105 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/clang.py +91 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/clangCommon/__init__.py +18 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/clangxx.py +99 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/cxx.py +95 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/cyglink.py +212 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/default.py +50 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/filesystem.py +98 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/g++.py +45 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gas.py +56 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gcc.py +110 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gettext_tool.py +69 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gnulink.py +70 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gxx.py +78 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hpc++.py +45 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hpcc.py +53 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hpcxx.py +88 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hplink.py +72 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/icc.py +59 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/icl.py +52 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/ilink.py +55 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/ilink32.py +60 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/install.py +510 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/intelc.py +617 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/link.py +72 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkCommon/LoadableModule.py +131 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkCommon/SharedLibrary.py +218 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkCommon/__init__.py +171 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkloc.py +112 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/m4.py +63 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/masm.py +77 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mingw.py +232 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msgfmt.py +132 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msginit.py +137 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msgmerge.py +125 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mslib.py +73 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mslink.py +339 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mssdk.py +50 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msvc.py +325 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msvs.py +2116 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mwcc.py +207 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mwld.py +108 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/nasm.py +72 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/rmic.py +139 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/rpcgen.py +70 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgiar.py +68 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgic++.py +43 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgicc.py +53 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgicxx.py +61 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgilink.py +59 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sunar.py +64 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sunc++.py +45 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/suncc.py +58 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/suncxx.py +153 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sunlink.py +79 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/tar.py +73 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/textfile.py +198 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/tlib.py +53 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/wix.py +104 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/xgettext.py +337 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/zip.py +120 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Util.py +2134 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Utilities/ConfigureCache.py +171 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Utilities/__init__.py +0 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Utilities/sconsign.py +494 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/BoolVariable.py +96 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/EnumVariable.py +110 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +152 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/PackageVariable.py +107 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/PathVariable.py +158 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/__init__.py +334 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Warnings.py +238 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/__init__.py +9 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/compat/__init__.py +104 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/compat/_scons_dbm.py +42 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/compat/win32.py +101 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/cpp.py +640 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/dblite.py +295 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/exitfuncs.py +59 -0
- nuitka/build/inline_copy/markupsafe/LICENSE.rst +28 -0
- nuitka/build/inline_copy/markupsafe/markupsafe/__init__.py +327 -0
- nuitka/build/inline_copy/markupsafe/markupsafe/_compat.py +33 -0
- nuitka/build/inline_copy/markupsafe/markupsafe/_constants.py +264 -0
- nuitka/build/inline_copy/markupsafe/markupsafe/_native.py +69 -0
- nuitka/build/inline_copy/pefile/LICENSE.txt +21 -0
- nuitka/build/inline_copy/pefile/ordlookup/__init__.py +41 -0
- nuitka/build/inline_copy/pefile/ordlookup/oleaut32.py +400 -0
- nuitka/build/inline_copy/pefile/ordlookup/ws2_32.py +120 -0
- nuitka/build/inline_copy/pefile/pefile.py +8034 -0
- nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +3272 -0
- nuitka/build/inline_copy/pkg_resources/pkg_resources/py31compat.py +21 -0
- nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
- nuitka/build/inline_copy/stubgen/astunparse.py +938 -0
- nuitka/build/inline_copy/stubgen/six.py +998 -0
- nuitka/build/inline_copy/stubgen/stubgen.py +484 -0
- nuitka/build/inline_copy/tqdm/tqdm/__init__.py +40 -0
- nuitka/build/inline_copy/tqdm/tqdm/_main.py +9 -0
- nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +97 -0
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm.py +9 -0
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm_notebook.py +9 -0
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm_pandas.py +24 -0
- nuitka/build/inline_copy/tqdm/tqdm/_utils.py +12 -0
- nuitka/build/inline_copy/tqdm/tqdm/auto.py +44 -0
- nuitka/build/inline_copy/tqdm/tqdm/autonotebook.py +28 -0
- nuitka/build/inline_copy/tqdm/tqdm/dask.py +46 -0
- nuitka/build/inline_copy/tqdm/tqdm/notebook.py +316 -0
- nuitka/build/inline_copy/tqdm/tqdm/std.py +1524 -0
- nuitka/build/inline_copy/tqdm/tqdm/tk.py +207 -0
- nuitka/build/inline_copy/tqdm/tqdm/utils.py +351 -0
- nuitka/build/inline_copy/tqdm/tqdm/version.py +2 -0
- nuitka/build/inline_copy/yaml/LICENSE +20 -0
- nuitka/build/inline_copy/yaml/yaml/__init__.py +427 -0
- nuitka/build/inline_copy/yaml/yaml/composer.py +139 -0
- nuitka/build/inline_copy/yaml/yaml/constructor.py +748 -0
- nuitka/build/inline_copy/yaml/yaml/cyaml.py +101 -0
- nuitka/build/inline_copy/yaml/yaml/dumper.py +62 -0
- nuitka/build/inline_copy/yaml/yaml/emitter.py +1137 -0
- nuitka/build/inline_copy/yaml/yaml/error.py +75 -0
- nuitka/build/inline_copy/yaml/yaml/events.py +86 -0
- nuitka/build/inline_copy/yaml/yaml/loader.py +63 -0
- nuitka/build/inline_copy/yaml/yaml/nodes.py +49 -0
- nuitka/build/inline_copy/yaml/yaml/parser.py +589 -0
- nuitka/build/inline_copy/yaml/yaml/reader.py +185 -0
- nuitka/build/inline_copy/yaml/yaml/representer.py +389 -0
- nuitka/build/inline_copy/yaml/yaml/resolver.py +227 -0
- nuitka/build/inline_copy/yaml/yaml/scanner.py +1435 -0
- nuitka/build/inline_copy/yaml/yaml/serializer.py +111 -0
- nuitka/build/inline_copy/yaml/yaml/tokens.py +104 -0
- nuitka/build/inline_copy/zlib/LICENSE +22 -0
- nuitka/build/inline_copy/zlib/crc32.c +1049 -0
- nuitka/build/inline_copy/zlib/crc32.h +9446 -0
- nuitka/build/inline_copy/zlib/zconf.h +551 -0
- nuitka/build/inline_copy/zlib/zlib.h +1938 -0
- nuitka/build/inline_copy/zlib/zutil.h +275 -0
- nuitka/build/inline_copy/zstd/LICENSE.txt +30 -0
- nuitka/build/inline_copy/zstd/common/bitstream.h +463 -0
- nuitka/build/inline_copy/zstd/common/compiler.h +288 -0
- nuitka/build/inline_copy/zstd/common/cpu.h +213 -0
- nuitka/build/inline_copy/zstd/common/debug.h +107 -0
- nuitka/build/inline_copy/zstd/common/entropy_common.c +360 -0
- nuitka/build/inline_copy/zstd/common/error_private.c +56 -0
- nuitka/build/inline_copy/zstd/common/error_private.h +80 -0
- nuitka/build/inline_copy/zstd/common/fse.h +715 -0
- nuitka/build/inline_copy/zstd/common/fse_decompress.c +393 -0
- nuitka/build/inline_copy/zstd/common/huf.h +361 -0
- nuitka/build/inline_copy/zstd/common/mem.h +426 -0
- nuitka/build/inline_copy/zstd/common/xxhash.c +826 -0
- nuitka/build/inline_copy/zstd/common/xxhash.h +285 -0
- nuitka/build/inline_copy/zstd/common/zstd_common.c +83 -0
- nuitka/build/inline_copy/zstd/common/zstd_deps.h +111 -0
- nuitka/build/inline_copy/zstd/common/zstd_errors.h +95 -0
- nuitka/build/inline_copy/zstd/common/zstd_internal.h +478 -0
- nuitka/build/inline_copy/zstd/decompress/huf_decompress.c +1350 -0
- nuitka/build/inline_copy/zstd/decompress/zstd_ddict.c +244 -0
- nuitka/build/inline_copy/zstd/decompress/zstd_ddict.h +44 -0
- nuitka/build/inline_copy/zstd/decompress/zstd_decompress.c +1930 -0
- nuitka/build/inline_copy/zstd/decompress/zstd_decompress_block.c +1540 -0
- nuitka/build/inline_copy/zstd/decompress/zstd_decompress_block.h +62 -0
- nuitka/build/inline_copy/zstd/decompress/zstd_decompress_internal.h +190 -0
- nuitka/build/inline_copy/zstd/zstd.h +2391 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +2211 -0
- nuitka/build/static_src/CompiledCellType.c +300 -0
- nuitka/build/static_src/CompiledCodeHelpers.c +2160 -0
- nuitka/build/static_src/CompiledCoroutineType.c +1946 -0
- nuitka/build/static_src/CompiledFrameType.c +1337 -0
- nuitka/build/static_src/CompiledFunctionType.c +3320 -0
- nuitka/build/static_src/CompiledGeneratorType.c +1997 -0
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +2117 -0
- nuitka/build/static_src/CompiledMethodType.c +614 -0
- nuitka/build/static_src/GenerateHeadersMain.c +30 -0
- nuitka/build/static_src/HelpersAllocator.c +939 -0
- nuitka/build/static_src/HelpersAttributes.c +1241 -0
- nuitka/build/static_src/HelpersBuiltin.c +901 -0
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +3594 -0
- nuitka/build/static_src/HelpersBytes.c +107 -0
- nuitka/build/static_src/HelpersCalling.c +397 -0
- nuitka/build/static_src/HelpersCallingGenerated.c +14361 -0
- nuitka/build/static_src/HelpersChecksumTools.c +59 -0
- nuitka/build/static_src/HelpersClasses.c +91 -0
- nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
- nuitka/build/static_src/HelpersComparisonEq.c +12070 -0
- nuitka/build/static_src/HelpersComparisonEqUtils.c +169 -0
- nuitka/build/static_src/HelpersComparisonGe.c +11871 -0
- nuitka/build/static_src/HelpersComparisonGt.c +11855 -0
- nuitka/build/static_src/HelpersComparisonLe.c +11957 -0
- nuitka/build/static_src/HelpersComparisonLt.c +11941 -0
- nuitka/build/static_src/HelpersComparisonNe.c +11979 -0
- nuitka/build/static_src/HelpersConsole.c +124 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +1487 -0
- nuitka/build/static_src/HelpersDeepcopy.c +636 -0
- nuitka/build/static_src/HelpersDictionaries.c +1739 -0
- nuitka/build/static_src/HelpersDictionariesGenerated.c +738 -0
- nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
- nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
- nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +97 -0
- nuitka/build/static_src/HelpersExceptions.c +298 -0
- nuitka/build/static_src/HelpersFiles.c +353 -0
- nuitka/build/static_src/HelpersFilesystemPaths.c +1322 -0
- nuitka/build/static_src/HelpersFloats.c +92 -0
- nuitka/build/static_src/HelpersHeapStorage.c +68 -0
- nuitka/build/static_src/HelpersImport.c +506 -0
- nuitka/build/static_src/HelpersImportHard.c +526 -0
- nuitka/build/static_src/HelpersJitSources.c +48 -0
- nuitka/build/static_src/HelpersLists.c +899 -0
- nuitka/build/static_src/HelpersListsGenerated.c +564 -0
- nuitka/build/static_src/HelpersMappings.c +46 -0
- nuitka/build/static_src/HelpersMatching.c +192 -0
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +6477 -0
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +703 -0
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +2738 -0
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +2738 -0
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +2738 -0
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +2406 -0
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +33 -0
- nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +2422 -0
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +220 -0
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +2846 -0
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +453 -0
- nuitka/build/static_src/HelpersOperationBinaryMod.c +6549 -0
- nuitka/build/static_src/HelpersOperationBinaryMult.c +6438 -0
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +125 -0
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +2355 -0
- nuitka/build/static_src/HelpersOperationBinaryPow.c +2743 -0
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +26 -0
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +2706 -0
- nuitka/build/static_src/HelpersOperationBinarySub.c +2649 -0
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +2415 -0
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +5211 -0
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +144 -0
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +1826 -0
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +1826 -0
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +1826 -0
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +2605 -0
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +1594 -0
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +603 -0
- nuitka/build/static_src/HelpersOperationInplaceMod.c +4762 -0
- nuitka/build/static_src/HelpersOperationInplaceMult.c +4689 -0
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +2553 -0
- nuitka/build/static_src/HelpersOperationInplacePow.c +2807 -0
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +1534 -0
- nuitka/build/static_src/HelpersOperationInplaceSub.c +2894 -0
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +2612 -0
- nuitka/build/static_src/HelpersProfiling.c +104 -0
- nuitka/build/static_src/HelpersPythonPgo.c +113 -0
- nuitka/build/static_src/HelpersRaising.c +447 -0
- nuitka/build/static_src/HelpersSafeStrings.c +185 -0
- nuitka/build/static_src/HelpersSequences.c +134 -0
- nuitka/build/static_src/HelpersSlices.c +73 -0
- nuitka/build/static_src/HelpersStrings.c +998 -0
- nuitka/build/static_src/HelpersTuples.c +148 -0
- nuitka/build/static_src/HelpersTypes.c +329 -0
- nuitka/build/static_src/InspectPatcher.c +439 -0
- nuitka/build/static_src/MainProgram.c +2060 -0
- nuitka/build/static_src/MetaPathBasedLoader.c +2290 -0
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +125 -0
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +158 -0
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +785 -0
- nuitka/build/static_src/OnefileBootstrap.c +1580 -0
- nuitka/build/static_src/OnefileSplashScreen.cpp +275 -0
- nuitka/code_generation/AsyncgenCodes.py +186 -0
- nuitka/code_generation/AttributeCodes.py +357 -0
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +720 -0
- nuitka/code_generation/BranchCodes.py +67 -0
- nuitka/code_generation/BuiltinCodes.py +529 -0
- nuitka/code_generation/CallCodes.py +1186 -0
- nuitka/code_generation/ClassCodes.py +156 -0
- nuitka/code_generation/CodeGeneration.py +1078 -0
- nuitka/code_generation/CodeHelperSelection.py +81 -0
- nuitka/code_generation/CodeHelpers.py +455 -0
- nuitka/code_generation/CodeObjectCodes.py +165 -0
- nuitka/code_generation/ComparisonCodes.py +569 -0
- nuitka/code_generation/ComparisonHelperDefinitions.py +146 -0
- nuitka/code_generation/ConditionalCodes.py +236 -0
- nuitka/code_generation/ConstantCodes.py +243 -0
- nuitka/code_generation/Contexts.py +1248 -0
- nuitka/code_generation/CoroutineCodes.py +253 -0
- nuitka/code_generation/CtypesCodes.py +46 -0
- nuitka/code_generation/DictCodes.py +918 -0
- nuitka/code_generation/Emission.py +75 -0
- nuitka/code_generation/ErrorCodes.py +281 -0
- nuitka/code_generation/EvalCodes.py +444 -0
- nuitka/code_generation/ExceptionCodes.py +337 -0
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +227 -0
- nuitka/code_generation/ExpressionCodes.py +61 -0
- nuitka/code_generation/FrameCodes.py +518 -0
- nuitka/code_generation/FunctionCodes.py +858 -0
- nuitka/code_generation/GeneratorCodes.py +218 -0
- nuitka/code_generation/GlobalConstants.py +249 -0
- nuitka/code_generation/GlobalsLocalsCodes.py +211 -0
- nuitka/code_generation/IdCodes.py +53 -0
- nuitka/code_generation/ImportCodes.py +468 -0
- nuitka/code_generation/Indentation.py +45 -0
- nuitka/code_generation/IndexCodes.py +50 -0
- nuitka/code_generation/InjectCCodes.py +28 -0
- nuitka/code_generation/IntegerCodes.py +110 -0
- nuitka/code_generation/IteratorCodes.py +378 -0
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +68 -0
- nuitka/code_generation/LineNumberCodes.py +91 -0
- nuitka/code_generation/ListCodes.py +502 -0
- nuitka/code_generation/LoaderCodes.py +193 -0
- nuitka/code_generation/LocalsDictCodes.py +359 -0
- nuitka/code_generation/LoopCodes.py +88 -0
- nuitka/code_generation/MatchCodes.py +67 -0
- nuitka/code_generation/ModuleCodes.py +247 -0
- nuitka/code_generation/Namify.py +260 -0
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +398 -0
- nuitka/code_generation/PackageResourceCodes.py +986 -0
- nuitka/code_generation/PrintCodes.py +93 -0
- nuitka/code_generation/PythonAPICodes.py +215 -0
- nuitka/code_generation/RaisingCodes.py +481 -0
- nuitka/code_generation/Reports.py +115 -0
- nuitka/code_generation/ReturnCodes.py +143 -0
- nuitka/code_generation/SetCodes.py +196 -0
- nuitka/code_generation/SliceCodes.py +465 -0
- nuitka/code_generation/StringCodes.py +303 -0
- nuitka/code_generation/SubscriptCodes.py +263 -0
- nuitka/code_generation/TensorflowCodes.py +54 -0
- nuitka/code_generation/TryCodes.py +326 -0
- nuitka/code_generation/TupleCodes.py +115 -0
- nuitka/code_generation/TypeAliasCodes.py +120 -0
- nuitka/code_generation/VariableCodes.py +519 -0
- nuitka/code_generation/VariableDeclarations.py +279 -0
- nuitka/code_generation/YieldCodes.py +253 -0
- nuitka/code_generation/__init__.py +19 -0
- nuitka/code_generation/c_types/CTypeBases.py +177 -0
- nuitka/code_generation/c_types/CTypeBooleans.py +104 -0
- nuitka/code_generation/c_types/CTypeCFloats.py +57 -0
- nuitka/code_generation/c_types/CTypeCLongs.py +45 -0
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +109 -0
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +150 -0
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +200 -0
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +107 -0
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +572 -0
- nuitka/code_generation/c_types/CTypeVoids.py +92 -0
- nuitka/code_generation/c_types/__init__.py +19 -0
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +106 -0
- nuitka/code_generation/templates/CodeTemplatesConstants.py +296 -0
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +109 -0
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +84 -0
- nuitka/code_generation/templates/CodeTemplatesFrames.py +235 -0
- nuitka/code_generation/templates/CodeTemplatesFunction.py +117 -0
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +130 -0
- nuitka/code_generation/templates/CodeTemplatesIterators.py +40 -0
- nuitka/code_generation/templates/CodeTemplatesLoader.py +180 -0
- nuitka/code_generation/templates/CodeTemplatesModules.py +710 -0
- nuitka/code_generation/templates/CodeTemplatesVariables.py +388 -0
- nuitka/code_generation/templates/TemplateDebugWrapper.py +80 -0
- nuitka/code_generation/templates/__init__.py +19 -0
- nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +321 -0
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +143 -0
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +677 -0
- nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +165 -0
- nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +38 -0
- nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +41 -0
- nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +53 -0
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +364 -0
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +37 -0
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +53 -0
- nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +20 -0
- nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +148 -0
- nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +352 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +31 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +32 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +112 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +157 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +99 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +281 -0
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +420 -0
- nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +51 -0
- nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +71 -0
- nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +327 -0
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +411 -0
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +59 -0
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +229 -0
- nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +47 -0
- nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +55 -0
- nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +58 -0
- nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +62 -0
- nuitka/containers/Namedtuples.py +51 -0
- nuitka/containers/OrderedDicts.py +191 -0
- nuitka/containers/OrderedSets.py +123 -0
- nuitka/containers/OrderedSetsFallback.py +139 -0
- nuitka/containers/__init__.py +19 -0
- nuitka/distutils/Build.py +76 -0
- nuitka/distutils/DistutilCommands.py +438 -0
- nuitka/distutils/__init__.py +19 -0
- nuitka/finalizations/Finalization.py +35 -0
- nuitka/finalizations/FinalizeMarkups.py +136 -0
- nuitka/finalizations/__init__.py +19 -0
- nuitka/freezer/DependsExe.py +257 -0
- nuitka/freezer/DllDependenciesCommon.py +97 -0
- nuitka/freezer/DllDependenciesMacOS.py +444 -0
- nuitka/freezer/DllDependenciesPosix.py +242 -0
- nuitka/freezer/DllDependenciesWin32.py +315 -0
- nuitka/freezer/ImportDetection.py +359 -0
- nuitka/freezer/IncludedDataFiles.py +689 -0
- nuitka/freezer/IncludedEntryPoints.py +376 -0
- nuitka/freezer/Onefile.py +296 -0
- nuitka/freezer/Standalone.py +520 -0
- nuitka/freezer/__init__.py +19 -0
- nuitka/importing/IgnoreListing.py +449 -0
- nuitka/importing/ImportCache.py +95 -0
- nuitka/importing/ImportResolving.py +186 -0
- nuitka/importing/Importing.py +1200 -0
- nuitka/importing/PreloadedPackages.py +164 -0
- nuitka/importing/Recursion.py +611 -0
- nuitka/importing/StandardLibrary.py +429 -0
- nuitka/importing/__init__.py +19 -0
- nuitka/nodes/AsyncgenNodes.py +107 -0
- nuitka/nodes/AttributeLookupNodes.py +124 -0
- nuitka/nodes/AttributeNodes.py +386 -0
- nuitka/nodes/AttributeNodesGenerated.py +10734 -0
- nuitka/nodes/BuiltinAllNodes.py +115 -0
- nuitka/nodes/BuiltinAnyNodes.py +124 -0
- nuitka/nodes/BuiltinComplexNodes.py +83 -0
- nuitka/nodes/BuiltinDecodingNodes.py +52 -0
- nuitka/nodes/BuiltinDecoratorNodes.py +85 -0
- nuitka/nodes/BuiltinDictNodes.py +140 -0
- nuitka/nodes/BuiltinFormatNodes.py +159 -0
- nuitka/nodes/BuiltinHashNodes.py +63 -0
- nuitka/nodes/BuiltinInputNodes.py +39 -0
- nuitka/nodes/BuiltinIntegerNodes.py +170 -0
- nuitka/nodes/BuiltinIteratorNodes.py +391 -0
- nuitka/nodes/BuiltinLenNodes.py +61 -0
- nuitka/nodes/BuiltinNextNodes.py +111 -0
- nuitka/nodes/BuiltinOpenNodes.py +148 -0
- nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +7367 -0
- nuitka/nodes/BuiltinRangeNodes.py +690 -0
- nuitka/nodes/BuiltinRefNodes.py +314 -0
- nuitka/nodes/BuiltinSumNodes.py +104 -0
- nuitka/nodes/BuiltinTypeNodes.py +454 -0
- nuitka/nodes/BuiltinVarsNodes.py +44 -0
- nuitka/nodes/BytesNodes.py +829 -0
- nuitka/nodes/CallNodes.py +217 -0
- nuitka/nodes/Checkers.py +55 -0
- nuitka/nodes/ChildrenHavingMixins.py +21576 -0
- nuitka/nodes/ClassNodes.py +286 -0
- nuitka/nodes/CodeObjectSpecs.py +230 -0
- nuitka/nodes/ComparisonNodes.py +687 -0
- nuitka/nodes/ConditionalNodes.py +884 -0
- nuitka/nodes/ConstantRefNodes.py +1717 -0
- nuitka/nodes/ContainerMakingNodes.py +408 -0
- nuitka/nodes/ContainerOperationNodes.py +87 -0
- nuitka/nodes/CoroutineNodes.py +144 -0
- nuitka/nodes/CtypesNodes.py +51 -0
- nuitka/nodes/DictionaryNodes.py +1513 -0
- nuitka/nodes/ExceptionNodes.py +393 -0
- nuitka/nodes/ExecEvalNodes.py +229 -0
- nuitka/nodes/ExpressionBases.py +1301 -0
- nuitka/nodes/ExpressionBasesGenerated.py +2103 -0
- nuitka/nodes/ExpressionShapeMixins.py +886 -0
- nuitka/nodes/FrameNodes.py +413 -0
- nuitka/nodes/FunctionAttributeNodes.py +102 -0
- nuitka/nodes/FunctionNodes.py +1303 -0
- nuitka/nodes/FutureSpecs.py +224 -0
- nuitka/nodes/GeneratorNodes.py +201 -0
- nuitka/nodes/GlobalsLocalsNodes.py +209 -0
- nuitka/nodes/HardImportNodesGenerated.py +3599 -0
- nuitka/nodes/ImportHardNodes.py +185 -0
- nuitka/nodes/ImportNodes.py +1366 -0
- nuitka/nodes/IndicatorMixins.py +79 -0
- nuitka/nodes/InjectCNodes.py +51 -0
- nuitka/nodes/IterationHandles.py +407 -0
- nuitka/nodes/KeyValuePairNodes.py +378 -0
- nuitka/nodes/ListOperationNodes.py +525 -0
- nuitka/nodes/LocalsDictNodes.py +717 -0
- nuitka/nodes/LocalsScopes.py +505 -0
- nuitka/nodes/LoopNodes.py +445 -0
- nuitka/nodes/MatchNodes.py +60 -0
- nuitka/nodes/ModuleAttributeNodes.py +180 -0
- nuitka/nodes/ModuleNodes.py +1137 -0
- nuitka/nodes/NetworkxNodes.py +45 -0
- nuitka/nodes/NodeBases.py +890 -0
- nuitka/nodes/NodeMakingHelpers.py +481 -0
- nuitka/nodes/NodeMetaClasses.py +172 -0
- nuitka/nodes/OperatorNodes.py +944 -0
- nuitka/nodes/OperatorNodesUnary.py +403 -0
- nuitka/nodes/OsSysNodes.py +215 -0
- nuitka/nodes/OutlineNodes.py +372 -0
- nuitka/nodes/PackageMetadataNodes.py +982 -0
- nuitka/nodes/PackageResourceNodes.py +424 -0
- nuitka/nodes/PrintNodes.py +105 -0
- nuitka/nodes/ReturnNodes.py +255 -0
- nuitka/nodes/SideEffectNodes.py +139 -0
- nuitka/nodes/SliceNodes.py +386 -0
- nuitka/nodes/StatementBasesGenerated.py +3419 -0
- nuitka/nodes/StatementNodes.py +316 -0
- nuitka/nodes/StrNodes.py +919 -0
- nuitka/nodes/StringConcatenationNodes.py +103 -0
- nuitka/nodes/SubscriptNodes.py +245 -0
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +519 -0
- nuitka/nodes/TypeMatchNodes.py +65 -0
- nuitka/nodes/TypeNodes.py +390 -0
- nuitka/nodes/VariableAssignNodes.py +1177 -0
- nuitka/nodes/VariableDelNodes.py +320 -0
- nuitka/nodes/VariableNameNodes.py +153 -0
- nuitka/nodes/VariableRefNodes.py +895 -0
- nuitka/nodes/VariableReleaseNodes.py +153 -0
- nuitka/nodes/YieldNodes.py +121 -0
- nuitka/nodes/__init__.py +19 -0
- nuitka/nodes/shapes/BuiltinTypeShapes.py +4290 -0
- nuitka/nodes/shapes/ControlFlowDescriptions.py +199 -0
- nuitka/nodes/shapes/IteratorShapes.py +71 -0
- nuitka/nodes/shapes/ShapeMixins.py +255 -0
- nuitka/nodes/shapes/StandardShapes.py +1384 -0
- nuitka/nodes/shapes/__init__.py +19 -0
- nuitka/optimizations/BytecodeDemotion.py +105 -0
- nuitka/optimizations/FunctionInlining.py +110 -0
- nuitka/optimizations/Graphs.py +70 -0
- nuitka/optimizations/Optimization.py +363 -0
- nuitka/optimizations/OptimizeBuiltinCalls.py +1582 -0
- nuitka/optimizations/Tags.py +76 -0
- nuitka/optimizations/TraceCollections.py +1257 -0
- nuitka/optimizations/ValueTraces.py +980 -0
- nuitka/optimizations/__init__.py +19 -0
- nuitka/pgo/PGO.py +160 -0
- nuitka/pgo/__init__.py +19 -0
- nuitka/plugins/PluginBase.py +1924 -0
- nuitka/plugins/Plugins.py +2007 -0
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +19 -0
- nuitka/plugins/standard/AntiBloatPlugin.py +1024 -0
- nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +95 -0
- nuitka/plugins/standard/DataFilesPlugin.py +311 -0
- nuitka/plugins/standard/DelvewheelPlugin.py +150 -0
- nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
- nuitka/plugins/standard/DillPlugin/cloudpickle-postLoad.py +67 -0
- nuitka/plugins/standard/DillPlugin/dill-postLoad.py +223 -0
- nuitka/plugins/standard/DillPlugin.py +137 -0
- nuitka/plugins/standard/DllFilesPlugin.py +527 -0
- nuitka/plugins/standard/EnumPlugin.py +64 -0
- nuitka/plugins/standard/EventletPlugin.py +57 -0
- nuitka/plugins/standard/GeventPlugin.py +64 -0
- nuitka/plugins/standard/GiPlugin.py +118 -0
- nuitka/plugins/standard/GlfwPlugin.py +138 -0
- nuitka/plugins/standard/ImplicitImports.py +845 -0
- nuitka/plugins/standard/KivyPlugin.py +141 -0
- nuitka/plugins/standard/MatplotlibPlugin.py +256 -0
- nuitka/plugins/standard/MultiprocessingPlugin.py +199 -0
- nuitka/plugins/standard/NumpyPlugin.py +35 -0
- nuitka/plugins/standard/OptionsNannyPlugin.py +158 -0
- nuitka/plugins/standard/PbrPlugin.py +62 -0
- nuitka/plugins/standard/PkgResourcesPlugin.py +162 -0
- nuitka/plugins/standard/PlaywrightPlugin.py +179 -0
- nuitka/plugins/standard/PmwPlugin.py +248 -0
- nuitka/plugins/standard/PySidePyQtPlugin.py +1666 -0
- nuitka/plugins/standard/PywebViewPlugin.py +81 -0
- nuitka/plugins/standard/SpacyPlugin.py +137 -0
- nuitka/plugins/standard/TensorflowPlugin.py +35 -0
- nuitka/plugins/standard/TkinterPlugin.py +416 -0
- nuitka/plugins/standard/TorchPlugin.py +35 -0
- nuitka/plugins/standard/TransformersPlugin.py +121 -0
- nuitka/plugins/standard/TrioPlugin.py +33 -0
- nuitka/plugins/standard/UpxPlugin.py +174 -0
- nuitka/plugins/standard/__init__.py +19 -0
- nuitka/plugins/standard/standard.nuitka-package.config.yml +9313 -0
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +78 -0
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +468 -0
- nuitka/reports/CompilationReportReader.py +83 -0
- nuitka/reports/LicenseReport.rst.j2 +41 -0
- nuitka/reports/Reports.py +961 -0
- nuitka/reports/__init__.py +19 -0
- nuitka/specs/BuiltinBytesOperationSpecs.py +180 -0
- nuitka/specs/BuiltinDictOperationSpecs.py +82 -0
- nuitka/specs/BuiltinListOperationSpecs.py +80 -0
- nuitka/specs/BuiltinParameterSpecs.py +831 -0
- nuitka/specs/BuiltinStrOperationSpecs.py +181 -0
- nuitka/specs/BuiltinTypeOperationSpecs.py +34 -0
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +123 -0
- nuitka/specs/HardImportSpecs.py +236 -0
- nuitka/specs/ParameterSpecs.py +630 -0
- nuitka/specs/__init__.py +19 -0
- nuitka/tools/Basics.py +55 -0
- nuitka/tools/__init__.py +19 -0
- nuitka/tools/commercial/__init__.py +21 -0
- nuitka/tools/data_composer/DataComposer.py +593 -0
- nuitka/tools/data_composer/__init__.py +19 -0
- nuitka/tools/data_composer/__main__.py +41 -0
- nuitka/tools/environments/CreateEnvironment.py +69 -0
- nuitka/tools/environments/Virtualenv.py +158 -0
- nuitka/tools/environments/__init__.py +19 -0
- nuitka/tools/general/__init__.py +19 -0
- nuitka/tools/general/dll_report/__init__.py +19 -0
- nuitka/tools/general/dll_report/__main__.py +83 -0
- nuitka/tools/general/find_module/FindModuleCode.py +127 -0
- nuitka/tools/general/find_module/__init__.py +19 -0
- nuitka/tools/general/generate_header/GenerateHeader.py +73 -0
- nuitka/tools/general/generate_header/__init__.py +19 -0
- nuitka/tools/onefile_compressor/OnefileCompressor.py +390 -0
- nuitka/tools/onefile_compressor/__init__.py +19 -0
- nuitka/tools/onefile_compressor/__main__.py +41 -0
- nuitka/tools/podman/Podman.py +55 -0
- nuitka/tools/podman/__init__.py +19 -0
- nuitka/tools/podman/__main__.py +425 -0
- nuitka/tools/profiler/__init__.py +19 -0
- nuitka/tools/profiler/__main__.py +93 -0
- nuitka/tools/scanning/DisplayDistributions.py +39 -0
- nuitka/tools/scanning/DisplayPackageDLLs.py +151 -0
- nuitka/tools/scanning/DisplayPackageData.py +73 -0
- nuitka/tools/scanning/__init__.py +19 -0
- nuitka/tools/specialize/CTypeDescriptions.py +1928 -0
- nuitka/tools/specialize/Common.py +380 -0
- nuitka/tools/specialize/SpecializeC.py +1483 -0
- nuitka/tools/specialize/SpecializePython.py +1151 -0
- nuitka/tools/specialize/__init__.py +19 -0
- nuitka/tools/testing/Common.py +2007 -0
- nuitka/tools/testing/Constructs.py +53 -0
- nuitka/tools/testing/DocTests.py +156 -0
- nuitka/tools/testing/OutputComparison.py +313 -0
- nuitka/tools/testing/Pythons.py +34 -0
- nuitka/tools/testing/RuntimeTracing.py +260 -0
- nuitka/tools/testing/SearchModes.py +208 -0
- nuitka/tools/testing/Valgrind.py +103 -0
- nuitka/tools/testing/__init__.py +19 -0
- nuitka/tools/testing/check_reference_counts/__init__.py +19 -0
- nuitka/tools/testing/check_reference_counts/__main__.py +107 -0
- nuitka/tools/testing/compare_with_cpython/__init__.py +19 -0
- nuitka/tools/testing/compare_with_cpython/__main__.py +942 -0
- nuitka/tools/testing/find_sxs_modules/__init__.py +19 -0
- nuitka/tools/testing/find_sxs_modules/__main__.py +73 -0
- nuitka/tools/testing/measure_construct_performance/__init__.py +19 -0
- nuitka/tools/testing/measure_construct_performance/__main__.py +288 -0
- nuitka/tools/testing/run_nuitka_tests/__init__.py +19 -0
- nuitka/tools/testing/run_nuitka_tests/__main__.py +1091 -0
- nuitka/tools/watch/AutoStage.py +145 -0
- nuitka/tools/watch/Common.py +55 -0
- nuitka/tools/watch/Conda.py +125 -0
- nuitka/tools/watch/GitHub.py +113 -0
- nuitka/tools/watch/Pacman.py +73 -0
- nuitka/tools/watch/Pipenv.py +145 -0
- nuitka/tools/watch/__init__.py +19 -0
- nuitka/tools/watch/__main__.py +615 -0
- nuitka/tree/Building.py +1459 -0
- nuitka/tree/ComplexCallHelperFunctions.py +2150 -0
- nuitka/tree/Extractions.py +48 -0
- nuitka/tree/FutureSpecState.py +71 -0
- nuitka/tree/InternalModule.py +96 -0
- nuitka/tree/Operations.py +45 -0
- nuitka/tree/ReformulationAssertStatements.py +97 -0
- nuitka/tree/ReformulationAssignmentStatements.py +1260 -0
- nuitka/tree/ReformulationBooleanExpressions.py +97 -0
- nuitka/tree/ReformulationCallExpressions.py +314 -0
- nuitka/tree/ReformulationClasses.py +407 -0
- nuitka/tree/ReformulationClasses3.py +1149 -0
- nuitka/tree/ReformulationComparisonExpressions.py +174 -0
- nuitka/tree/ReformulationContractionExpressions.py +676 -0
- nuitka/tree/ReformulationDictionaryCreation.py +304 -0
- nuitka/tree/ReformulationExecStatements.py +386 -0
- nuitka/tree/ReformulationForLoopStatements.py +215 -0
- nuitka/tree/ReformulationFunctionStatements.py +931 -0
- nuitka/tree/ReformulationImportStatements.py +333 -0
- nuitka/tree/ReformulationLambdaExpressions.py +185 -0
- nuitka/tree/ReformulationMatchStatements.py +797 -0
- nuitka/tree/ReformulationMultidist.py +80 -0
- nuitka/tree/ReformulationNamespacePackages.py +239 -0
- nuitka/tree/ReformulationPrintStatements.py +127 -0
- nuitka/tree/ReformulationSequenceCreation.py +438 -0
- nuitka/tree/ReformulationSubscriptExpressions.py +123 -0
- nuitka/tree/ReformulationTryExceptStatements.py +418 -0
- nuitka/tree/ReformulationTryFinallyStatements.py +239 -0
- nuitka/tree/ReformulationWhileLoopStatements.py +160 -0
- nuitka/tree/ReformulationWithStatements.py +382 -0
- nuitka/tree/ReformulationYieldExpressions.py +133 -0
- nuitka/tree/SourceHandling.py +476 -0
- nuitka/tree/SyntaxErrors.py +143 -0
- nuitka/tree/TreeHelpers.py +720 -0
- nuitka/tree/VariableClosure.py +483 -0
- nuitka/tree/__init__.py +19 -0
- nuitka/utils/AppDirs.py +104 -0
- nuitka/utils/CStrings.py +208 -0
- nuitka/utils/CommandLineOptions.py +207 -0
- nuitka/utils/Distributions.py +728 -0
- nuitka/utils/Download.py +217 -0
- nuitka/utils/Execution.py +517 -0
- nuitka/utils/FileOperations.py +1587 -0
- nuitka/utils/Hashing.py +137 -0
- nuitka/utils/Images.py +79 -0
- nuitka/utils/Importing.py +335 -0
- nuitka/utils/InlineCopies.py +52 -0
- nuitka/utils/InstalledPythons.py +254 -0
- nuitka/utils/InstanceCounters.py +86 -0
- nuitka/utils/Jinja2.py +158 -0
- nuitka/utils/Json.py +40 -0
- nuitka/utils/MacOSApp.py +134 -0
- nuitka/utils/MemoryUsage.py +165 -0
- nuitka/utils/ModuleNames.py +317 -0
- nuitka/utils/PackageResources.py +44 -0
- nuitka/utils/ReExecute.py +152 -0
- nuitka/utils/Rest.py +60 -0
- nuitka/utils/SharedLibraries.py +1014 -0
- nuitka/utils/Shebang.py +113 -0
- nuitka/utils/Signing.py +144 -0
- nuitka/utils/SlotMetaClasses.py +57 -0
- nuitka/utils/StaticLibraries.py +260 -0
- nuitka/utils/ThreadedExecutor.py +87 -0
- nuitka/utils/Timing.py +102 -0
- nuitka/utils/Utils.py +483 -0
- nuitka/utils/WindowsFileUsage.py +337 -0
- nuitka/utils/WindowsResources.py +652 -0
- nuitka/utils/Yaml.py +247 -0
- nuitka/utils/__init__.py +19 -0
- nuitka_winsvc-2.7.7.data/scripts/nuitka-run.cmd +24 -0
- nuitka_winsvc-2.7.7.data/scripts/nuitka.cmd +30 -0
- nuitka_winsvc-2.7.7.dist-info/METADATA +115 -0
- nuitka_winsvc-2.7.7.dist-info/RECORD +995 -0
- nuitka_winsvc-2.7.7.dist-info/WHEEL +5 -0
- nuitka_winsvc-2.7.7.dist-info/entry_points.txt +7 -0
- nuitka_winsvc-2.7.7.dist-info/licenses/LICENSE.txt +202 -0
- nuitka_winsvc-2.7.7.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,939 @@
|
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
""" Helper functions for the scons file.
|
|
5
|
+
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import print_function
|
|
9
|
+
|
|
10
|
+
import os
|
|
11
|
+
import pickle
|
|
12
|
+
import shutil
|
|
13
|
+
import signal
|
|
14
|
+
import sys
|
|
15
|
+
|
|
16
|
+
from nuitka.__past__ import basestring, unicode
|
|
17
|
+
from nuitka.containers.OrderedDicts import OrderedDict
|
|
18
|
+
from nuitka.Progress import enableThreading
|
|
19
|
+
from nuitka.PythonFlavors import isTermuxPython
|
|
20
|
+
from nuitka.Tracing import scons_details_logger, scons_logger
|
|
21
|
+
from nuitka.utils.Execution import executeProcess
|
|
22
|
+
from nuitka.utils.FileOperations import (
|
|
23
|
+
changeFilenameExtension,
|
|
24
|
+
deleteFile,
|
|
25
|
+
getFileContentByLine,
|
|
26
|
+
getFilenameExtension,
|
|
27
|
+
getNormalizedPath,
|
|
28
|
+
getWindowsShortPathName,
|
|
29
|
+
hasFilenameExtension,
|
|
30
|
+
isFilesystemEncodable,
|
|
31
|
+
openPickleFile,
|
|
32
|
+
openTextFile,
|
|
33
|
+
withFileLock,
|
|
34
|
+
)
|
|
35
|
+
from nuitka.utils.Utils import isLinux, isMacOS, isPosixWindows, isWin32Windows
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def initScons():
|
|
39
|
+
# Avoid localized outputs.
|
|
40
|
+
os.environ["LC_ALL"] = "C"
|
|
41
|
+
|
|
42
|
+
def no_sync(self):
|
|
43
|
+
# That's a noop, pylint: disable=unused-argument
|
|
44
|
+
pass
|
|
45
|
+
|
|
46
|
+
# Avoid scons writing the scons database at all, spell-checker: ignore dblite
|
|
47
|
+
import SCons.dblite # pylint: disable=I0021,import-error
|
|
48
|
+
|
|
49
|
+
SCons.dblite.dblite.sync = no_sync
|
|
50
|
+
|
|
51
|
+
# We use threads during build, so keep locks if necessary for progress bar
|
|
52
|
+
# updates.
|
|
53
|
+
enableThreading()
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def setupScons(env, source_dir):
|
|
57
|
+
env["BUILD_DIR"] = source_dir
|
|
58
|
+
|
|
59
|
+
# Store the file signatures database with the rest of the source files and
|
|
60
|
+
# make it version dependent on the Python version of running Scons, as its
|
|
61
|
+
# pickle is being used, spell-checker: ignore sconsign
|
|
62
|
+
sconsign_filename = os.path.abspath(
|
|
63
|
+
os.path.join(
|
|
64
|
+
source_dir, ".sconsign-%d%s" % (sys.version_info[0], sys.version_info[1])
|
|
65
|
+
)
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
env.SConsignFile(sconsign_filename)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
scons_arguments = {}
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def setArguments(arguments):
|
|
75
|
+
"""Decode command line arguments."""
|
|
76
|
+
|
|
77
|
+
arg_encoding = arguments.get("argument_encoding")
|
|
78
|
+
|
|
79
|
+
for key, value in arguments.items():
|
|
80
|
+
if arg_encoding is not None:
|
|
81
|
+
value = decodeData(value)
|
|
82
|
+
scons_arguments[key] = value
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def getArgumentRequired(name):
|
|
86
|
+
"""Helper for string options without default value."""
|
|
87
|
+
return scons_arguments[name]
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def getArgumentDefaulted(name, default):
|
|
91
|
+
"""Helper for string options with default value."""
|
|
92
|
+
return scons_arguments.get(name, default)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def getArgumentInt(option_name, default=None):
|
|
96
|
+
"""Small helper for boolean mode flags."""
|
|
97
|
+
if default is None:
|
|
98
|
+
value = scons_arguments[option_name]
|
|
99
|
+
else:
|
|
100
|
+
value = int(scons_arguments.get(option_name, default))
|
|
101
|
+
|
|
102
|
+
return value
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def getArgumentBool(option_name, default=None):
|
|
106
|
+
"""Small helper for boolean mode flags."""
|
|
107
|
+
if default is None:
|
|
108
|
+
value = scons_arguments[option_name]
|
|
109
|
+
else:
|
|
110
|
+
value = scons_arguments.get(option_name, "True" if default else "False")
|
|
111
|
+
|
|
112
|
+
return value.lower() in ("yes", "true", "1")
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
def getArgumentList(option_name, default=None):
|
|
116
|
+
"""Small helper for list mode options, default should be command separated str."""
|
|
117
|
+
if default is None:
|
|
118
|
+
value = scons_arguments[option_name]
|
|
119
|
+
else:
|
|
120
|
+
value = scons_arguments.get(option_name, default)
|
|
121
|
+
|
|
122
|
+
if value:
|
|
123
|
+
return value.split(",")
|
|
124
|
+
else:
|
|
125
|
+
return []
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
def _enableFlagSettings(env, name, experimental_flags):
|
|
129
|
+
for flag_name in experimental_flags:
|
|
130
|
+
if not flag_name:
|
|
131
|
+
continue
|
|
132
|
+
|
|
133
|
+
flag_name = "%s-%s" % (name, flag_name)
|
|
134
|
+
|
|
135
|
+
if "=" in flag_name:
|
|
136
|
+
flag_name, value = flag_name.split("=", 1)
|
|
137
|
+
else:
|
|
138
|
+
value = None
|
|
139
|
+
|
|
140
|
+
# Allowing for nice names on command line, but using identifiers for C.
|
|
141
|
+
flag_name = flag_name.upper().replace("-", "_").replace(".", "_")
|
|
142
|
+
|
|
143
|
+
# Experimental without a value is done as mere define, otherwise
|
|
144
|
+
# the value is passed. spell-checker: ignore cppdefines
|
|
145
|
+
if value:
|
|
146
|
+
env.Append(CPPDEFINES=[("_NUITKA_%s" % flag_name, value)])
|
|
147
|
+
else:
|
|
148
|
+
env.Append(CPPDEFINES=["_NUITKA_%s" % flag_name])
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
def prepareEnvironment(mingw_mode):
|
|
152
|
+
# Add environment specified compilers to the PATH variable.
|
|
153
|
+
if "CC" in os.environ:
|
|
154
|
+
scons_details_logger.info("CC='%s'" % os.environ["CC"])
|
|
155
|
+
|
|
156
|
+
os.environ["CC"] = os.path.normpath(os.path.expanduser(os.environ["CC"]))
|
|
157
|
+
|
|
158
|
+
if os.path.isdir(os.environ["CC"]):
|
|
159
|
+
scons_logger.sysexit(
|
|
160
|
+
"Error, the 'CC' variable must point to file, not directory."
|
|
161
|
+
)
|
|
162
|
+
|
|
163
|
+
if os.path.sep in os.environ["CC"]:
|
|
164
|
+
cc_dirname = os.path.dirname(os.environ["CC"])
|
|
165
|
+
if os.path.isdir(cc_dirname):
|
|
166
|
+
addToPATH(None, cc_dirname, prefix=True)
|
|
167
|
+
|
|
168
|
+
if os.name == "nt" and isGccName(os.path.basename(os.environ["CC"])):
|
|
169
|
+
scons_details_logger.info(
|
|
170
|
+
"Environment CC seems to be a gcc, enabling mingw_mode."
|
|
171
|
+
)
|
|
172
|
+
mingw_mode = True
|
|
173
|
+
else:
|
|
174
|
+
anaconda_python = getArgumentBool("anaconda_python", False)
|
|
175
|
+
|
|
176
|
+
if isLinux() and anaconda_python:
|
|
177
|
+
python_prefix = getArgumentRequired("python_prefix")
|
|
178
|
+
addToPATH(None, os.path.join(python_prefix, "bin"), prefix=True)
|
|
179
|
+
|
|
180
|
+
return mingw_mode
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
def createEnvironment(
|
|
184
|
+
mingw_mode, msvc_version, target_arch, experimental, no_deployment, debug_modes
|
|
185
|
+
):
|
|
186
|
+
# Many settings are directly handled here, getting us a lot of code in here.
|
|
187
|
+
# pylint: disable=too-many-branches,too-many-statements
|
|
188
|
+
|
|
189
|
+
from SCons.Script import Environment # pylint: disable=I0021,import-error
|
|
190
|
+
|
|
191
|
+
args = {}
|
|
192
|
+
|
|
193
|
+
if msvc_version == "list":
|
|
194
|
+
import SCons.Tool.MSCommon.vc # pylint: disable=I0021,import-error
|
|
195
|
+
|
|
196
|
+
scons_logger.sysexit(
|
|
197
|
+
"Installed MSVC versions are %s."
|
|
198
|
+
% ",".join(repr(v) for v in SCons.Tool.MSCommon.vc.get_installed_vcs()),
|
|
199
|
+
)
|
|
200
|
+
|
|
201
|
+
# If we are on Windows, and MinGW is not enforced, lets see if we can
|
|
202
|
+
# find "cl.exe", and if we do, disable automatic scan.
|
|
203
|
+
if (
|
|
204
|
+
os.name == "nt"
|
|
205
|
+
and not mingw_mode
|
|
206
|
+
and msvc_version is None
|
|
207
|
+
and msvc_version != "latest"
|
|
208
|
+
and (getExecutablePath("cl", env=None) is not None)
|
|
209
|
+
):
|
|
210
|
+
args["MSVC_USE_SCRIPT"] = False
|
|
211
|
+
|
|
212
|
+
if mingw_mode or isPosixWindows():
|
|
213
|
+
# Force usage of MinGW64, not using MSVC tools.
|
|
214
|
+
tools = ["mingw"]
|
|
215
|
+
|
|
216
|
+
# This code would be running anyway, make it do not thing by monkey patching.
|
|
217
|
+
import SCons.Tool.MSCommon.vc # pylint: disable=I0021,import-error
|
|
218
|
+
import SCons.Tool.msvc # pylint: disable=I0021,import-error
|
|
219
|
+
|
|
220
|
+
SCons.Tool.MSCommon.vc.msvc_setup_env = lambda *args: None
|
|
221
|
+
SCons.Tool.msvc.msvc_exists = SCons.Tool.MSCommon.vc.msvc_exists = (
|
|
222
|
+
lambda *args: False
|
|
223
|
+
)
|
|
224
|
+
else:
|
|
225
|
+
# Everything else should use default, that is MSVC tools, but not MinGW64.
|
|
226
|
+
tools = ["default"]
|
|
227
|
+
|
|
228
|
+
env = Environment(
|
|
229
|
+
# We want the outside environment to be passed through.
|
|
230
|
+
ENV=os.environ,
|
|
231
|
+
# Extra tools configuration for scons.
|
|
232
|
+
tools=tools,
|
|
233
|
+
# The shared libraries should not be named "lib...", because CPython
|
|
234
|
+
# requires the filename "module_name.so/pyd" to load it, with no
|
|
235
|
+
# prefix at all, spell-checker: ignore SHLIBPREFIX
|
|
236
|
+
SHLIBPREFIX="",
|
|
237
|
+
# Under windows, specify the target architecture is needed for Scons
|
|
238
|
+
# to pick up MSVC.
|
|
239
|
+
TARGET_ARCH=target_arch,
|
|
240
|
+
# The MSVC version might be fixed by the user.
|
|
241
|
+
MSVC_VERSION=msvc_version if msvc_version != "latest" else None,
|
|
242
|
+
**args
|
|
243
|
+
)
|
|
244
|
+
|
|
245
|
+
# Various flavors could influence builds.
|
|
246
|
+
env.nuitka_python = getArgumentBool("nuitka_python", False)
|
|
247
|
+
env.debian_python = getArgumentBool("debian_python", False)
|
|
248
|
+
env.fedora_python = getArgumentBool("fedora_python", False)
|
|
249
|
+
env.arch_python = getArgumentBool("arch_python", False)
|
|
250
|
+
env.msys2_mingw_python = getArgumentBool("msys2_mingw_python", False)
|
|
251
|
+
env.anaconda_python = getArgumentBool("anaconda_python", False)
|
|
252
|
+
env.pyenv_python = getArgumentBool("pyenv_python", False)
|
|
253
|
+
env.apple_python = getArgumentBool("apple_python", False)
|
|
254
|
+
env.self_compiled_python_uninstalled = getArgumentBool(
|
|
255
|
+
"self_compiled_python_uninstalled", False
|
|
256
|
+
)
|
|
257
|
+
|
|
258
|
+
# No need to pass it from the outside, this cannot use other
|
|
259
|
+
# Pythons for scons.
|
|
260
|
+
env.android_termux_python = isTermuxPython()
|
|
261
|
+
|
|
262
|
+
# Non-elf binary, important for linker settings.
|
|
263
|
+
env.noelf_mode = getArgumentBool("noelf_mode", False)
|
|
264
|
+
|
|
265
|
+
# Python specific modes have to influence some decisions.
|
|
266
|
+
env.static_libpython = getArgumentDefaulted("static_libpython", "")
|
|
267
|
+
if env.static_libpython:
|
|
268
|
+
assert os.path.exists(env.static_libpython), env.static_libpython
|
|
269
|
+
|
|
270
|
+
# Python version we are working on.
|
|
271
|
+
python_version_str = getArgumentDefaulted("python_version", None)
|
|
272
|
+
if python_version_str is not None:
|
|
273
|
+
env.python_version = tuple(int(d) for d in python_version_str.split("."))
|
|
274
|
+
else:
|
|
275
|
+
env.python_version = None
|
|
276
|
+
|
|
277
|
+
# Modules count, determines if this is a large compilation.
|
|
278
|
+
env.compiled_module_count = getArgumentInt("compiled_module_count", 0)
|
|
279
|
+
|
|
280
|
+
# Target arch for some decisions
|
|
281
|
+
env.target_arch = target_arch
|
|
282
|
+
|
|
283
|
+
_enableFlagSettings(env, "no_deployment", no_deployment)
|
|
284
|
+
env.no_deployment_flags = no_deployment
|
|
285
|
+
|
|
286
|
+
_enableFlagSettings(env, "experimental", experimental)
|
|
287
|
+
env.experimental_flags = experimental
|
|
288
|
+
|
|
289
|
+
_enableFlagSettings(env, "debug", debug_modes)
|
|
290
|
+
env.debug_modes_flags = debug_modes
|
|
291
|
+
|
|
292
|
+
# Standalone mode
|
|
293
|
+
env.standalone_mode = getArgumentBool("standalone_mode", False)
|
|
294
|
+
if env.standalone_mode:
|
|
295
|
+
env.Append(CPPDEFINES=["_NUITKA_STANDALONE_MODE"])
|
|
296
|
+
|
|
297
|
+
# Onefile mode: Create suitable for use in a bootstrap with either dll or
|
|
298
|
+
# exe mode.
|
|
299
|
+
env.onefile_mode = getArgumentBool("onefile_mode", False)
|
|
300
|
+
if env.onefile_mode:
|
|
301
|
+
env.Append(CPPDEFINES=["_NUITKA_ONEFILE_MODE"])
|
|
302
|
+
|
|
303
|
+
# Onefile temporary mode: The files are cleaned up after program exit.
|
|
304
|
+
env.onefile_temp_mode = getArgumentBool("onefile_temp_mode", False)
|
|
305
|
+
if env.onefile_temp_mode:
|
|
306
|
+
env.Append(CPPDEFINES=["_NUITKA_ONEFILE_TEMP_BOOL"])
|
|
307
|
+
|
|
308
|
+
# Module (or package) mode: Create a Python extension module
|
|
309
|
+
env.module_mode = getArgumentBool("module_mode", False)
|
|
310
|
+
if env.module_mode:
|
|
311
|
+
env.Append(CPPDEFINES=["_NUITKA_MODULE_MODE"])
|
|
312
|
+
|
|
313
|
+
# DLL mode: Create a DLL using Python
|
|
314
|
+
env.dll_mode = getArgumentBool("dll_mode", False)
|
|
315
|
+
if env.dll_mode:
|
|
316
|
+
env.Append(CPPDEFINES=["_NUITKA_DLL_MODE"])
|
|
317
|
+
|
|
318
|
+
# EXE mode: Create an EXE (using Python for this config)
|
|
319
|
+
env.exe_mode = getArgumentBool("exe_mode", False)
|
|
320
|
+
if env.exe_mode:
|
|
321
|
+
env.Append(CPPDEFINES=["_NUITKA_EXE_MODE"])
|
|
322
|
+
|
|
323
|
+
# MacOS bundle: Create an .app on macOS
|
|
324
|
+
env.macos_bundle_mode = getArgumentBool("macos_bundle_mode", False)
|
|
325
|
+
if env.macos_bundle_mode:
|
|
326
|
+
env.Append(CPPDEFINES=["_NUITKA_MACOS_BUNDLE_MODE"])
|
|
327
|
+
env.Append(LINKFLAGS=["-framework", "CoreFoundation"])
|
|
328
|
+
|
|
329
|
+
# Announce combination of DLL mode and onefile mode.
|
|
330
|
+
env.onefile_dll_mode = env.onefile_mode and env.dll_mode
|
|
331
|
+
if env.onefile_dll_mode:
|
|
332
|
+
env.Append(CPPDEFINES=["_NUITKA_ONEFILE_DLL_MODE"])
|
|
333
|
+
|
|
334
|
+
return env
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
def decodeData(data):
|
|
338
|
+
"""Our own decode tries to workaround MSVC misbehavior."""
|
|
339
|
+
try:
|
|
340
|
+
return data.decode(sys.stdout.encoding)
|
|
341
|
+
except UnicodeDecodeError:
|
|
342
|
+
import locale
|
|
343
|
+
|
|
344
|
+
try:
|
|
345
|
+
return data.decode(locale.getpreferredencoding())
|
|
346
|
+
except UnicodeDecodeError:
|
|
347
|
+
return data.decode("utf8", "backslashreplace")
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
def getExecutablePath(filename, env):
|
|
351
|
+
"""Find an execute in either normal PATH, or Scons detected PATH."""
|
|
352
|
+
|
|
353
|
+
if os.path.exists(filename):
|
|
354
|
+
return filename
|
|
355
|
+
|
|
356
|
+
# Variable substitution from environment is needed, because this can contain
|
|
357
|
+
# "$CC" which should be looked up too.
|
|
358
|
+
while filename.startswith("$"):
|
|
359
|
+
filename = env[filename[1:]]
|
|
360
|
+
|
|
361
|
+
# Append ".exe" suffix on Windows if not already present.
|
|
362
|
+
if os.name == "nt" and not filename.lower().endswith(".exe"):
|
|
363
|
+
filename += ".exe"
|
|
364
|
+
|
|
365
|
+
# Either look at the initial "PATH" as given from the outside or look at the
|
|
366
|
+
# current environment.
|
|
367
|
+
if env is None:
|
|
368
|
+
search_path = os.environ["PATH"]
|
|
369
|
+
else:
|
|
370
|
+
search_path = env._dict["ENV"]["PATH"] # pylint: disable=protected-access
|
|
371
|
+
|
|
372
|
+
# Now check in each path element, much like the shell will.
|
|
373
|
+
path_elements = search_path.split(os.pathsep)
|
|
374
|
+
|
|
375
|
+
for path_element in path_elements:
|
|
376
|
+
path_element = path_element.strip('"')
|
|
377
|
+
|
|
378
|
+
full = os.path.normpath(os.path.join(path_element, filename))
|
|
379
|
+
|
|
380
|
+
if os.path.isfile(full):
|
|
381
|
+
return full
|
|
382
|
+
|
|
383
|
+
return None
|
|
384
|
+
|
|
385
|
+
|
|
386
|
+
def changeKeyboardInterruptToErrorExit():
|
|
387
|
+
def signalHandler(
|
|
388
|
+
signal, frame
|
|
389
|
+
): # pylint: disable=redefined-outer-name,unused-argument
|
|
390
|
+
sys.exit(2)
|
|
391
|
+
|
|
392
|
+
signal.signal(signal.SIGINT, signalHandler)
|
|
393
|
+
|
|
394
|
+
|
|
395
|
+
def setEnvironmentVariable(env, key, value):
|
|
396
|
+
if value is None:
|
|
397
|
+
del os.environ[key]
|
|
398
|
+
elif key in os.environ:
|
|
399
|
+
os.environ[key] = value
|
|
400
|
+
|
|
401
|
+
if env is not None:
|
|
402
|
+
# pylint: disable=protected-access
|
|
403
|
+
if value is None:
|
|
404
|
+
del env._dict["ENV"][key]
|
|
405
|
+
else:
|
|
406
|
+
env._dict["ENV"][key] = value
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
def addToPATH(env, dirname, prefix):
|
|
410
|
+
# Otherwise subprocess will complain in Python2
|
|
411
|
+
if str is bytes and type(dirname) is unicode:
|
|
412
|
+
dirname = dirname.encode("utf8")
|
|
413
|
+
|
|
414
|
+
path_value = os.environ["PATH"].split(os.pathsep)
|
|
415
|
+
|
|
416
|
+
if prefix:
|
|
417
|
+
path_value.insert(0, dirname)
|
|
418
|
+
else:
|
|
419
|
+
path_value.append(dirname)
|
|
420
|
+
|
|
421
|
+
setEnvironmentVariable(env, "PATH", os.pathsep.join(path_value))
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
def writeSconsReport(env, target):
|
|
425
|
+
with openTextFile(
|
|
426
|
+
_getSconsReportFilename(env.source_dir), "w", encoding="utf8"
|
|
427
|
+
) as report_file:
|
|
428
|
+
# We are friends to get at this debug info, pylint: disable=protected-access
|
|
429
|
+
for key, value in sorted(env._dict.items()):
|
|
430
|
+
if type(value) is list and all(isinstance(v, basestring) for v in value):
|
|
431
|
+
value = repr(value)
|
|
432
|
+
|
|
433
|
+
if not isinstance(value, basestring):
|
|
434
|
+
continue
|
|
435
|
+
|
|
436
|
+
if key.startswith(("_", "CONFIGURE")):
|
|
437
|
+
continue
|
|
438
|
+
|
|
439
|
+
# Ignore problematic and useless values
|
|
440
|
+
# spell-checker: ignore MSVSSCONS,IDLSUFFIXES,DSUFFIXES
|
|
441
|
+
if key in ("MSVSSCONS", "BUILD_DIR", "IDLSUFFIXES", "DSUFFIXES"):
|
|
442
|
+
continue
|
|
443
|
+
|
|
444
|
+
# TODO: For these kinds of prints, maybe have our own method of doing them
|
|
445
|
+
# rather than print, or maybe just json or something similar.
|
|
446
|
+
print(key + "=" + value, file=report_file)
|
|
447
|
+
|
|
448
|
+
print("gcc_mode=%s" % env.gcc_mode, file=report_file)
|
|
449
|
+
print("clang_mode=%s" % env.clang_mode, file=report_file)
|
|
450
|
+
print("msvc_mode=%s" % env.msvc_mode, file=report_file)
|
|
451
|
+
print("mingw_mode=%s" % env.mingw_mode, file=report_file)
|
|
452
|
+
print("clangcl_mode=%s" % env.clangcl_mode, file=report_file)
|
|
453
|
+
|
|
454
|
+
print("PATH=%s" % os.environ["PATH"], file=report_file)
|
|
455
|
+
print("TARGET=%s" % target[0].abspath, file=report_file)
|
|
456
|
+
|
|
457
|
+
|
|
458
|
+
def reportSconsUnexpectedOutput(env, cmdline, stdout, stderr):
|
|
459
|
+
with withFileLock("writing scons error report"):
|
|
460
|
+
file_handle, pickler = openPickleFile(
|
|
461
|
+
_getSconsErrorReportFilename(env.source_dir), "ab", protocol=2
|
|
462
|
+
)
|
|
463
|
+
pickler.dump((cmdline, stdout, stderr))
|
|
464
|
+
file_handle.close()
|
|
465
|
+
|
|
466
|
+
|
|
467
|
+
_scons_reports = {}
|
|
468
|
+
_scons_error_reports = {}
|
|
469
|
+
|
|
470
|
+
|
|
471
|
+
def flushSconsReports():
|
|
472
|
+
_scons_reports.clear()
|
|
473
|
+
_scons_error_reports.clear()
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
def _getSconsReportFilename(source_dir):
|
|
477
|
+
return os.path.join(source_dir, "scons-report.txt")
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
def _getSconsErrorReportFilename(source_dir):
|
|
481
|
+
return os.path.join(source_dir, "scons-error-report.txt")
|
|
482
|
+
|
|
483
|
+
|
|
484
|
+
def readSconsReport(source_dir):
|
|
485
|
+
if source_dir not in _scons_reports:
|
|
486
|
+
scons_report = OrderedDict()
|
|
487
|
+
|
|
488
|
+
for line in getFileContentByLine(
|
|
489
|
+
_getSconsReportFilename(source_dir), encoding="utf8"
|
|
490
|
+
):
|
|
491
|
+
if "=" not in line:
|
|
492
|
+
continue
|
|
493
|
+
|
|
494
|
+
key, value = line.strip().split("=", 1)
|
|
495
|
+
|
|
496
|
+
scons_report[key] = value
|
|
497
|
+
|
|
498
|
+
_scons_reports[source_dir] = scons_report
|
|
499
|
+
|
|
500
|
+
return _scons_reports[source_dir]
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
def getSconsReportValue(source_dir, key):
|
|
504
|
+
return readSconsReport(source_dir).get(key)
|
|
505
|
+
|
|
506
|
+
|
|
507
|
+
def readSconsErrorReport(source_dir):
|
|
508
|
+
if source_dir not in _scons_error_reports:
|
|
509
|
+
scons_error_report = OrderedDict()
|
|
510
|
+
|
|
511
|
+
scons_error_report_filename = _getSconsErrorReportFilename(source_dir)
|
|
512
|
+
if os.path.exists(scons_error_report_filename):
|
|
513
|
+
file_handle = openTextFile(scons_error_report_filename, "rb")
|
|
514
|
+
try:
|
|
515
|
+
while True:
|
|
516
|
+
try:
|
|
517
|
+
cmd, stdout, stderr = pickle.load(file_handle)
|
|
518
|
+
except EOFError:
|
|
519
|
+
break
|
|
520
|
+
|
|
521
|
+
if type(cmd) in (tuple, list):
|
|
522
|
+
cmd = " ".join(cmd)
|
|
523
|
+
|
|
524
|
+
if cmd not in scons_error_report:
|
|
525
|
+
scons_error_report[cmd] = ["", ""]
|
|
526
|
+
|
|
527
|
+
if type(stdout) in (tuple, list):
|
|
528
|
+
stdout = "\n".join(stdout)
|
|
529
|
+
|
|
530
|
+
if type(stderr) in (tuple, list):
|
|
531
|
+
stderr = "\n".join(stderr)
|
|
532
|
+
|
|
533
|
+
if stdout:
|
|
534
|
+
stdout = stdout.replace("\n\r", "\n")
|
|
535
|
+
scons_error_report[cmd][0] += stdout
|
|
536
|
+
if stderr:
|
|
537
|
+
stderr = stderr.replace("\n\r", "\n")
|
|
538
|
+
scons_error_report[cmd][1] += stderr
|
|
539
|
+
|
|
540
|
+
finally:
|
|
541
|
+
file_handle.close()
|
|
542
|
+
|
|
543
|
+
_scons_error_reports[source_dir] = scons_error_report
|
|
544
|
+
|
|
545
|
+
return _scons_error_reports[source_dir]
|
|
546
|
+
|
|
547
|
+
|
|
548
|
+
def addClangClPathFromMSVC(env):
|
|
549
|
+
cl_exe = getExecutablePath("cl", env=env)
|
|
550
|
+
|
|
551
|
+
if cl_exe is None:
|
|
552
|
+
scons_logger.sysexit(
|
|
553
|
+
"Error, Visual Studio required for using ClangCL on Windows."
|
|
554
|
+
)
|
|
555
|
+
|
|
556
|
+
clang_dir = os.path.join(cl_exe[: cl_exe.lower().rfind("msvc")], "Llvm")
|
|
557
|
+
|
|
558
|
+
if (
|
|
559
|
+
getCompilerArch(
|
|
560
|
+
mingw_mode=False, msvc_mode=True, the_cc_name="cl.exe", compiler_path=cl_exe
|
|
561
|
+
)
|
|
562
|
+
== "pei-x86-64"
|
|
563
|
+
):
|
|
564
|
+
clang_dir = os.path.join(clang_dir, "x64", "bin")
|
|
565
|
+
else:
|
|
566
|
+
clang_dir = os.path.join(clang_dir, "bin")
|
|
567
|
+
|
|
568
|
+
if not os.path.exists(clang_dir):
|
|
569
|
+
scons_details_logger.sysexit(
|
|
570
|
+
"Visual Studio has no Clang component found at '%s'." % clang_dir
|
|
571
|
+
)
|
|
572
|
+
|
|
573
|
+
scons_details_logger.info(
|
|
574
|
+
"Adding Visual Studio directory '%s' for Clang to PATH." % clang_dir
|
|
575
|
+
)
|
|
576
|
+
|
|
577
|
+
addToPATH(env, clang_dir, prefix=True)
|
|
578
|
+
|
|
579
|
+
clangcl_path = getExecutablePath("clang-cl", env=env)
|
|
580
|
+
|
|
581
|
+
if clangcl_path is None:
|
|
582
|
+
scons_details_logger.sysexit(
|
|
583
|
+
"Visual Studio has no Clang component found at '%s'." % clang_dir
|
|
584
|
+
)
|
|
585
|
+
|
|
586
|
+
env["CC"] = "clang-cl"
|
|
587
|
+
env["LINK"] = "lld-link"
|
|
588
|
+
|
|
589
|
+
# Version information is outdated now, spell-checker: ignore ccversion
|
|
590
|
+
env["CCVERSION"] = None
|
|
591
|
+
|
|
592
|
+
|
|
593
|
+
def isGccName(cc_name):
|
|
594
|
+
return (
|
|
595
|
+
"gcc" in cc_name
|
|
596
|
+
or "g++" in cc_name
|
|
597
|
+
or "gnu-cc" in cc_name
|
|
598
|
+
or "gnu-gcc" in cc_name
|
|
599
|
+
)
|
|
600
|
+
|
|
601
|
+
|
|
602
|
+
def isClangName(cc_name):
|
|
603
|
+
return ("clang" in cc_name and "-cl" not in cc_name) or isZigName(cc_name)
|
|
604
|
+
|
|
605
|
+
|
|
606
|
+
def isZigName(cc_name):
|
|
607
|
+
return "zig" in cc_name
|
|
608
|
+
|
|
609
|
+
|
|
610
|
+
def cheapCopyFile(src, dst):
|
|
611
|
+
dirname = os.path.dirname(dst)
|
|
612
|
+
if not os.path.exists(dirname):
|
|
613
|
+
os.makedirs(dirname)
|
|
614
|
+
|
|
615
|
+
if os.name == "nt":
|
|
616
|
+
# Windows has symlinks these days, but they do not integrate well
|
|
617
|
+
# with Python2 at least. So make a copy in any case.
|
|
618
|
+
if os.path.exists(dst):
|
|
619
|
+
os.unlink(dst)
|
|
620
|
+
shutil.copy(src, dst)
|
|
621
|
+
else:
|
|
622
|
+
# Relative paths work badly for links. Creating them relative is
|
|
623
|
+
# not worth the effort.
|
|
624
|
+
src = os.path.abspath(src)
|
|
625
|
+
|
|
626
|
+
try:
|
|
627
|
+
link_target = os.readlink(dst)
|
|
628
|
+
|
|
629
|
+
# If it's already a proper link, do nothing then.
|
|
630
|
+
if link_target == src:
|
|
631
|
+
return
|
|
632
|
+
|
|
633
|
+
os.unlink(dst)
|
|
634
|
+
except OSError as _e:
|
|
635
|
+
# Broken links work like that, remove them, so we can replace
|
|
636
|
+
# them.
|
|
637
|
+
try:
|
|
638
|
+
os.unlink(dst)
|
|
639
|
+
except OSError:
|
|
640
|
+
pass
|
|
641
|
+
|
|
642
|
+
try:
|
|
643
|
+
os.symlink(src, dst)
|
|
644
|
+
except OSError:
|
|
645
|
+
shutil.copy(src, dst)
|
|
646
|
+
|
|
647
|
+
|
|
648
|
+
def provideStaticSourceFile(env, sub_path, c11_mode):
|
|
649
|
+
source_filename = os.path.join(env.nuitka_src, "static_src", sub_path)
|
|
650
|
+
target_filename = os.path.join(
|
|
651
|
+
env.source_dir, "static_src", os.path.basename(sub_path)
|
|
652
|
+
)
|
|
653
|
+
|
|
654
|
+
if hasFilenameExtension(target_filename, ".c") and not c11_mode:
|
|
655
|
+
target_filename += "pp" # .cpp suffix then.
|
|
656
|
+
|
|
657
|
+
cheapCopyFile(source_filename, target_filename)
|
|
658
|
+
|
|
659
|
+
return target_filename
|
|
660
|
+
|
|
661
|
+
|
|
662
|
+
def scanSourceDir(env, dirname, plugins):
|
|
663
|
+
if not os.path.exists(dirname):
|
|
664
|
+
return
|
|
665
|
+
|
|
666
|
+
# If we use C11 capable compiler, all good. Otherwise use C++, which Scons
|
|
667
|
+
# needs to derive from filenames, so make copies (or links) with a different
|
|
668
|
+
# name.
|
|
669
|
+
added_path = False
|
|
670
|
+
|
|
671
|
+
for filename_base in sorted(os.listdir(dirname)):
|
|
672
|
+
if filename_base.endswith(".h") and plugins and not added_path:
|
|
673
|
+
# Adding path for source paths on the fly, spell-checker: ignore cpppath
|
|
674
|
+
env.Append(CPPPATH=[dirname])
|
|
675
|
+
added_path = True
|
|
676
|
+
|
|
677
|
+
# Only C files are of interest here.
|
|
678
|
+
if not hasFilenameExtension(
|
|
679
|
+
filename_base, (".c", ".cpp")
|
|
680
|
+
) or not filename_base.startswith(("module.", "__", "plugin.")):
|
|
681
|
+
continue
|
|
682
|
+
|
|
683
|
+
filename = os.path.join(dirname, filename_base)
|
|
684
|
+
|
|
685
|
+
target_filename = filename
|
|
686
|
+
|
|
687
|
+
if isWin32Windows() and not isFilesystemEncodable(filename_base):
|
|
688
|
+
target_filename = getWindowsShortPathName(target_filename)
|
|
689
|
+
|
|
690
|
+
# Avoid ".C" suffixes, that MinGW64 wouldn't recognize.
|
|
691
|
+
target_filename = changeFilenameExtension(
|
|
692
|
+
target_filename, getFilenameExtension(target_filename).lower()
|
|
693
|
+
)
|
|
694
|
+
|
|
695
|
+
# We pretend to use C++ if no C11 compiler is present.
|
|
696
|
+
if env.c11_mode:
|
|
697
|
+
yield target_filename
|
|
698
|
+
else:
|
|
699
|
+
if hasFilenameExtension(filename, ".c"):
|
|
700
|
+
target_filename += "pp" # .cpp" suffix then
|
|
701
|
+
|
|
702
|
+
os.rename(filename, target_filename)
|
|
703
|
+
|
|
704
|
+
yield target_filename
|
|
705
|
+
|
|
706
|
+
|
|
707
|
+
def makeCLiteral(value):
|
|
708
|
+
value = value.replace("\\", r"\\")
|
|
709
|
+
value = value.replace('"', r"\"")
|
|
710
|
+
|
|
711
|
+
return '"' + value + '"'
|
|
712
|
+
|
|
713
|
+
|
|
714
|
+
def createDefinitionsFile(source_dir, filename, definitions):
|
|
715
|
+
for env_name in os.environ["_NUITKA_BUILD_DEFINITIONS_CATALOG"].split(","):
|
|
716
|
+
definitions[env_name] = os.environ[env_name]
|
|
717
|
+
|
|
718
|
+
build_definitions_filename = os.path.join(source_dir, filename)
|
|
719
|
+
|
|
720
|
+
with openTextFile(build_definitions_filename, "w", encoding="utf8") as f:
|
|
721
|
+
for key, value in sorted(definitions.items()):
|
|
722
|
+
if key == "_NUITKA_BUILD_DEFINITIONS_CATALOG":
|
|
723
|
+
continue
|
|
724
|
+
|
|
725
|
+
if type(value) is int or key.endswith(("_BOOL", "_INT")):
|
|
726
|
+
if type(value) is bool:
|
|
727
|
+
value = int(value)
|
|
728
|
+
f.write("#define %s %s\n" % (key, value))
|
|
729
|
+
elif type(value) in (str, unicode) and key.endswith("_WIDE_STRING"):
|
|
730
|
+
f.write("#define %s L%s\n" % (key, makeCLiteral(value)))
|
|
731
|
+
else:
|
|
732
|
+
f.write("#define %s %s\n" % (key, makeCLiteral(value)))
|
|
733
|
+
|
|
734
|
+
|
|
735
|
+
def getMsvcVersionString(env):
|
|
736
|
+
import SCons.Tool.MSCommon.vc # pylint: disable=I0021,import-error
|
|
737
|
+
|
|
738
|
+
return SCons.Tool.MSCommon.vc.get_default_version(env)
|
|
739
|
+
|
|
740
|
+
|
|
741
|
+
def getMsvcVersion(env):
|
|
742
|
+
value = getMsvcVersionString(env)
|
|
743
|
+
|
|
744
|
+
# TODO: Workaround for prompt being used.
|
|
745
|
+
if value is None:
|
|
746
|
+
value = os.getenv("VCToolsVersion", "14.3").rsplit(".", 1)[0]
|
|
747
|
+
|
|
748
|
+
value = value.replace("exp", "")
|
|
749
|
+
return tuple((int(d) for d in value.split(".")))
|
|
750
|
+
|
|
751
|
+
|
|
752
|
+
def _getBinaryArch(binary, mingw_mode):
|
|
753
|
+
if "linux" in sys.platform or mingw_mode:
|
|
754
|
+
assert os.path.exists(binary), binary
|
|
755
|
+
|
|
756
|
+
# Binutils binary name, spell-checker: ignore objdump,binutils
|
|
757
|
+
command = ["objdump", "-f", binary]
|
|
758
|
+
|
|
759
|
+
try:
|
|
760
|
+
data, _err, rv = executeProcess(command)
|
|
761
|
+
except OSError:
|
|
762
|
+
command[0] = "llvm-objdump"
|
|
763
|
+
|
|
764
|
+
try:
|
|
765
|
+
data, _err, rv = executeProcess(command)
|
|
766
|
+
except OSError:
|
|
767
|
+
return None
|
|
768
|
+
|
|
769
|
+
if rv != 0:
|
|
770
|
+
return None
|
|
771
|
+
|
|
772
|
+
if str is not bytes:
|
|
773
|
+
data = decodeData(data)
|
|
774
|
+
|
|
775
|
+
found = None
|
|
776
|
+
|
|
777
|
+
for line in data.splitlines():
|
|
778
|
+
if " file format " in line:
|
|
779
|
+
found = line.split(" file format ")[-1]
|
|
780
|
+
if "\tfile format " in line:
|
|
781
|
+
found = line.split("\tfile format ")[-1]
|
|
782
|
+
|
|
783
|
+
if os.name == "nt" and found == "coff-x86-64":
|
|
784
|
+
found = "pei-x86-64"
|
|
785
|
+
|
|
786
|
+
return found
|
|
787
|
+
else:
|
|
788
|
+
# TODO: Missing for macOS, FreeBSD, other Linux
|
|
789
|
+
return None
|
|
790
|
+
|
|
791
|
+
|
|
792
|
+
_linker_arch_determined = False
|
|
793
|
+
_linker_arch = None
|
|
794
|
+
|
|
795
|
+
|
|
796
|
+
def getLinkerArch(target_arch, mingw_mode):
|
|
797
|
+
# Singleton, pylint: disable=global-statement
|
|
798
|
+
global _linker_arch_determined, _linker_arch
|
|
799
|
+
|
|
800
|
+
if not _linker_arch_determined:
|
|
801
|
+
if os.name == "nt":
|
|
802
|
+
if target_arch == "x86_64":
|
|
803
|
+
_linker_arch = "pei-x86-64"
|
|
804
|
+
elif target_arch == "arm64":
|
|
805
|
+
_linker_arch = "pei-arm64"
|
|
806
|
+
else:
|
|
807
|
+
_linker_arch = "pei-i386"
|
|
808
|
+
else:
|
|
809
|
+
_linker_arch = _getBinaryArch(
|
|
810
|
+
binary=os.environ["NUITKA_PYTHON_EXE_PATH"], mingw_mode=mingw_mode
|
|
811
|
+
)
|
|
812
|
+
|
|
813
|
+
_linker_arch_determined = True
|
|
814
|
+
|
|
815
|
+
return _linker_arch
|
|
816
|
+
|
|
817
|
+
|
|
818
|
+
_compiler_arch = {}
|
|
819
|
+
|
|
820
|
+
|
|
821
|
+
def getCompilerArch(mingw_mode, msvc_mode, the_cc_name, compiler_path):
|
|
822
|
+
assert not mingw_mode or not msvc_mode
|
|
823
|
+
|
|
824
|
+
if compiler_path not in _compiler_arch:
|
|
825
|
+
if mingw_mode:
|
|
826
|
+
_compiler_arch[compiler_path] = _getBinaryArch(
|
|
827
|
+
binary=compiler_path, mingw_mode=mingw_mode
|
|
828
|
+
)
|
|
829
|
+
elif msvc_mode:
|
|
830
|
+
cmdline = [compiler_path]
|
|
831
|
+
|
|
832
|
+
if "-cl" in the_cc_name:
|
|
833
|
+
cmdline.append("--version")
|
|
834
|
+
|
|
835
|
+
# The cl.exe without further args will give error
|
|
836
|
+
stdout, stderr, _rv = executeProcess(
|
|
837
|
+
command=cmdline,
|
|
838
|
+
)
|
|
839
|
+
|
|
840
|
+
# The MSVC will output on error, while clang outputs in stdout and they
|
|
841
|
+
# use different names for arches.
|
|
842
|
+
if b"x64" in stderr or b"x86_64" in stdout:
|
|
843
|
+
_compiler_arch[compiler_path] = "pei-x86-64"
|
|
844
|
+
elif b"x86" in stderr or b"i686" in stdout:
|
|
845
|
+
_compiler_arch[compiler_path] = "pei-i386"
|
|
846
|
+
elif b"ARM64" in stderr:
|
|
847
|
+
# TODO: The ARM64 output for Clang is not known yet.
|
|
848
|
+
_compiler_arch[compiler_path] = "pei-arm64"
|
|
849
|
+
else:
|
|
850
|
+
assert False, (stdout, stderr)
|
|
851
|
+
else:
|
|
852
|
+
assert False, compiler_path
|
|
853
|
+
|
|
854
|
+
return _compiler_arch[compiler_path]
|
|
855
|
+
|
|
856
|
+
|
|
857
|
+
def decideArchMismatch(target_arch, the_cc_name, compiler_path):
|
|
858
|
+
mingw_mode = isGccName(the_cc_name) or isClangName(the_cc_name)
|
|
859
|
+
msvc_mode = not mingw_mode
|
|
860
|
+
|
|
861
|
+
linker_arch = getLinkerArch(target_arch=target_arch, mingw_mode=mingw_mode)
|
|
862
|
+
compiler_arch = getCompilerArch(
|
|
863
|
+
mingw_mode=mingw_mode,
|
|
864
|
+
msvc_mode=msvc_mode,
|
|
865
|
+
the_cc_name=the_cc_name,
|
|
866
|
+
compiler_path=compiler_path,
|
|
867
|
+
)
|
|
868
|
+
|
|
869
|
+
return linker_arch != compiler_arch, linker_arch, compiler_arch
|
|
870
|
+
|
|
871
|
+
|
|
872
|
+
def raiseNoCompilerFoundErrorExit():
|
|
873
|
+
if os.name == "nt":
|
|
874
|
+
scons_logger.sysexit(
|
|
875
|
+
"""\
|
|
876
|
+
Error, cannot locate suitable C compiler. You have the following options:
|
|
877
|
+
|
|
878
|
+
a) If a suitable Visual Studio version is installed (check above trace
|
|
879
|
+
outputs for rejection messages), it will be located automatically via
|
|
880
|
+
registry. But not if you activate the wrong prompt.
|
|
881
|
+
|
|
882
|
+
b) Using "--mingw64" lets Nuitka download MinGW64 for you. Note: MinGW64
|
|
883
|
+
is the project name, it does *not* mean 64 bits, just a gcc with better
|
|
884
|
+
Windows compatibility, it is available for 32 and 64 bits. Cygwin based
|
|
885
|
+
gcc e.g. do not work.
|
|
886
|
+
"""
|
|
887
|
+
)
|
|
888
|
+
else:
|
|
889
|
+
scons_logger.sysexit("Error, cannot locate suitable C compiler.")
|
|
890
|
+
|
|
891
|
+
|
|
892
|
+
def addBinaryBlobSection(env, blob_filename, section_name):
|
|
893
|
+
# spell-checker: ignore linkflags, sectcreate
|
|
894
|
+
|
|
895
|
+
if isMacOS():
|
|
896
|
+
env.Append(
|
|
897
|
+
LINKFLAGS=[
|
|
898
|
+
"-Wl,-sectcreate,%(section_name)s,%(section_name)s,%(blob_filename)s"
|
|
899
|
+
% {
|
|
900
|
+
"section_name": section_name,
|
|
901
|
+
"blob_filename": blob_filename,
|
|
902
|
+
}
|
|
903
|
+
]
|
|
904
|
+
)
|
|
905
|
+
else:
|
|
906
|
+
assert False
|
|
907
|
+
|
|
908
|
+
|
|
909
|
+
def makeResultPathFileSystemEncodable(env, result_exe):
|
|
910
|
+
deleteFile(result_exe, must_exist=False)
|
|
911
|
+
|
|
912
|
+
if os.name == "nt" and not isFilesystemEncodable(result_exe):
|
|
913
|
+
result_exe = os.path.join(
|
|
914
|
+
os.path.dirname(result_exe),
|
|
915
|
+
"_nuitka_temp.pyd" if env.module_mode else "_nuitka_temp.exe",
|
|
916
|
+
)
|
|
917
|
+
|
|
918
|
+
if not isFilesystemEncodable(result_exe):
|
|
919
|
+
result_exe = getNormalizedPath(os.path.relpath(result_exe))
|
|
920
|
+
|
|
921
|
+
deleteFile(result_exe, must_exist=False)
|
|
922
|
+
|
|
923
|
+
return result_exe
|
|
924
|
+
|
|
925
|
+
|
|
926
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
927
|
+
# integrates with CPython, but also works on its own.
|
|
928
|
+
#
|
|
929
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
930
|
+
# you may not use this file except in compliance with the License.
|
|
931
|
+
# You may obtain a copy of the License at
|
|
932
|
+
#
|
|
933
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
934
|
+
#
|
|
935
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
936
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
937
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
938
|
+
# See the License for the specific language governing permissions and
|
|
939
|
+
# limitations under the License.
|