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,1111 @@
|
|
|
1
|
+
# -*- python -*-
|
|
2
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
"""
|
|
6
|
+
The Nuitka scons file. If you have Scons or platform knowledge, please be
|
|
7
|
+
especially invited and contribute improvements.
|
|
8
|
+
|
|
9
|
+
This file is used to build an executable or shared library. Nuitka needs no
|
|
10
|
+
build process for itself, although it can be compiled using the same method.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
# Make nuitka package importable from calling installation
|
|
14
|
+
|
|
15
|
+
import sys
|
|
16
|
+
import os
|
|
17
|
+
import types
|
|
18
|
+
|
|
19
|
+
sys.modules["nuitka"] = types.ModuleType("nuitka")
|
|
20
|
+
sys.modules["nuitka"].__path__ = [os.environ["NUITKA_PACKAGE_DIR"]]
|
|
21
|
+
|
|
22
|
+
# We are in the build.build package really.
|
|
23
|
+
import nuitka.build # pylint: disable=unused-import
|
|
24
|
+
|
|
25
|
+
__package__ = "nuitka.build" # pylint: disable=redefined-builtin
|
|
26
|
+
|
|
27
|
+
# isort:start
|
|
28
|
+
|
|
29
|
+
from SCons.Script import ( # pylint: disable=I0021,import-error
|
|
30
|
+
ARGUMENTS,
|
|
31
|
+
Environment,
|
|
32
|
+
GetOption,
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
from nuitka.Tracing import (
|
|
36
|
+
my_print,
|
|
37
|
+
scons_details_logger,
|
|
38
|
+
scons_logger,
|
|
39
|
+
setQuiet,
|
|
40
|
+
)
|
|
41
|
+
from nuitka.utils.FileOperations import (
|
|
42
|
+
changeFilenameExtension,
|
|
43
|
+
getExternalUsePath,
|
|
44
|
+
getFilenameExtension,
|
|
45
|
+
)
|
|
46
|
+
from nuitka.utils.Json import loadJsonFromFilename
|
|
47
|
+
from nuitka.utils.Utils import (
|
|
48
|
+
isAIX,
|
|
49
|
+
isDebianBasedLinux,
|
|
50
|
+
isFedoraBasedLinux,
|
|
51
|
+
isFreeBSD,
|
|
52
|
+
isMacOS,
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
from .DataComposerInterface import getConstantBlobFilename
|
|
56
|
+
from .SconsCaching import enableCcache, enableClcache
|
|
57
|
+
from .SconsCompilerSettings import (
|
|
58
|
+
addConstantBlobFile,
|
|
59
|
+
checkWindowsCompilerFound,
|
|
60
|
+
decideConstantsBlobResourceMode,
|
|
61
|
+
enableWindowsStackSize,
|
|
62
|
+
importEnvironmentVariableSettings,
|
|
63
|
+
reportCCompiler,
|
|
64
|
+
setupCCompiler,
|
|
65
|
+
switchFromGccToGpp,
|
|
66
|
+
)
|
|
67
|
+
from .SconsHacks import getEnhancedToolDetect, makeGccUseLinkerFile
|
|
68
|
+
from .SconsProgress import enableSconsProgressBar, setSconsProgressBarTotal
|
|
69
|
+
from .SconsSpawn import enableSpawnMonitoring
|
|
70
|
+
from .SconsUtils import (
|
|
71
|
+
addClangClPathFromMSVC,
|
|
72
|
+
changeKeyboardInterruptToErrorExit,
|
|
73
|
+
createDefinitionsFile,
|
|
74
|
+
createEnvironment,
|
|
75
|
+
getArgumentBool,
|
|
76
|
+
getArgumentDefaulted,
|
|
77
|
+
getArgumentInt,
|
|
78
|
+
getArgumentList,
|
|
79
|
+
getArgumentRequired,
|
|
80
|
+
getExecutablePath,
|
|
81
|
+
getMsvcVersionString,
|
|
82
|
+
initScons,
|
|
83
|
+
isClangName,
|
|
84
|
+
isGccName,
|
|
85
|
+
makeResultPathFileSystemEncodable,
|
|
86
|
+
prepareEnvironment,
|
|
87
|
+
provideStaticSourceFile,
|
|
88
|
+
raiseNoCompilerFoundErrorExit,
|
|
89
|
+
scanSourceDir,
|
|
90
|
+
setArguments,
|
|
91
|
+
setupScons,
|
|
92
|
+
writeSconsReport,
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
# spell-checker: ignore ccversion,cflags,ccflags,werror,cppdefines,cpppath,
|
|
96
|
+
# spell-checker: ignore linkflags,libpath,libflags
|
|
97
|
+
|
|
98
|
+
# Set the arguments.
|
|
99
|
+
setArguments(ARGUMENTS)
|
|
100
|
+
|
|
101
|
+
# Set up the basic stuff.
|
|
102
|
+
initScons()
|
|
103
|
+
|
|
104
|
+
# The directory containing the C files generated by Nuitka to be built using
|
|
105
|
+
# scons. They are referred to as sources from here on.
|
|
106
|
+
source_dir = getArgumentRequired("source_dir")
|
|
107
|
+
|
|
108
|
+
# The directory containing Nuitka provided C files to be built and where it
|
|
109
|
+
# should be used.
|
|
110
|
+
nuitka_src = getArgumentRequired("nuitka_src")
|
|
111
|
+
static_src = os.path.join(source_dir, "static")
|
|
112
|
+
|
|
113
|
+
# The name of executable that we are supposed to produce.
|
|
114
|
+
result_exe = getArgumentRequired("result_exe")
|
|
115
|
+
|
|
116
|
+
# Name of the main program (in executable mode, typically __main__ but can be in a package too.)
|
|
117
|
+
main_module_name = getArgumentDefaulted("main_module_name", "__main__")
|
|
118
|
+
|
|
119
|
+
# Full names shall be used, no remapping for cacheable filenames.
|
|
120
|
+
full_names = getArgumentBool("full_names", False)
|
|
121
|
+
|
|
122
|
+
# Debug mode: Less optimizations, debug information in the resulting binary.
|
|
123
|
+
debug_mode = getArgumentBool("debug_mode", False)
|
|
124
|
+
|
|
125
|
+
# Debugger mode: Debug information in the resulting binary and intention to run
|
|
126
|
+
# in debugger.
|
|
127
|
+
debugger_mode = getArgumentBool("debugger_mode", False)
|
|
128
|
+
|
|
129
|
+
# Profiling mode: Outputs vmprof based information from program run.
|
|
130
|
+
profile_mode = getArgumentBool("profile_mode", False)
|
|
131
|
+
|
|
132
|
+
# Python version to target.
|
|
133
|
+
python_version_str = getArgumentRequired("python_version")
|
|
134
|
+
python_version = tuple(int(d) for d in python_version_str.split("."))
|
|
135
|
+
|
|
136
|
+
gil_mode = getArgumentBool("gil_mode")
|
|
137
|
+
|
|
138
|
+
# The ABI flags to target.
|
|
139
|
+
abiflags = getArgumentDefaulted("abiflags", "")
|
|
140
|
+
|
|
141
|
+
if not gil_mode and "t" not in abiflags:
|
|
142
|
+
abiflags = "t" + abiflags
|
|
143
|
+
|
|
144
|
+
python_abi_version = python_version_str + abiflags
|
|
145
|
+
|
|
146
|
+
# Python debug mode: reference count checking, assertions in CPython core.
|
|
147
|
+
python_debug = getArgumentBool("python_debug", False)
|
|
148
|
+
|
|
149
|
+
# Full compatibility, even where it's stupid, i.e. do not provide information,
|
|
150
|
+
# even if available, in order to assert maximum compatibility. Intended to
|
|
151
|
+
# control level of compatibility to absurd.
|
|
152
|
+
full_compat_mode = getArgumentBool("full_compat", False)
|
|
153
|
+
|
|
154
|
+
# Experimental indications. Do things that are not yet safe to do.
|
|
155
|
+
experimental = getArgumentList("experimental", "")
|
|
156
|
+
|
|
157
|
+
# Deployment mode
|
|
158
|
+
deployment_mode = getArgumentBool("deployment", False)
|
|
159
|
+
|
|
160
|
+
# Experimental indications. Do things that are not yet safe to do.
|
|
161
|
+
no_deployment = getArgumentList("no_deployment", "")
|
|
162
|
+
|
|
163
|
+
# Debug mode indications. Do check things with fine granularity.
|
|
164
|
+
debug_modes = getArgumentList("debug_modes", "")
|
|
165
|
+
|
|
166
|
+
# Tracing mode. Output program progress.
|
|
167
|
+
trace_mode = getArgumentBool("trace_mode", False)
|
|
168
|
+
|
|
169
|
+
# LTO mode: Use link time optimizations of C compiler if available and known
|
|
170
|
+
# good with the compiler in question.
|
|
171
|
+
lto_mode = getArgumentDefaulted("lto_mode", "auto")
|
|
172
|
+
|
|
173
|
+
# PGO mode: Use profile guided optimization of C compiler if available.
|
|
174
|
+
pgo_mode = getArgumentDefaulted("pgo_mode", "no")
|
|
175
|
+
|
|
176
|
+
# Console mode specified
|
|
177
|
+
console_mode = getArgumentDefaulted("console_mode", "attach")
|
|
178
|
+
|
|
179
|
+
# Windows might be running a Python whose DLL we have to use.
|
|
180
|
+
uninstalled_python = getArgumentBool("uninstalled_python", False)
|
|
181
|
+
|
|
182
|
+
# Unstripped mode: Do not remove debug symbols.
|
|
183
|
+
unstripped_mode = getArgumentBool("unstripped_mode", False)
|
|
184
|
+
|
|
185
|
+
# Target arch, uses for compiler choice and quick linking of constants binary
|
|
186
|
+
# data.
|
|
187
|
+
target_arch = getArgumentRequired("target_arch")
|
|
188
|
+
|
|
189
|
+
# MinGW compiler mode, optional and interesting to Windows only.
|
|
190
|
+
mingw_mode = getArgumentBool("mingw_mode", False)
|
|
191
|
+
|
|
192
|
+
# Clang compiler mode, forced on macOS and FreeBSD (excluding PowerPC), optional on Linux.
|
|
193
|
+
clang_mode = getArgumentBool("clang_mode", False)
|
|
194
|
+
|
|
195
|
+
# Clang on Windows with no requirement to use MinGW64 or using MSYS2 MinGW flavor,
|
|
196
|
+
# is changed to ClangCL from Visual Studio.
|
|
197
|
+
clangcl_mode = False
|
|
198
|
+
if os.name == "nt" and not mingw_mode and clang_mode:
|
|
199
|
+
clang_mode = False
|
|
200
|
+
clangcl_mode = True
|
|
201
|
+
|
|
202
|
+
# Frozen modules count, determines the need for the bytecode frozen
|
|
203
|
+
# modules loader.
|
|
204
|
+
frozen_modules = getArgumentInt("frozen_modules", 0)
|
|
205
|
+
|
|
206
|
+
forced_stdout_path = getArgumentDefaulted("forced_stdout_path", None)
|
|
207
|
+
forced_stderr_path = getArgumentDefaulted("forced_stderr_path", None)
|
|
208
|
+
|
|
209
|
+
# Show scons mode, output information about Scons operation
|
|
210
|
+
show_scons_mode = getArgumentBool("show_scons", False)
|
|
211
|
+
scons_details_logger.is_quiet = not show_scons_mode
|
|
212
|
+
|
|
213
|
+
if int(os.getenv("NUITKA_QUIET", "0")):
|
|
214
|
+
setQuiet()
|
|
215
|
+
|
|
216
|
+
# Home of Python to be compiled against, used to find include files and
|
|
217
|
+
# libraries to link against.
|
|
218
|
+
python_prefix = getArgumentRequired("python_prefix")
|
|
219
|
+
|
|
220
|
+
python_prefix_external = getExternalUsePath(python_prefix)
|
|
221
|
+
|
|
222
|
+
# Forced MSVC version (windows-only)
|
|
223
|
+
msvc_version = getArgumentDefaulted("msvc_version", None)
|
|
224
|
+
|
|
225
|
+
# Disable ccache/clcache usage if that is requested
|
|
226
|
+
disable_ccache = getArgumentBool("disable_ccache", False)
|
|
227
|
+
|
|
228
|
+
no_python_warnings = getArgumentBool("no_python_warnings", False)
|
|
229
|
+
|
|
230
|
+
# sys.flags values to pass along
|
|
231
|
+
# python_sysflag_py3k_warning
|
|
232
|
+
python_sysflag_py3k_warning = getArgumentBool("python_sysflag_py3k_warning", False)
|
|
233
|
+
# python_sysflag_division_warning
|
|
234
|
+
python_sysflag_division_warning = getArgumentBool(
|
|
235
|
+
"python_sysflag_division_warning", False
|
|
236
|
+
)
|
|
237
|
+
# python_sysflag_division_warning
|
|
238
|
+
python_sysflag_bytes_warning = getArgumentBool("python_sysflag_bytes_warning", False)
|
|
239
|
+
# python_sysflag_no_site
|
|
240
|
+
python_sysflag_no_site = getArgumentBool("python_sysflag_no_site", False)
|
|
241
|
+
# python_sysflag_verbose
|
|
242
|
+
python_sysflag_verbose = getArgumentBool("python_sysflag_verbose", False)
|
|
243
|
+
# python_sysflag_unicode
|
|
244
|
+
python_sysflag_unicode = getArgumentBool("python_sysflag_unicode", False)
|
|
245
|
+
# python_sysflag_utf8
|
|
246
|
+
python_sysflag_utf8 = getArgumentBool("python_sysflag_utf8", False)
|
|
247
|
+
# python_sysflag_optimize
|
|
248
|
+
python_sysflag_optimize = getArgumentInt("python_sysflag_optimize", 0)
|
|
249
|
+
# python_flag_no_asserts
|
|
250
|
+
python_flag_no_asserts = getArgumentBool("python_flag_no_asserts", False)
|
|
251
|
+
# python_flag_no_docstrings
|
|
252
|
+
python_flag_no_docstrings = getArgumentBool("python_flag_no_docstrings", False)
|
|
253
|
+
# python_flag_no_annotations
|
|
254
|
+
python_flag_no_annotations = getArgumentBool("python_flag_no_annotations", False)
|
|
255
|
+
# python_sysflag_no_randomization
|
|
256
|
+
python_sysflag_no_randomization = getArgumentBool(
|
|
257
|
+
"python_sysflag_no_randomization", False
|
|
258
|
+
)
|
|
259
|
+
|
|
260
|
+
# python_sysflag_unbuffered (--python-flag=-U)
|
|
261
|
+
python_sysflag_unbuffered = getArgumentBool("python_sysflag_unbuffered", False)
|
|
262
|
+
|
|
263
|
+
# python_sysflag_dontwritebytecode (--python-flag=-B)
|
|
264
|
+
python_sysflag_dontwritebytecode = getArgumentBool(
|
|
265
|
+
"python_sysflag_dontwritebytecode", False
|
|
266
|
+
)
|
|
267
|
+
|
|
268
|
+
# python_sysflag_safe_path (--python-flag=-P)
|
|
269
|
+
python_sysflag_safe_path = getArgumentBool("python_sysflag_safe_path", False)
|
|
270
|
+
|
|
271
|
+
# python_sysflag_isolated
|
|
272
|
+
python_sysflag_isolated = getArgumentBool("python_sysflag_isolated", False)
|
|
273
|
+
|
|
274
|
+
# file reference mode
|
|
275
|
+
file_reference_mode = getArgumentRequired("file_reference_mode")
|
|
276
|
+
|
|
277
|
+
# Preprocessor defines from plugins
|
|
278
|
+
cpp_defines = getArgumentList("cpp_defines", "")
|
|
279
|
+
cpp_include_dirs = getArgumentList("cpp_include_dirs", "")
|
|
280
|
+
link_dirs = getArgumentList("link_dirs", "")
|
|
281
|
+
link_libraries = getArgumentList("link_libraries", "")
|
|
282
|
+
|
|
283
|
+
# From statically compiled modules of the Python
|
|
284
|
+
link_module_libs = getArgumentList("link_module_libs", "")
|
|
285
|
+
|
|
286
|
+
# Allow automatic downloads for ccache, etc.
|
|
287
|
+
assume_yes_for_downloads = getArgumentBool("assume_yes_for_downloads", False)
|
|
288
|
+
|
|
289
|
+
# Low memory mode, compile using less memory if possible.
|
|
290
|
+
low_memory = getArgumentBool("low_memory", False)
|
|
291
|
+
|
|
292
|
+
# Minimum version required on macOS.
|
|
293
|
+
macos_min_version = getArgumentDefaulted("macos_min_version", "")
|
|
294
|
+
|
|
295
|
+
# Target arch for macOS.
|
|
296
|
+
macos_target_arch = getArgumentDefaulted("macos_target_arch", "")
|
|
297
|
+
|
|
298
|
+
# gcc compiler cf_protection option
|
|
299
|
+
cf_protection = getArgumentDefaulted("cf_protection", "auto")
|
|
300
|
+
|
|
301
|
+
if getArgumentBool("progress_bar", True) and not show_scons_mode:
|
|
302
|
+
enableSconsProgressBar()
|
|
303
|
+
|
|
304
|
+
# Amount of jobs to use.
|
|
305
|
+
job_count = GetOption("num_jobs")
|
|
306
|
+
|
|
307
|
+
# Prepare environment for compiler detection.
|
|
308
|
+
mingw_mode = prepareEnvironment(mingw_mode=mingw_mode)
|
|
309
|
+
|
|
310
|
+
# Patch the compiler detection.
|
|
311
|
+
Environment.Detect = getEnhancedToolDetect()
|
|
312
|
+
|
|
313
|
+
# Create Scons environment, the main control tool. Don't include "mingw" on
|
|
314
|
+
# Windows immediately, we will default to MSVC if available.
|
|
315
|
+
env = createEnvironment(
|
|
316
|
+
mingw_mode=mingw_mode,
|
|
317
|
+
msvc_version=msvc_version,
|
|
318
|
+
target_arch=target_arch,
|
|
319
|
+
experimental=experimental,
|
|
320
|
+
no_deployment=no_deployment,
|
|
321
|
+
debug_modes=debug_modes,
|
|
322
|
+
)
|
|
323
|
+
|
|
324
|
+
scons_details_logger.info("Initial CC: %r" % env.get("CC"))
|
|
325
|
+
scons_details_logger.info(
|
|
326
|
+
"Initial CCVERSION: %r" % (env.get("CCVERSION"),),
|
|
327
|
+
)
|
|
328
|
+
|
|
329
|
+
if "CC" in os.environ:
|
|
330
|
+
# If the environment variable CC is set, use that.
|
|
331
|
+
env["CC"] = os.environ["CC"]
|
|
332
|
+
env["CCVERSION"] = None
|
|
333
|
+
|
|
334
|
+
scons_details_logger.info("Overridden with environment CC: %r" % env["CC"])
|
|
335
|
+
elif clangcl_mode:
|
|
336
|
+
# If possible, add Clang directory from MSVC if available.
|
|
337
|
+
addClangClPathFromMSVC(env=env)
|
|
338
|
+
elif clang_mode and not mingw_mode:
|
|
339
|
+
# If requested by the user, use the clang compiler, overriding what was
|
|
340
|
+
# said in environment.
|
|
341
|
+
|
|
342
|
+
env["CC"] = "clang"
|
|
343
|
+
env["CCVERSION"] = None
|
|
344
|
+
|
|
345
|
+
# On Windows, in case MSVC was not found and not previously forced, use the
|
|
346
|
+
# winlibs MinGW64 as a download, and use it as a fallback.
|
|
347
|
+
env = checkWindowsCompilerFound(
|
|
348
|
+
env=env,
|
|
349
|
+
target_arch=target_arch,
|
|
350
|
+
clang_mode=clang_mode,
|
|
351
|
+
msvc_version=msvc_version,
|
|
352
|
+
assume_yes_for_downloads=assume_yes_for_downloads,
|
|
353
|
+
download_ok=True,
|
|
354
|
+
)
|
|
355
|
+
|
|
356
|
+
env.the_compiler = env["CC"]
|
|
357
|
+
env.the_cc_name = os.path.normcase(os.path.basename(env.the_compiler))
|
|
358
|
+
env.debug_mode = debug_mode
|
|
359
|
+
env.debugger_mode = debugger_mode
|
|
360
|
+
env.unstripped_mode = unstripped_mode
|
|
361
|
+
env.console_mode = console_mode
|
|
362
|
+
env.source_dir = source_dir
|
|
363
|
+
env.nuitka_src = nuitka_src
|
|
364
|
+
env.low_memory = low_memory
|
|
365
|
+
env.macos_min_version = macos_min_version
|
|
366
|
+
env.macos_target_arch = macos_target_arch
|
|
367
|
+
|
|
368
|
+
# Requested or user provided, detect if it's clang even from environment
|
|
369
|
+
if isClangName(env.the_cc_name):
|
|
370
|
+
clang_mode = True
|
|
371
|
+
env["CCVERSION"] = None
|
|
372
|
+
|
|
373
|
+
# We consider clang to be a form of gcc for the most things, they strive to
|
|
374
|
+
# be compatible.
|
|
375
|
+
env.gcc_mode = isGccName(env.the_cc_name) or clang_mode
|
|
376
|
+
env.clang_mode = clang_mode
|
|
377
|
+
|
|
378
|
+
# Only use MSVC if not already clear, we are using MinGW.
|
|
379
|
+
env.msvc_mode = os.name == "nt" and not env.gcc_mode
|
|
380
|
+
env.mingw_mode = os.name == "nt" and env.gcc_mode
|
|
381
|
+
env.clangcl_mode = clangcl_mode
|
|
382
|
+
|
|
383
|
+
# For Python3.13, we need to enforce it for now to use MSVC
|
|
384
|
+
if os.name == "nt" and not env.msvc_mode and python_version >= (3, 13):
|
|
385
|
+
scons_logger.sysexit(
|
|
386
|
+
"""\
|
|
387
|
+
Sorry, non-MSVC is not currently supported with Python 3.13,
|
|
388
|
+
due to differences in layout internal structures of Python.
|
|
389
|
+
|
|
390
|
+
Newer Nuitka will work to solve this. Use Python 3.12 or
|
|
391
|
+
option "--msvc=latest" as a workaround for now and wait
|
|
392
|
+
for updates of Nuitka to add MinGW64 support back."""
|
|
393
|
+
)
|
|
394
|
+
|
|
395
|
+
# gcc compiler cf_protection option
|
|
396
|
+
env.cf_protection = cf_protection
|
|
397
|
+
|
|
398
|
+
# Consider switching from gcc to its g++ compiler as a workaround that makes us work without C11.
|
|
399
|
+
switchFromGccToGpp(
|
|
400
|
+
env=env,
|
|
401
|
+
)
|
|
402
|
+
|
|
403
|
+
if env.the_compiler is None or getExecutablePath(env.the_compiler, env=env) is None:
|
|
404
|
+
raiseNoCompilerFoundErrorExit()
|
|
405
|
+
|
|
406
|
+
no_import_lib = False
|
|
407
|
+
|
|
408
|
+
if show_scons_mode:
|
|
409
|
+
my_print("Scons: Compiler used", end=" ")
|
|
410
|
+
my_print(getExecutablePath(env.the_compiler, env=env), end=" ")
|
|
411
|
+
|
|
412
|
+
if os.name == "nt" and env.msvc_mode:
|
|
413
|
+
my_print("(MSVC %s)" % getMsvcVersionString(env))
|
|
414
|
+
|
|
415
|
+
my_print()
|
|
416
|
+
|
|
417
|
+
# Set build directory and scons general settings.
|
|
418
|
+
setupScons(env, source_dir)
|
|
419
|
+
|
|
420
|
+
# Report the C compiler used.
|
|
421
|
+
reportCCompiler(env, "Backend", scons_logger.info)
|
|
422
|
+
|
|
423
|
+
# Set up C compiler settings.
|
|
424
|
+
setupCCompiler(
|
|
425
|
+
env=env,
|
|
426
|
+
lto_mode=lto_mode,
|
|
427
|
+
pgo_mode=pgo_mode,
|
|
428
|
+
job_count=job_count,
|
|
429
|
+
onefile_compile=False,
|
|
430
|
+
)
|
|
431
|
+
|
|
432
|
+
|
|
433
|
+
# Avoid them as appearing to be different files. TODO: Find out which
|
|
434
|
+
# clang version has this, clang-8 does not.
|
|
435
|
+
if env.msvc_mode:
|
|
436
|
+
# With Clang on Windows, there is also an linker to use. spell-checker: ignore bigobj
|
|
437
|
+
env.Append(
|
|
438
|
+
CCFLAGS=[
|
|
439
|
+
"/EHsc", # No C++ exception handling code.
|
|
440
|
+
"/J", # default char type is unsigned.
|
|
441
|
+
"/Gd", # Use C calling convention by default.
|
|
442
|
+
"/bigobj", # Product object files with larger internal limits.
|
|
443
|
+
]
|
|
444
|
+
)
|
|
445
|
+
|
|
446
|
+
# No incremental linking.
|
|
447
|
+
env.Append(LINKFLAGS=["/INCREMENTAL:NO"])
|
|
448
|
+
|
|
449
|
+
if env.module_mode or env.dll_mode:
|
|
450
|
+
# Make sure we handle import library on our own and put it into the
|
|
451
|
+
# build directory, spell-checker: ignore IMPLIB
|
|
452
|
+
|
|
453
|
+
no_import_lib = True
|
|
454
|
+
env.Append(
|
|
455
|
+
LINKFLAGS=[
|
|
456
|
+
"/IMPLIB:%s" % os.path.join(source_dir, "import.lib"),
|
|
457
|
+
]
|
|
458
|
+
)
|
|
459
|
+
|
|
460
|
+
if env.exe_mode:
|
|
461
|
+
enableWindowsStackSize(env=env, target_arch=target_arch)
|
|
462
|
+
|
|
463
|
+
if env.debug_mode:
|
|
464
|
+
if env.gcc_mode:
|
|
465
|
+
# Allow gcc/clang to point out all kinds of inconsistency to us by
|
|
466
|
+
# raising an error.
|
|
467
|
+
|
|
468
|
+
env.Append(
|
|
469
|
+
CCFLAGS=[
|
|
470
|
+
# Unfortunately Py_INCREF(Py_False) triggers aliasing warnings,
|
|
471
|
+
# which are unfounded, so disable them.
|
|
472
|
+
"-Wno-error=strict-aliasing",
|
|
473
|
+
"-Wno-strict-aliasing",
|
|
474
|
+
# At least for self-compiled Python3.2, and MinGW this happens
|
|
475
|
+
# and has little use anyway.
|
|
476
|
+
"-Wno-error=format",
|
|
477
|
+
"-Wno-format",
|
|
478
|
+
]
|
|
479
|
+
)
|
|
480
|
+
|
|
481
|
+
elif env.msvc_mode:
|
|
482
|
+
# Disable warnings that system headers already show.
|
|
483
|
+
env.Append(
|
|
484
|
+
CCFLAGS=[
|
|
485
|
+
"/W4",
|
|
486
|
+
"/wd4505",
|
|
487
|
+
"/wd4127",
|
|
488
|
+
"/wd4100",
|
|
489
|
+
"/wd4702",
|
|
490
|
+
"/wd4189",
|
|
491
|
+
"/wd4211",
|
|
492
|
+
"/wd4115",
|
|
493
|
+
]
|
|
494
|
+
)
|
|
495
|
+
|
|
496
|
+
# Disable warnings, that CPython headers already show.
|
|
497
|
+
if python_version >= (3,):
|
|
498
|
+
env.Append(CCFLAGS=["/wd4512", "/wd4510", "/wd4610"])
|
|
499
|
+
|
|
500
|
+
if python_version >= (3, 13):
|
|
501
|
+
env.Append(CCFLAGS=["/wd4324"])
|
|
502
|
+
|
|
503
|
+
# We use null arrays in our structure Python declarations, which C11 does
|
|
504
|
+
# not really allow, but should work.
|
|
505
|
+
env.Append(CCFLAGS=["/wd4200"])
|
|
506
|
+
|
|
507
|
+
# Do not show deprecation warnings, we will use methods for as long
|
|
508
|
+
# as they work.
|
|
509
|
+
env.Append(CCFLAGS=["/wd4996"])
|
|
510
|
+
|
|
511
|
+
if full_compat_mode:
|
|
512
|
+
env.Append(CPPDEFINES=["_NUITKA_FULL_COMPAT"])
|
|
513
|
+
|
|
514
|
+
if profile_mode:
|
|
515
|
+
env.Append(CPPDEFINES=["_NUITKA_PROFILE"])
|
|
516
|
+
|
|
517
|
+
if trace_mode:
|
|
518
|
+
env.Append(CPPDEFINES=["_NUITKA_TRACE"])
|
|
519
|
+
|
|
520
|
+
if deployment_mode:
|
|
521
|
+
env.Append(CPPDEFINES=["_NUITKA_DEPLOYMENT_MODE"])
|
|
522
|
+
|
|
523
|
+
# We need "dl" in accelerated mode.
|
|
524
|
+
if "linux" in sys.platform:
|
|
525
|
+
env.Append(LIBS=["dl"])
|
|
526
|
+
|
|
527
|
+
if not env.msvc_mode:
|
|
528
|
+
env.Append(LIBS=["m"])
|
|
529
|
+
|
|
530
|
+
if python_debug:
|
|
531
|
+
env.Append(CPPDEFINES=["Py_DEBUG"])
|
|
532
|
+
|
|
533
|
+
if env.static_libpython:
|
|
534
|
+
env.Append(CPPDEFINES=["Py_NO_ENABLE_SHARED"])
|
|
535
|
+
|
|
536
|
+
|
|
537
|
+
def _detectPythonHeaderPath():
|
|
538
|
+
if os.name == "nt":
|
|
539
|
+
# On Windows, the CPython installation layout is relatively fixed, but on MSYS2
|
|
540
|
+
# compiled for mingw64, it's more standard.
|
|
541
|
+
|
|
542
|
+
candidates = [
|
|
543
|
+
os.path.join(python_prefix_external, "include"),
|
|
544
|
+
# On MSYS2 with MinGW64 Python, it is also the other form.
|
|
545
|
+
os.path.join(
|
|
546
|
+
python_prefix_external, "include", "python" + python_abi_version
|
|
547
|
+
),
|
|
548
|
+
]
|
|
549
|
+
else:
|
|
550
|
+
# The python header path is a combination of python version and debug
|
|
551
|
+
# indication, we make sure the headers are found by adding it to the C
|
|
552
|
+
# include path.
|
|
553
|
+
|
|
554
|
+
candidates = [
|
|
555
|
+
os.path.join(
|
|
556
|
+
python_prefix_external, "include", "python" + python_abi_version
|
|
557
|
+
),
|
|
558
|
+
# CPython source code checkout
|
|
559
|
+
os.path.join(python_prefix_external, "Include"),
|
|
560
|
+
# Haiku specific paths:
|
|
561
|
+
os.path.join(
|
|
562
|
+
python_prefix_external, "develop/headers", "python" + python_abi_version
|
|
563
|
+
),
|
|
564
|
+
]
|
|
565
|
+
|
|
566
|
+
# Not all Python versions, have the ABI version to use for the debug version.
|
|
567
|
+
if python_debug and "d" in python_abi_version:
|
|
568
|
+
candidates.append(
|
|
569
|
+
os.path.join(
|
|
570
|
+
python_prefix_external,
|
|
571
|
+
"include",
|
|
572
|
+
"python" + python_abi_version.replace("d", ""),
|
|
573
|
+
)
|
|
574
|
+
)
|
|
575
|
+
|
|
576
|
+
for candidate in candidates:
|
|
577
|
+
if os.path.exists(os.path.join(candidate, "Python.h")):
|
|
578
|
+
yield candidate
|
|
579
|
+
break
|
|
580
|
+
else:
|
|
581
|
+
if os.name == "nt":
|
|
582
|
+
scons_logger.sysexit(
|
|
583
|
+
"""\
|
|
584
|
+
Error, you seem to be using the unsupported embeddable CPython distribution \
|
|
585
|
+
use a full Python instead."""
|
|
586
|
+
)
|
|
587
|
+
else:
|
|
588
|
+
scons_logger.sysexit(
|
|
589
|
+
"""\
|
|
590
|
+
Error, no 'Python.h' %s headers can be found at '%s', dependency \
|
|
591
|
+
not satisfied!"""
|
|
592
|
+
% ("debug" if python_debug else "development", candidates)
|
|
593
|
+
)
|
|
594
|
+
|
|
595
|
+
if python_version >= (3, 13):
|
|
596
|
+
# spell-checker: ignore mimalloc
|
|
597
|
+
yield os.path.join(candidate, "internal", "mimalloc")
|
|
598
|
+
|
|
599
|
+
if env.self_compiled_python_uninstalled:
|
|
600
|
+
yield python_prefix_external
|
|
601
|
+
|
|
602
|
+
|
|
603
|
+
env.Append(CPPPATH=list(_detectPythonHeaderPath()))
|
|
604
|
+
|
|
605
|
+
# To support self-built Python on Windows, need to also add the "PC" directory,
|
|
606
|
+
# that a normal install won't have.
|
|
607
|
+
if os.name == "nt":
|
|
608
|
+
python_header_path = os.path.join(python_prefix_external, "PC")
|
|
609
|
+
|
|
610
|
+
if os.path.exists(python_header_path):
|
|
611
|
+
env.Append(CPPPATH=[python_header_path])
|
|
612
|
+
|
|
613
|
+
if env.nuitka_python:
|
|
614
|
+
env.Append(CPPDEFINES=["_NUITKA_PYTHON"])
|
|
615
|
+
|
|
616
|
+
if env.static_libpython:
|
|
617
|
+
env.Append(CPPDEFINES=["_NUITKA_STATIC_LIBPYTHON"])
|
|
618
|
+
|
|
619
|
+
if not gil_mode:
|
|
620
|
+
env.Append(CPPDEFINES="Py_GIL_DISABLED")
|
|
621
|
+
|
|
622
|
+
# TODO: This ought to be decided outside of scons and per flavor maybe.
|
|
623
|
+
if env.static_libpython and (
|
|
624
|
+
(not os.name == "nt" and not isMacOS()) or env.nuitka_python
|
|
625
|
+
):
|
|
626
|
+
env.Append(CPPDEFINES=["_NUITKA_USE_UNEXPOSED_API"])
|
|
627
|
+
|
|
628
|
+
if python_version >= (3, 12):
|
|
629
|
+
if env.static_libpython:
|
|
630
|
+
env.Append(
|
|
631
|
+
CPPPATH=[
|
|
632
|
+
os.path.join(env.nuitka_src, "inline_copy", "python_hacl", "hacl_312"),
|
|
633
|
+
os.path.join(
|
|
634
|
+
env.nuitka_src, "inline_copy", "python_hacl", "hacl_312", "include"
|
|
635
|
+
),
|
|
636
|
+
]
|
|
637
|
+
)
|
|
638
|
+
|
|
639
|
+
env.Append(CPPDEFINES=["_NUITKA_INLINE_COPY_HACL"])
|
|
640
|
+
|
|
641
|
+
# Remove it from static link libraries as well, if present, so far they are
|
|
642
|
+
# bugs and do not exist.
|
|
643
|
+
link_module_libs = [
|
|
644
|
+
link_module_lib
|
|
645
|
+
for link_module_lib in link_module_libs
|
|
646
|
+
if "libHacl_Hash_SHA2" not in link_module_lib
|
|
647
|
+
]
|
|
648
|
+
|
|
649
|
+
if os.name == "nt":
|
|
650
|
+
if env.nuitka_python:
|
|
651
|
+
link_data = loadJsonFromFilename(
|
|
652
|
+
os.path.join(python_prefix_external, "link.json")
|
|
653
|
+
)
|
|
654
|
+
env.Append(LIBS=link_data["libraries"])
|
|
655
|
+
env.Append(LIBPATH=link_data["library_dirs"])
|
|
656
|
+
for define, value in link_data["macros"]:
|
|
657
|
+
if value:
|
|
658
|
+
env.Append(CPPDEFINES=[define + "=" + value])
|
|
659
|
+
else:
|
|
660
|
+
env.Append(CPPDEFINES=[define])
|
|
661
|
+
|
|
662
|
+
if "link_flags" in link_data:
|
|
663
|
+
env.Append(LINKFLAGS=link_data["link_flags"])
|
|
664
|
+
if "compile_flags" in link_data:
|
|
665
|
+
env.Append(CFLAGS=link_data["compile_flags"])
|
|
666
|
+
elif env.gcc_mode and env.static_libpython:
|
|
667
|
+
env.Append(LIBS=[env.File(env.static_libpython)])
|
|
668
|
+
else:
|
|
669
|
+
# Some non CPython flavors on Windows have this.
|
|
670
|
+
def addWinLib():
|
|
671
|
+
# Make sure to locate the Python link library from multiple potential
|
|
672
|
+
# locations (installed vs. self-built).
|
|
673
|
+
if python_debug:
|
|
674
|
+
win_lib_name = "python" + python_abi_version.replace(".", "") + "_d"
|
|
675
|
+
else:
|
|
676
|
+
win_lib_name = "python" + python_abi_version.replace(".", "")
|
|
677
|
+
|
|
678
|
+
if python_version >= (3,):
|
|
679
|
+
pc_build_dir = (
|
|
680
|
+
"PCBuild/amd64" if target_arch == "x86_64" else "PCBuild/win32"
|
|
681
|
+
)
|
|
682
|
+
else:
|
|
683
|
+
pc_build_dir = "PCBuild"
|
|
684
|
+
|
|
685
|
+
for candidate in ("libs", pc_build_dir):
|
|
686
|
+
win_lib_path = os.path.join(python_prefix_external, candidate)
|
|
687
|
+
|
|
688
|
+
if os.path.exists(os.path.join(win_lib_path, win_lib_name + ".lib")):
|
|
689
|
+
break
|
|
690
|
+
else:
|
|
691
|
+
scons_logger.sysexit("Error, cannot find '%s.lib' file." % win_lib_name)
|
|
692
|
+
|
|
693
|
+
env.Append(LIBPATH=[win_lib_path])
|
|
694
|
+
env.Append(LIBS=[win_lib_name])
|
|
695
|
+
|
|
696
|
+
if not env.msys2_mingw_python:
|
|
697
|
+
addWinLib()
|
|
698
|
+
elif env.exe_mode or env.dll_mode:
|
|
699
|
+
# Add the python library path to the library path
|
|
700
|
+
if env.self_compiled_python_uninstalled:
|
|
701
|
+
python_lib_path = python_prefix_external
|
|
702
|
+
else:
|
|
703
|
+
python_lib_path = os.path.join(python_prefix_external, "lib")
|
|
704
|
+
|
|
705
|
+
env.Append(LIBPATH=[python_lib_path])
|
|
706
|
+
|
|
707
|
+
# Any module libs that are for self-compiled Python to be static.
|
|
708
|
+
env.Append(_LIBFLAGS=["-l" + lib_desc for lib_desc in link_module_libs])
|
|
709
|
+
|
|
710
|
+
if env.nuitka_python:
|
|
711
|
+
link_data = loadJsonFromFilename(
|
|
712
|
+
os.path.join(python_prefix_external, "link.json")
|
|
713
|
+
)
|
|
714
|
+
for lib in link_data["libraries"]:
|
|
715
|
+
# Need to prevent Scons from stripping .a from the passed in libs.
|
|
716
|
+
if lib.startswith(":") and lib.endswith(".a"):
|
|
717
|
+
env.Append(_LIBFLAGS=["-l" + lib])
|
|
718
|
+
elif os.path.isfile(lib):
|
|
719
|
+
env.Append(_LIBFLAGS=[lib])
|
|
720
|
+
else:
|
|
721
|
+
env.Append(LIBS=[lib])
|
|
722
|
+
env.Append(LIBPATH=link_data["library_dirs"])
|
|
723
|
+
for define, value in link_data["macros"]:
|
|
724
|
+
if value:
|
|
725
|
+
env.Append(CPPDEFINES=[define + "=" + value])
|
|
726
|
+
else:
|
|
727
|
+
env.Append(CPPDEFINES=[define])
|
|
728
|
+
|
|
729
|
+
if "link_flags" in link_data:
|
|
730
|
+
env.Append(LINKFLAGS=link_data["link_flags"])
|
|
731
|
+
if "compile_flags" in link_data:
|
|
732
|
+
env.Append(CFLAGS=link_data["compile_flags"])
|
|
733
|
+
elif env.static_libpython:
|
|
734
|
+
env.Append(LIBS=[env.File(env.static_libpython)])
|
|
735
|
+
|
|
736
|
+
# The linker won't succeed in searching for those for system Python of Debian
|
|
737
|
+
# compiled Pythons. Help that. spell-checker: ignore rdynamic,Xlinker,pthread
|
|
738
|
+
if python_prefix_external == "/usr" and isDebianBasedLinux():
|
|
739
|
+
env.Append(LIBS=["z", "m", "util", "pthread"])
|
|
740
|
+
|
|
741
|
+
if python_version >= (3,):
|
|
742
|
+
env.Append(LIBS=["expat"])
|
|
743
|
+
|
|
744
|
+
env.Append(LINKFLAGS=["-Xlinker", "-export-dynamic", "-rdynamic"])
|
|
745
|
+
|
|
746
|
+
if env.arch_python:
|
|
747
|
+
env.Append(LINKFLAGS=["-rdynamic"])
|
|
748
|
+
else:
|
|
749
|
+
# Fedora, Debian and Ubuntu distinguish the system libraries like this.
|
|
750
|
+
if (
|
|
751
|
+
python_debug
|
|
752
|
+
and python_prefix_external == "/usr"
|
|
753
|
+
and python_version < (3,)
|
|
754
|
+
and (isDebianBasedLinux() or isFedoraBasedLinux())
|
|
755
|
+
):
|
|
756
|
+
env.Append(LIBS=["python" + python_abi_version + "_d"])
|
|
757
|
+
else:
|
|
758
|
+
env.Append(LIBS=["python" + python_abi_version])
|
|
759
|
+
|
|
760
|
+
if python_prefix_external != "/usr" and "linux" in sys.platform:
|
|
761
|
+
env.Append(LIBS=["dl", "pthread", "util", "rt", "m"])
|
|
762
|
+
|
|
763
|
+
if env.gcc_mode:
|
|
764
|
+
if clang_mode:
|
|
765
|
+
env.Append(LINKFLAGS=["-Wl,--export-dynamic"])
|
|
766
|
+
else:
|
|
767
|
+
env.Append(LINKFLAGS=["-export-dynamic"])
|
|
768
|
+
|
|
769
|
+
# For NetBSD the rpath is required, on FreeBSD it's warned as unused, macOS
|
|
770
|
+
# and AIX don't have it, but some Python flavors like Standalone Python
|
|
771
|
+
# won't find it unless provided like this, so lets try to add this by
|
|
772
|
+
# default and remove OSes that give errors one by one.
|
|
773
|
+
if not isFreeBSD() and not isMacOS() and not isAIX():
|
|
774
|
+
env.Append(LINKFLAGS=["-Wl,-rpath=" + python_lib_path])
|
|
775
|
+
|
|
776
|
+
if isMacOS():
|
|
777
|
+
if env.module_mode or env.dll_mode:
|
|
778
|
+
# Dynamic lookup needed for extension modules.
|
|
779
|
+
env.Append(LINKFLAGS=["-undefined", "dynamic_lookup"])
|
|
780
|
+
else:
|
|
781
|
+
# For macOS we need to make sure install_name_tool can do its work
|
|
782
|
+
# spell-checker: ignore headerpad
|
|
783
|
+
env.Append(LINKFLAGS=["-headerpad_max_install_names"])
|
|
784
|
+
|
|
785
|
+
if env.android_termux_python:
|
|
786
|
+
# For Android Termux Python we need modules to link against the
|
|
787
|
+
# shared library of Python, different from all other ones.
|
|
788
|
+
|
|
789
|
+
if env.module_mode:
|
|
790
|
+
env.Append(_LIBFLAGS=["-lpython%s" % python_version_str])
|
|
791
|
+
|
|
792
|
+
# The static include files reside in Nuitka installation, which may be where
|
|
793
|
+
# the "nuitka.build" package lives.
|
|
794
|
+
nuitka_include = os.path.join(env.nuitka_src, "include")
|
|
795
|
+
|
|
796
|
+
if not os.path.exists(os.path.join(nuitka_include, "nuitka", "prelude.h")):
|
|
797
|
+
scons_logger.sysexit(
|
|
798
|
+
"Error, cannot locate Nuitka includes at '%s', this is a broken Nuitka installation."
|
|
799
|
+
% nuitka_include
|
|
800
|
+
)
|
|
801
|
+
|
|
802
|
+
# We have include files in the build directory and the static include directory
|
|
803
|
+
# that is located inside Nuitka installation.
|
|
804
|
+
env.Append(
|
|
805
|
+
CPPPATH=[
|
|
806
|
+
source_dir,
|
|
807
|
+
nuitka_include,
|
|
808
|
+
os.path.join(env.nuitka_src, "static_src"),
|
|
809
|
+
os.path.join(env.nuitka_src, "inline_copy", "libbacktrace"),
|
|
810
|
+
]
|
|
811
|
+
)
|
|
812
|
+
|
|
813
|
+
# Set load libpython from binary directory default
|
|
814
|
+
if (
|
|
815
|
+
env.gcc_mode
|
|
816
|
+
and not isMacOS()
|
|
817
|
+
and not isAIX()
|
|
818
|
+
and not os.name == "nt"
|
|
819
|
+
and (env.exe_mode or env.dll_mode)
|
|
820
|
+
):
|
|
821
|
+
# TODO: It would appear that this should be merged with above code that does
|
|
822
|
+
# env.Append(LINKFLAGS=["-Wl,-rpath=" + python_lib_path]) relatively
|
|
823
|
+
# unconditionally already.
|
|
824
|
+
if env.standalone_mode:
|
|
825
|
+
rpath = "$$ORIGIN"
|
|
826
|
+
else:
|
|
827
|
+
rpath = python_lib_path
|
|
828
|
+
|
|
829
|
+
env.Append(LINKFLAGS=["-Wl,-R,'%s'" % rpath])
|
|
830
|
+
|
|
831
|
+
# The rpath is no longer used unless we do this on modern Linux. The
|
|
832
|
+
# option name is not very revealing, but basically without this, the
|
|
833
|
+
# rpath in the binary will be ignored by the loader.
|
|
834
|
+
# spell-checker: ignore dtags
|
|
835
|
+
if "linux" in sys.platform:
|
|
836
|
+
env.Append(LINKFLAGS=["-Wl,--disable-new-dtags"])
|
|
837
|
+
|
|
838
|
+
|
|
839
|
+
addConstantBlobFile(
|
|
840
|
+
env=env,
|
|
841
|
+
resource_desc=decideConstantsBlobResourceMode(env=env),
|
|
842
|
+
blob_filename=getConstantBlobFilename(env.source_dir),
|
|
843
|
+
target_arch=target_arch,
|
|
844
|
+
)
|
|
845
|
+
|
|
846
|
+
env.Append(CPPDEFINES=["_NUITKA_FROZEN=%d" % frozen_modules])
|
|
847
|
+
|
|
848
|
+
# Tell compiler to create a shared library or program.
|
|
849
|
+
if env.exe_mode:
|
|
850
|
+
if env.msvc_mode:
|
|
851
|
+
# For complete outputs, we have to match the C runtime of the Python DLL, if any,
|
|
852
|
+
# for Nuitka-Python there is of course none.
|
|
853
|
+
if not env.nuitka_python and (
|
|
854
|
+
forced_stdout_path not in ("{NONE}", "{NULL}", None)
|
|
855
|
+
or forced_stderr_path not in ("{NONE}", "{NULL}", None)
|
|
856
|
+
):
|
|
857
|
+
env.Append(CCFLAGS=["/MD"]) # Multithreaded, dynamic version of C run time.
|
|
858
|
+
else:
|
|
859
|
+
env.Append(CCFLAGS=["/MT"]) # Multithreaded, static version of C run time.
|
|
860
|
+
else:
|
|
861
|
+
if isGccName(env.the_cc_name):
|
|
862
|
+
env.Append(CCFLAGS=["-shared"])
|
|
863
|
+
elif env.clang_mode:
|
|
864
|
+
pass
|
|
865
|
+
elif env.msvc_mode:
|
|
866
|
+
env.Append(CCFLAGS=["/LD"]) # Create a DLL.
|
|
867
|
+
else:
|
|
868
|
+
assert False, env.the_cc_name
|
|
869
|
+
|
|
870
|
+
|
|
871
|
+
def discoverSourceFiles():
|
|
872
|
+
result = []
|
|
873
|
+
|
|
874
|
+
# Scan for Nuitka created source files, and add them too.
|
|
875
|
+
result.extend(scanSourceDir(env=env, dirname=source_dir, plugins=False))
|
|
876
|
+
result.extend(
|
|
877
|
+
scanSourceDir(
|
|
878
|
+
env=env,
|
|
879
|
+
dirname=os.path.join(source_dir, "plugins"),
|
|
880
|
+
plugins=True,
|
|
881
|
+
)
|
|
882
|
+
)
|
|
883
|
+
|
|
884
|
+
static_src_filenames = []
|
|
885
|
+
|
|
886
|
+
# Main program, unless of course it's a Python module/package we build.
|
|
887
|
+
if env.exe_mode:
|
|
888
|
+
static_src_filenames.append("MainProgram.c")
|
|
889
|
+
|
|
890
|
+
# TODO: Should have its dedicated file rather, since DLLs must not do
|
|
891
|
+
# a lot of things.
|
|
892
|
+
if env.dll_mode:
|
|
893
|
+
static_src_filenames.append("MainProgram.c")
|
|
894
|
+
|
|
895
|
+
# Compiled types.
|
|
896
|
+
static_src_filenames.append("CompiledFunctionType.c")
|
|
897
|
+
|
|
898
|
+
result += [
|
|
899
|
+
provideStaticSourceFile(
|
|
900
|
+
env=env,
|
|
901
|
+
sub_path=filename,
|
|
902
|
+
c11_mode=env.c11_mode,
|
|
903
|
+
)
|
|
904
|
+
for filename in static_src_filenames
|
|
905
|
+
]
|
|
906
|
+
|
|
907
|
+
return result
|
|
908
|
+
|
|
909
|
+
|
|
910
|
+
source_files = discoverSourceFiles()
|
|
911
|
+
|
|
912
|
+
# Remove the target file to avoid cases where it falsely doesn't get rebuild and
|
|
913
|
+
# then lingers from previous builds, and also workaround for MinGW64 not
|
|
914
|
+
# supporting unicode result paths for "-o" basename.
|
|
915
|
+
result_exe = makeResultPathFileSystemEncodable(env=env, result_exe=result_exe)
|
|
916
|
+
|
|
917
|
+
|
|
918
|
+
if env.module_mode:
|
|
919
|
+
# For Python modules, the standard shared library extension is not what gets
|
|
920
|
+
# used. spell-checker: ignore SHLIBSUFFIX
|
|
921
|
+
module_suffix = getFilenameExtension(result_exe)
|
|
922
|
+
result_base_path = changeFilenameExtension(result_exe, "")
|
|
923
|
+
|
|
924
|
+
extra_suffix = getFilenameExtension(result_base_path)
|
|
925
|
+
if extra_suffix != "":
|
|
926
|
+
module_suffix = extra_suffix + module_suffix
|
|
927
|
+
result_base_path = changeFilenameExtension(result_base_path, "")
|
|
928
|
+
|
|
929
|
+
assert getFilenameExtension(result_base_path) == "", result_base_path
|
|
930
|
+
|
|
931
|
+
env["SHLIBSUFFIX"] = module_suffix
|
|
932
|
+
|
|
933
|
+
target = env.SharedLibrary(
|
|
934
|
+
result_base_path, source_files, no_import_lib=no_import_lib
|
|
935
|
+
)
|
|
936
|
+
elif env.dll_mode:
|
|
937
|
+
module_suffix = getFilenameExtension(result_exe)
|
|
938
|
+
result_base_path = changeFilenameExtension(result_exe, "")
|
|
939
|
+
env["SHLIBSUFFIX"] = module_suffix
|
|
940
|
+
|
|
941
|
+
target = env.SharedLibrary(
|
|
942
|
+
result_base_path, source_files, no_import_lib=no_import_lib
|
|
943
|
+
)
|
|
944
|
+
else:
|
|
945
|
+
target = env.Program(result_exe, source_files)
|
|
946
|
+
|
|
947
|
+
# Use compiler/linker flags provided via environment variables
|
|
948
|
+
importEnvironmentVariableSettings(env)
|
|
949
|
+
|
|
950
|
+
|
|
951
|
+
if job_count:
|
|
952
|
+
scons_details_logger.info("Told to run compilation on %d CPUs." % job_count)
|
|
953
|
+
|
|
954
|
+
|
|
955
|
+
def createBuildDefinitionsFile():
|
|
956
|
+
build_definitions = {}
|
|
957
|
+
|
|
958
|
+
if uninstalled_python and not env.static_libpython:
|
|
959
|
+
# Use the non-external one, so it's not a short path.
|
|
960
|
+
build_definitions["PYTHON_HOME_PATH"] = python_prefix
|
|
961
|
+
|
|
962
|
+
build_definitions["NO_PYTHON_WARNINGS"] = 1 if no_python_warnings else 0
|
|
963
|
+
|
|
964
|
+
if python_version < (3,):
|
|
965
|
+
build_definitions["SYSFLAG_PY3K_WARNING"] = (
|
|
966
|
+
1 if python_sysflag_py3k_warning else 0
|
|
967
|
+
)
|
|
968
|
+
|
|
969
|
+
build_definitions["SYSFLAG_DIVISION_WARNING"] = (
|
|
970
|
+
1 if python_sysflag_division_warning else 0
|
|
971
|
+
)
|
|
972
|
+
|
|
973
|
+
build_definitions["SYSFLAG_UNICODE"] = 1 if python_sysflag_unicode else 0
|
|
974
|
+
|
|
975
|
+
build_definitions["SYSFLAG_BYTES_WARNING"] = (
|
|
976
|
+
1 if python_sysflag_bytes_warning else 0
|
|
977
|
+
)
|
|
978
|
+
|
|
979
|
+
build_definitions["SYSFLAG_NO_SITE"] = 1 if python_sysflag_no_site else 0
|
|
980
|
+
|
|
981
|
+
build_definitions["SYSFLAG_VERBOSE"] = 1 if python_sysflag_verbose else 0
|
|
982
|
+
|
|
983
|
+
build_definitions["SYSFLAG_UTF8"] = 1 if python_sysflag_utf8 else 0
|
|
984
|
+
|
|
985
|
+
build_definitions["SYSFLAG_OPTIMIZE"] = python_sysflag_optimize
|
|
986
|
+
|
|
987
|
+
build_definitions["SYSFLAG_DONTWRITEBYTECODE"] = (
|
|
988
|
+
1 if python_sysflag_dontwritebytecode else 0
|
|
989
|
+
)
|
|
990
|
+
|
|
991
|
+
build_definitions["_NUITKA_NO_ASSERTS"] = 1 if python_flag_no_asserts else 0
|
|
992
|
+
|
|
993
|
+
build_definitions["_NUITKA_NO_DOCSTRINGS"] = 1 if python_flag_no_docstrings else 0
|
|
994
|
+
|
|
995
|
+
build_definitions["_NUITKA_NO_ANNOTATIONS"] = 1 if python_flag_no_annotations else 0
|
|
996
|
+
|
|
997
|
+
build_definitions["SYSFLAG_NO_RANDOMIZATION"] = (
|
|
998
|
+
1 if python_sysflag_no_randomization else 0
|
|
999
|
+
)
|
|
1000
|
+
|
|
1001
|
+
build_definitions["SYSFLAG_UNBUFFERED"] = 1 if python_sysflag_unbuffered else 0
|
|
1002
|
+
|
|
1003
|
+
build_definitions["SYSFLAG_DONTWRITEBYTECODE"] = (
|
|
1004
|
+
1 if python_sysflag_dontwritebytecode else 0
|
|
1005
|
+
)
|
|
1006
|
+
|
|
1007
|
+
build_definitions["SYSFLAG_SAFE_PATH"] = 1 if python_sysflag_safe_path else 0
|
|
1008
|
+
|
|
1009
|
+
build_definitions["SYSFLAG_ISOLATED"] = 1 if python_sysflag_isolated else 0
|
|
1010
|
+
|
|
1011
|
+
if forced_stdout_path:
|
|
1012
|
+
if forced_stdout_path == "{NONE}":
|
|
1013
|
+
build_definitions["NUITKA_FORCED_STDOUT_NONE_BOOL"] = 1
|
|
1014
|
+
elif forced_stdout_path == "{NULL}":
|
|
1015
|
+
build_definitions["NUITKA_FORCED_STDOUT_NULL_BOOL"] = 1
|
|
1016
|
+
else:
|
|
1017
|
+
build_definitions["NUITKA_FORCED_STDOUT_PATH"] = forced_stdout_path
|
|
1018
|
+
|
|
1019
|
+
if forced_stderr_path:
|
|
1020
|
+
if forced_stderr_path == "{NONE}":
|
|
1021
|
+
build_definitions["NUITKA_FORCED_STDERR_NONE_BOOL"] = 1
|
|
1022
|
+
elif forced_stderr_path == "{NULL}":
|
|
1023
|
+
build_definitions["NUITKA_FORCED_STDERR_NULL_BOOL"] = 1
|
|
1024
|
+
else:
|
|
1025
|
+
build_definitions["NUITKA_FORCED_STDERR_PATH"] = forced_stderr_path
|
|
1026
|
+
|
|
1027
|
+
build_definitions["NUITKA_MAIN_MODULE_NAME"] = main_module_name
|
|
1028
|
+
build_definitions["NUITKA_MAIN_IS_PACKAGE_BOOL"] = main_module_name != "__main__"
|
|
1029
|
+
|
|
1030
|
+
createDefinitionsFile(source_dir, "build_definitions.h", build_definitions)
|
|
1031
|
+
|
|
1032
|
+
|
|
1033
|
+
if forced_stderr_path and not forced_stdout_path:
|
|
1034
|
+
env.Append(CPPDEFINES=["NUITKA_STDERR_NOT_VISIBLE"])
|
|
1035
|
+
|
|
1036
|
+
if file_reference_mode == "original":
|
|
1037
|
+
env.Append(CPPDEFINES=["_NUITKA_FILE_REFERENCE_ORIGINAL_MODE"])
|
|
1038
|
+
|
|
1039
|
+
|
|
1040
|
+
createBuildDefinitionsFile()
|
|
1041
|
+
|
|
1042
|
+
# The meta path based loader might want to respect that, so it does verbose traces in module
|
|
1043
|
+
# mode, mostly for debugging purposes only.
|
|
1044
|
+
if env.module_mode and python_sysflag_verbose:
|
|
1045
|
+
env.Append(CPPDEFINES=["_NUITKA_SYSFLAG_VERBOSE=1"])
|
|
1046
|
+
|
|
1047
|
+
# Hack to make Scons use tempfile for gcc linking, to avoid line length limits,
|
|
1048
|
+
# which can make linking fail with many modules otherwise. Most needed on Windows,
|
|
1049
|
+
# but useful on other platforms too.
|
|
1050
|
+
if env.gcc_mode:
|
|
1051
|
+
makeGccUseLinkerFile(
|
|
1052
|
+
env=env,
|
|
1053
|
+
source_files=source_files,
|
|
1054
|
+
)
|
|
1055
|
+
|
|
1056
|
+
# Plugin contributed C defines should be used too.
|
|
1057
|
+
env.Append(CPPDEFINES=cpp_defines)
|
|
1058
|
+
# Plugin contributed C include directories should be used too.
|
|
1059
|
+
env.Append(CPPPATH=cpp_include_dirs)
|
|
1060
|
+
# Plugin contributed link dirs should be used too.
|
|
1061
|
+
env.Append(LIBPATH=link_dirs)
|
|
1062
|
+
# Plugin contributed link libraries should be used too.
|
|
1063
|
+
env.Append(LIBS=link_libraries)
|
|
1064
|
+
|
|
1065
|
+
# Work around windows bugs and use watchdogs to track progress of compilation.
|
|
1066
|
+
enableSpawnMonitoring(
|
|
1067
|
+
env=env,
|
|
1068
|
+
source_files=source_files,
|
|
1069
|
+
)
|
|
1070
|
+
|
|
1071
|
+
# Before we go, also lets turn KeyboardInterrupt into a mere error exit as the
|
|
1072
|
+
# scons traceback is not going to be very interesting to us.
|
|
1073
|
+
changeKeyboardInterruptToErrorExit()
|
|
1074
|
+
|
|
1075
|
+
# Check if ccache is installed, and complain if it is not.
|
|
1076
|
+
if env.gcc_mode:
|
|
1077
|
+
enableCcache(
|
|
1078
|
+
env=env,
|
|
1079
|
+
source_dir=source_dir,
|
|
1080
|
+
python_prefix=python_prefix_external,
|
|
1081
|
+
assume_yes_for_downloads=assume_yes_for_downloads,
|
|
1082
|
+
disable_ccache=disable_ccache,
|
|
1083
|
+
)
|
|
1084
|
+
|
|
1085
|
+
if env.msvc_mode and not disable_ccache:
|
|
1086
|
+
enableClcache(
|
|
1087
|
+
env=env,
|
|
1088
|
+
source_dir=source_dir,
|
|
1089
|
+
)
|
|
1090
|
+
|
|
1091
|
+
writeSconsReport(env=env, target=target)
|
|
1092
|
+
|
|
1093
|
+
setSconsProgressBarTotal(name=env.progressbar_name, total=len(source_files))
|
|
1094
|
+
|
|
1095
|
+
scons_details_logger.info("Launching Scons target: %s" % target)
|
|
1096
|
+
env.Default(target)
|
|
1097
|
+
|
|
1098
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
1099
|
+
# integrates with CPython, but also works on its own.
|
|
1100
|
+
#
|
|
1101
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
1102
|
+
# you may not use this file except in compliance with the License.
|
|
1103
|
+
# You may obtain a copy of the License at
|
|
1104
|
+
#
|
|
1105
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
1106
|
+
#
|
|
1107
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
1108
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
1109
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1110
|
+
# See the License for the specific language governing permissions and
|
|
1111
|
+
# limitations under the License.
|