Nuitka-winsvc 2.5.6__cp311-cp311-win_amd64.whl → 2.6__cp311-cp311-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_winsvc-2.5.6.data → Nuitka_winsvc-2.6.data}/scripts/nuitka-run.cmd +1 -1
- {Nuitka_winsvc-2.5.6.data → Nuitka_winsvc-2.6.data}/scripts/nuitka.cmd +1 -1
- {Nuitka_winsvc-2.5.6.dist-info → Nuitka_winsvc-2.6.dist-info}/METADATA +36 -24
- Nuitka_winsvc-2.6.dist-info/RECORD +988 -0
- {Nuitka_winsvc-2.5.6.dist-info → Nuitka_winsvc-2.6.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +1 -1
- nuitka/BytecodeCaching.py +1 -1
- nuitka/Bytecodes.py +1 -1
- nuitka/CacheCleanup.py +1 -1
- nuitka/Constants.py +1 -1
- nuitka/Errors.py +1 -1
- nuitka/HardImportRegistry.py +1 -1
- nuitka/MainControl.py +93 -94
- nuitka/ModuleRegistry.py +1 -1
- nuitka/OptionParsing.py +86 -17
- nuitka/Options.py +146 -48
- nuitka/OutputDirectories.py +5 -3
- nuitka/PostProcessing.py +76 -27
- nuitka/Progress.py +1 -1
- nuitka/PythonFlavors.py +9 -3
- nuitka/PythonOperators.py +1 -1
- nuitka/PythonVersions.py +8 -4
- nuitka/Serialization.py +1 -1
- nuitka/SourceCodeReferences.py +1 -1
- nuitka/Tracing.py +2 -1
- nuitka/TreeXML.py +1 -1
- nuitka/Variables.py +1 -1
- nuitka/Version.py +2 -2
- nuitka/__init__.py +1 -1
- nuitka/__main__.py +4 -1
- nuitka/__past__.py +1 -1
- nuitka/build/Backend.scons +44 -66
- nuitka/build/CCompilerVersion.scons +2 -1
- nuitka/build/DataComposerInterface.py +2 -1
- nuitka/build/Offsets.scons +644 -0
- nuitka/build/Onefile.scons +5 -13
- nuitka/build/SconsCaching.py +9 -7
- nuitka/build/SconsCompilerSettings.py +54 -31
- nuitka/build/SconsHacks.py +3 -3
- nuitka/build/SconsInterface.py +85 -57
- nuitka/build/SconsProgress.py +12 -5
- nuitka/build/SconsSpawn.py +3 -3
- nuitka/build/SconsUtils.py +20 -1
- nuitka/build/__init__.py +1 -1
- nuitka/build/include/nuitka/allocator.h +3 -1
- nuitka/build/include/nuitka/builtins.h +1 -1
- nuitka/build/include/nuitka/calling.h +1 -1
- nuitka/build/include/nuitka/checkers.h +1 -1
- nuitka/build/include/nuitka/checksum_tools.h +1 -1
- nuitka/build/include/nuitka/compiled_asyncgen.h +4 -2
- nuitka/build/include/nuitka/compiled_cell.h +1 -1
- nuitka/build/include/nuitka/compiled_coroutine.h +3 -2
- nuitka/build/include/nuitka/compiled_frame.h +5 -12
- nuitka/build/include/nuitka/compiled_function.h +2 -3
- nuitka/build/include/nuitka/compiled_generator.h +3 -2
- nuitka/build/include/nuitka/compiled_method.h +1 -1
- nuitka/build/include/nuitka/constants.h +5 -1
- nuitka/build/include/nuitka/constants_blob.h +1 -1
- nuitka/build/include/nuitka/debug_settings.h +1 -1
- nuitka/build/include/nuitka/environment_variables.h +1 -1
- nuitka/build/include/nuitka/environment_variables_system.h +1 -1
- nuitka/build/include/nuitka/exception_groups.h +1 -1
- nuitka/build/include/nuitka/exceptions.h +1 -1
- nuitka/build/include/nuitka/filesystem_paths.h +4 -1
- nuitka/build/include/nuitka/freelists.h +2 -2
- nuitka/build/include/nuitka/helper/attributes.h +1 -1
- nuitka/build/include/nuitka/helper/boolean.h +1 -1
- nuitka/build/include/nuitka/helper/bytearrays.h +1 -1
- nuitka/build/include/nuitka/helper/bytes.h +1 -1
- nuitka/build/include/nuitka/helper/calling_generated.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_dual_le.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_eq.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_ge.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_gt.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_le.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_lt.h +1 -1
- nuitka/build/include/nuitka/helper/comparisons_ne.h +1 -1
- nuitka/build/include/nuitka/helper/complex.h +1 -1
- nuitka/build/include/nuitka/helper/dictionaries.h +1 -1
- nuitka/build/include/nuitka/helper/floats.h +1 -1
- nuitka/build/include/nuitka/helper/import_hard.h +1 -1
- nuitka/build/include/nuitka/helper/indexes.h +1 -1
- nuitka/build/include/nuitka/helper/ints.h +1 -1
- nuitka/build/include/nuitka/helper/iterators.h +1 -1
- nuitka/build/include/nuitka/helper/lists.h +1 -1
- nuitka/build/include/nuitka/helper/lists_generated.h +1 -1
- nuitka/build/include/nuitka/helper/mappings.h +1 -1
- nuitka/build/include/nuitka/helper/operations.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_add.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_bitand.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_bitor.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_divmod.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_lshift.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_matmult.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_mod.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_mult.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_pow.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_rshift.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +1 -1
- nuitka/build/include/nuitka/helper/operations_binary_truediv.h +1 -1
- nuitka/build/include/nuitka/helper/operations_builtin_types.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_mod.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_mult.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_pow.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +1 -1
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +1 -1
- nuitka/build/include/nuitka/helper/raising.h +1 -1
- nuitka/build/include/nuitka/helper/rangeobjects.h +1 -1
- nuitka/build/include/nuitka/helper/richcomparisons.h +1 -1
- nuitka/build/include/nuitka/helper/sequences.h +1 -1
- nuitka/build/include/nuitka/helper/sets.h +1 -1
- nuitka/build/include/nuitka/helper/slices.h +1 -1
- nuitka/build/include/nuitka/helper/strings.h +1 -1
- nuitka/build/include/nuitka/helper/subscripts.h +1 -1
- nuitka/build/include/nuitka/helper/tuples.h +1 -1
- nuitka/build/include/nuitka/helpers.h +1 -43
- nuitka/build/include/nuitka/importing.h +1 -1
- nuitka/build/include/nuitka/jit_sources.h +1 -1
- nuitka/build/include/nuitka/prelude.h +10 -10
- nuitka/build/include/nuitka/printing.h +1 -1
- nuitka/build/include/nuitka/python_pgo.h +1 -1
- nuitka/build/include/nuitka/safe_string_ops.h +1 -1
- nuitka/build/include/nuitka/threading.h +1 -1
- nuitka/build/include/nuitka/tracing.h +1 -1
- nuitka/build/include/nuitka/type_aliases.h +1 -1
- nuitka/build/include/nuitka/unfreezing.h +1 -1
- nuitka/build/inline_copy/pefile/LICENSE.txt +21 -0
- nuitka/build/inline_copy/pefile/pefile.py +8034 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +85 -71
- nuitka/build/static_src/CompiledCellType.c +2 -1
- nuitka/build/static_src/CompiledCodeHelpers.c +6 -26
- nuitka/build/static_src/CompiledCoroutineType.c +32 -34
- nuitka/build/static_src/CompiledFrameType.c +63 -5
- nuitka/build/static_src/CompiledFunctionType.c +11 -13
- nuitka/build/static_src/CompiledGeneratorType.c +64 -11
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +1 -1
- nuitka/build/static_src/CompiledMethodType.c +2 -1
- nuitka/build/static_src/GenerateHeadersMain.c +30 -0
- nuitka/build/static_src/HelpersAllocator.c +1 -1
- nuitka/build/static_src/HelpersAttributes.c +5 -2
- nuitka/build/static_src/HelpersBuiltin.c +1 -1
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +1 -1
- nuitka/build/static_src/HelpersBytes.c +1 -1
- nuitka/build/static_src/HelpersCalling.c +1 -1
- nuitka/build/static_src/HelpersCallingGenerated.c +6 -16
- nuitka/build/static_src/HelpersChecksumTools.c +1 -1
- nuitka/build/static_src/HelpersClasses.c +1 -1
- nuitka/build/static_src/HelpersComparisonDualEq.c +1 -1
- nuitka/build/static_src/HelpersComparisonDualGe.c +1 -1
- nuitka/build/static_src/HelpersComparisonDualGt.c +1 -1
- nuitka/build/static_src/HelpersComparisonDualLe.c +1 -1
- nuitka/build/static_src/HelpersComparisonDualLt.c +1 -1
- nuitka/build/static_src/HelpersComparisonDualNe.c +1 -1
- nuitka/build/static_src/HelpersComparisonEq.c +1 -1
- nuitka/build/static_src/HelpersComparisonEqUtils.c +1 -1
- nuitka/build/static_src/HelpersComparisonGe.c +1 -1
- nuitka/build/static_src/HelpersComparisonGt.c +1 -1
- nuitka/build/static_src/HelpersComparisonLe.c +1 -1
- nuitka/build/static_src/HelpersComparisonLt.c +1 -1
- nuitka/build/static_src/HelpersComparisonNe.c +1 -1
- nuitka/build/static_src/HelpersConsole.c +1 -1
- nuitka/build/static_src/HelpersConstantsBlob.c +199 -50
- nuitka/build/static_src/HelpersDeepcopy.c +3 -1
- nuitka/build/static_src/HelpersDictionaries.c +1 -1
- nuitka/build/static_src/HelpersDictionariesGenerated.c +1 -1
- nuitka/build/static_src/HelpersDumpBacktraces.c +1 -1
- nuitka/build/static_src/HelpersEnvironmentVariables.c +1 -1
- nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +1 -1
- nuitka/build/static_src/HelpersExceptions.c +1 -1
- nuitka/build/static_src/HelpersFiles.c +18 -10
- nuitka/build/static_src/HelpersFilesystemPaths.c +36 -16
- nuitka/build/static_src/HelpersFloats.c +1 -1
- nuitka/build/static_src/HelpersHeapStorage.c +1 -1
- nuitka/build/static_src/HelpersImport.c +1 -1
- nuitka/build/static_src/HelpersImportHard.c +1 -1
- nuitka/build/static_src/HelpersJitSources.c +1 -1
- nuitka/build/static_src/HelpersLists.c +2 -1
- nuitka/build/static_src/HelpersListsGenerated.c +1 -1
- nuitka/build/static_src/HelpersMappings.c +1 -1
- nuitka/build/static_src/HelpersMatching.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryMod.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryMult.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryPow.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +1 -1
- nuitka/build/static_src/HelpersOperationBinarySub.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceMod.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceMult.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +1 -1
- nuitka/build/static_src/HelpersOperationInplacePow.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceSub.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +1 -1
- nuitka/build/static_src/HelpersProfiling.c +1 -1
- nuitka/build/static_src/HelpersPythonPgo.c +5 -2
- nuitka/build/static_src/HelpersRaising.c +1 -1
- nuitka/build/static_src/HelpersSafeStrings.c +1 -1
- nuitka/build/static_src/HelpersSequences.c +1 -1
- nuitka/build/static_src/HelpersSlices.c +1 -1
- nuitka/build/static_src/HelpersStrings.c +1 -1
- nuitka/build/static_src/HelpersTuples.c +1 -1
- nuitka/build/static_src/HelpersTypes.c +1 -1
- nuitka/build/static_src/InspectPatcher.c +2 -1
- nuitka/build/static_src/MainProgram.c +6 -6
- nuitka/build/static_src/MetaPathBasedLoader.c +2 -1
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +1 -1
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +1 -1
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +17 -4
- nuitka/build/static_src/OnefileBootstrap.c +3 -3
- nuitka/build/static_src/OnefileSplashScreen.cpp +1 -1
- nuitka/code_generation/AsyncgenCodes.py +5 -6
- nuitka/code_generation/AttributeCodes.py +1 -1
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +1 -1
- nuitka/code_generation/BranchCodes.py +1 -1
- nuitka/code_generation/BuiltinCodes.py +15 -5
- nuitka/code_generation/CallCodes.py +1 -1
- nuitka/code_generation/ClassCodes.py +1 -1
- nuitka/code_generation/CodeGeneration.py +23 -17
- nuitka/code_generation/CodeHelperSelection.py +1 -1
- nuitka/code_generation/CodeHelpers.py +1 -1
- nuitka/code_generation/CodeObjectCodes.py +19 -2
- nuitka/code_generation/ComparisonCodes.py +1 -1
- nuitka/code_generation/ComparisonHelperDefinitions.py +1 -1
- nuitka/code_generation/ConditionalCodes.py +1 -1
- nuitka/code_generation/ConstantCodes.py +1 -1
- nuitka/code_generation/Contexts.py +52 -39
- nuitka/code_generation/CoroutineCodes.py +4 -5
- nuitka/code_generation/CtypesCodes.py +1 -1
- nuitka/code_generation/DictCodes.py +1 -1
- nuitka/code_generation/Emission.py +1 -1
- nuitka/code_generation/ErrorCodes.py +1 -1
- nuitka/code_generation/EvalCodes.py +1 -1
- nuitka/code_generation/ExceptionCodes.py +1 -1
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +1 -1
- nuitka/code_generation/ExpressionCodes.py +1 -1
- nuitka/code_generation/FrameCodes.py +26 -17
- nuitka/code_generation/FunctionCodes.py +9 -15
- nuitka/code_generation/GeneratorCodes.py +9 -10
- nuitka/code_generation/GlobalConstants.py +6 -4
- nuitka/code_generation/GlobalsLocalsCodes.py +1 -1
- nuitka/code_generation/IdCodes.py +1 -1
- nuitka/code_generation/ImportCodes.py +1 -1
- nuitka/code_generation/Indentation.py +1 -1
- nuitka/code_generation/IndexCodes.py +1 -1
- nuitka/code_generation/InjectCCodes.py +1 -1
- nuitka/code_generation/IntegerCodes.py +1 -1
- nuitka/code_generation/IteratorCodes.py +1 -1
- nuitka/code_generation/JitCodes.py +1 -1
- nuitka/code_generation/LabelCodes.py +1 -1
- nuitka/code_generation/LineNumberCodes.py +1 -1
- nuitka/code_generation/ListCodes.py +1 -1
- nuitka/code_generation/LoaderCodes.py +1 -1
- nuitka/code_generation/LocalsDictCodes.py +1 -1
- nuitka/code_generation/LoopCodes.py +1 -1
- nuitka/code_generation/MatchCodes.py +1 -1
- nuitka/code_generation/ModuleCodes.py +31 -4
- nuitka/code_generation/Namify.py +4 -1
- nuitka/code_generation/NetworkxCodes.py +1 -1
- nuitka/code_generation/OperationCodes.py +1 -1
- nuitka/code_generation/PackageResourceCodes.py +4 -10
- nuitka/code_generation/PrintCodes.py +1 -1
- nuitka/code_generation/PythonAPICodes.py +1 -1
- nuitka/code_generation/RaisingCodes.py +1 -1
- nuitka/code_generation/Reports.py +1 -1
- nuitka/code_generation/ReturnCodes.py +1 -1
- nuitka/code_generation/SetCodes.py +1 -1
- nuitka/code_generation/SliceCodes.py +1 -1
- nuitka/code_generation/StringCodes.py +1 -1
- nuitka/code_generation/SubscriptCodes.py +1 -1
- nuitka/code_generation/TensorflowCodes.py +1 -1
- nuitka/code_generation/TryCodes.py +1 -1
- nuitka/code_generation/TupleCodes.py +1 -1
- nuitka/code_generation/TypeAliasCodes.py +1 -1
- nuitka/code_generation/VariableCodes.py +1 -1
- nuitka/code_generation/VariableDeclarations.py +1 -1
- nuitka/code_generation/YieldCodes.py +1 -1
- nuitka/code_generation/__init__.py +1 -1
- nuitka/code_generation/c_types/CTypeBases.py +1 -1
- nuitka/code_generation/c_types/CTypeBooleans.py +1 -1
- nuitka/code_generation/c_types/CTypeCFloats.py +1 -1
- nuitka/code_generation/c_types/CTypeCLongs.py +1 -1
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +1 -1
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +1 -1
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +1 -1
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +1 -1
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +1 -1
- nuitka/code_generation/c_types/CTypeVoids.py +1 -1
- nuitka/code_generation/c_types/__init__.py +1 -1
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +1 -1
- nuitka/code_generation/templates/CodeTemplatesConstants.py +2 -2
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +1 -1
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +1 -1
- nuitka/code_generation/templates/CodeTemplatesFrames.py +21 -25
- nuitka/code_generation/templates/CodeTemplatesFunction.py +1 -1
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +3 -3
- nuitka/code_generation/templates/CodeTemplatesIterators.py +1 -1
- nuitka/code_generation/templates/CodeTemplatesLoader.py +26 -3
- nuitka/code_generation/templates/CodeTemplatesModules.py +21 -8
- nuitka/code_generation/templates/CodeTemplatesVariables.py +1 -1
- nuitka/code_generation/templates/TemplateDebugWrapper.py +1 -1
- nuitka/code_generation/templates/__init__.py +1 -1
- nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +1 -1
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +1 -1
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +1 -1
- nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +21 -1
- nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +1 -1
- nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +1 -1
- nuitka/containers/Namedtuples.py +1 -1
- nuitka/containers/OrderedSetsFallback.py +1 -1
- nuitka/containers/__init__.py +1 -1
- nuitka/distutils/Build.py +1 -1
- nuitka/distutils/DistutilCommands.py +2 -2
- nuitka/distutils/__init__.py +1 -1
- nuitka/finalizations/Finalization.py +1 -1
- nuitka/finalizations/FinalizeMarkups.py +1 -1
- nuitka/finalizations/__init__.py +1 -1
- nuitka/freezer/DependsExe.py +2 -1
- nuitka/freezer/DllDependenciesCommon.py +1 -1
- nuitka/freezer/DllDependenciesMacOS.py +1 -1
- nuitka/freezer/DllDependenciesPosix.py +1 -1
- nuitka/freezer/DllDependenciesWin32.py +111 -25
- nuitka/freezer/ImportDetection.py +1 -1
- nuitka/freezer/IncludedDataFiles.py +1 -1
- nuitka/freezer/IncludedEntryPoints.py +1 -1
- nuitka/freezer/Onefile.py +13 -15
- nuitka/freezer/Standalone.py +6 -3
- nuitka/freezer/__init__.py +1 -1
- nuitka/importing/IgnoreListing.py +1 -1
- nuitka/importing/ImportCache.py +1 -1
- nuitka/importing/ImportResolving.py +1 -1
- nuitka/importing/Importing.py +4 -3
- nuitka/importing/PreloadedPackages.py +1 -1
- nuitka/importing/Recursion.py +37 -12
- nuitka/importing/StandardLibrary.py +1 -1
- nuitka/importing/__init__.py +1 -1
- nuitka/nodes/AsyncgenNodes.py +1 -1
- nuitka/nodes/AttributeLookupNodes.py +1 -1
- nuitka/nodes/AttributeNodes.py +1 -1
- nuitka/nodes/AttributeNodesGenerated.py +1 -1
- nuitka/nodes/BuiltinAllNodes.py +1 -1
- nuitka/nodes/BuiltinAnyNodes.py +1 -1
- nuitka/nodes/BuiltinComplexNodes.py +1 -1
- nuitka/nodes/BuiltinDecodingNodes.py +1 -1
- nuitka/nodes/BuiltinDecoratorNodes.py +1 -1
- nuitka/nodes/BuiltinDictNodes.py +1 -1
- nuitka/nodes/BuiltinFormatNodes.py +1 -1
- nuitka/nodes/BuiltinHashNodes.py +1 -1
- nuitka/nodes/BuiltinInputNodes.py +1 -1
- nuitka/nodes/BuiltinIntegerNodes.py +1 -1
- nuitka/nodes/BuiltinIteratorNodes.py +1 -1
- nuitka/nodes/BuiltinLenNodes.py +1 -1
- nuitka/nodes/BuiltinNextNodes.py +1 -1
- nuitka/nodes/BuiltinOpenNodes.py +1 -1
- nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +1 -1
- nuitka/nodes/BuiltinRangeNodes.py +1 -1
- nuitka/nodes/BuiltinRefNodes.py +1 -1
- nuitka/nodes/BuiltinSumNodes.py +1 -1
- nuitka/nodes/BuiltinTypeNodes.py +1 -1
- nuitka/nodes/BuiltinVarsNodes.py +1 -1
- nuitka/nodes/BytesNodes.py +1 -1
- nuitka/nodes/CallNodes.py +1 -1
- nuitka/nodes/Checkers.py +1 -1
- nuitka/nodes/ChildrenHavingMixins.py +227 -3
- nuitka/nodes/ClassNodes.py +1 -1
- nuitka/nodes/CodeObjectSpecs.py +4 -4
- nuitka/nodes/ComparisonNodes.py +1 -1
- nuitka/nodes/ConditionalNodes.py +1 -1
- nuitka/nodes/ConstantRefNodes.py +1 -1
- nuitka/nodes/ContainerMakingNodes.py +1 -1
- nuitka/nodes/ContainerOperationNodes.py +1 -1
- nuitka/nodes/CoroutineNodes.py +1 -1
- nuitka/nodes/CtypesNodes.py +1 -1
- nuitka/nodes/DictionaryNodes.py +1 -1
- nuitka/nodes/ExceptionNodes.py +1 -1
- nuitka/nodes/ExecEvalNodes.py +1 -1
- nuitka/nodes/ExpressionBases.py +1 -1
- nuitka/nodes/ExpressionBasesGenerated.py +1 -1
- nuitka/nodes/ExpressionShapeMixins.py +1 -1
- nuitka/nodes/FrameNodes.py +19 -7
- nuitka/nodes/FunctionAttributeNodes.py +1 -1
- nuitka/nodes/FunctionNodes.py +1 -1
- nuitka/nodes/FutureSpecs.py +34 -2
- nuitka/nodes/GeneratorNodes.py +1 -1
- nuitka/nodes/GlobalsLocalsNodes.py +1 -1
- nuitka/nodes/HardImportNodesGenerated.py +140 -56
- nuitka/nodes/ImportHardNodes.py +1 -1
- nuitka/nodes/ImportNodes.py +1 -1
- nuitka/nodes/IndicatorMixins.py +1 -1
- nuitka/nodes/InjectCNodes.py +1 -1
- nuitka/nodes/IterationHandles.py +1 -1
- nuitka/nodes/KeyValuePairNodes.py +1 -1
- nuitka/nodes/ListOperationNodes.py +1 -1
- nuitka/nodes/LocalsDictNodes.py +1 -1
- nuitka/nodes/LocalsScopes.py +1 -1
- nuitka/nodes/LoopNodes.py +1 -1
- nuitka/nodes/MatchNodes.py +1 -1
- nuitka/nodes/ModuleAttributeNodes.py +1 -1
- nuitka/nodes/ModuleNodes.py +2 -2
- nuitka/nodes/NetworkxNodes.py +1 -1
- nuitka/nodes/NodeBases.py +1 -1
- nuitka/nodes/NodeMakingHelpers.py +1 -1
- nuitka/nodes/NodeMetaClasses.py +1 -1
- nuitka/nodes/OperatorNodes.py +1 -1
- nuitka/nodes/OperatorNodesUnary.py +1 -1
- nuitka/nodes/OsSysNodes.py +1 -1
- nuitka/nodes/OutlineNodes.py +1 -1
- nuitka/nodes/PackageMetadataNodes.py +1 -1
- nuitka/nodes/PackageResourceNodes.py +42 -7
- nuitka/nodes/PrintNodes.py +1 -1
- nuitka/nodes/ReturnNodes.py +1 -1
- nuitka/nodes/SideEffectNodes.py +1 -1
- nuitka/nodes/SliceNodes.py +1 -1
- nuitka/nodes/StatementBasesGenerated.py +1 -1
- nuitka/nodes/StatementNodes.py +1 -1
- nuitka/nodes/StrNodes.py +1 -1
- nuitka/nodes/StringConcatenationNodes.py +1 -1
- nuitka/nodes/SubscriptNodes.py +1 -1
- nuitka/nodes/TensorflowNodes.py +1 -1
- nuitka/nodes/TryNodes.py +1 -1
- nuitka/nodes/TypeMatchNodes.py +1 -1
- nuitka/nodes/TypeNodes.py +1 -1
- nuitka/nodes/VariableAssignNodes.py +1 -1
- nuitka/nodes/VariableDelNodes.py +1 -1
- nuitka/nodes/VariableNameNodes.py +1 -1
- nuitka/nodes/VariableRefNodes.py +1 -1
- nuitka/nodes/VariableReleaseNodes.py +1 -1
- nuitka/nodes/YieldNodes.py +1 -1
- nuitka/nodes/__init__.py +1 -1
- nuitka/nodes/shapes/BuiltinTypeShapes.py +1 -1
- nuitka/nodes/shapes/ControlFlowDescriptions.py +1 -1
- nuitka/nodes/shapes/IteratorShapes.py +1 -1
- nuitka/nodes/shapes/ShapeMixins.py +1 -1
- nuitka/nodes/shapes/StandardShapes.py +1 -1
- nuitka/nodes/shapes/__init__.py +1 -1
- nuitka/optimizations/BytecodeDemotion.py +1 -1
- nuitka/optimizations/FunctionInlining.py +1 -1
- nuitka/optimizations/Graphs.py +1 -1
- nuitka/optimizations/Optimization.py +1 -1
- nuitka/optimizations/OptimizeBuiltinCalls.py +1 -1
- nuitka/optimizations/Tags.py +1 -1
- nuitka/optimizations/TraceCollections.py +1 -1
- nuitka/optimizations/ValueTraces.py +1 -1
- nuitka/optimizations/__init__.py +1 -1
- nuitka/pgo/PGO.py +1 -1
- nuitka/pgo/__init__.py +1 -1
- nuitka/plugins/PluginBase.py +24 -3
- nuitka/plugins/Plugins.py +57 -14
- nuitka/plugins/YamlPluginBase.py +1 -1
- nuitka/plugins/__init__.py +1 -1
- nuitka/plugins/standard/AntiBloatPlugin.py +2 -1
- nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +2 -1
- nuitka/plugins/standard/DataFilesPlugin.py +2 -2
- nuitka/plugins/standard/DelvewheelPlugin.py +2 -1
- nuitka/plugins/standard/DillPlugin/DillPlugin.c +1 -1
- nuitka/plugins/standard/DillPlugin/dill-postLoad.py +1 -1
- nuitka/plugins/standard/DillPlugin.py +2 -2
- nuitka/plugins/standard/DllFilesPlugin.py +2 -12
- nuitka/plugins/standard/EnumPlugin.py +2 -2
- nuitka/plugins/standard/EventletPlugin.py +2 -1
- nuitka/plugins/standard/GeventPlugin.py +2 -1
- nuitka/plugins/standard/GiPlugin.py +2 -1
- nuitka/plugins/standard/GlfwPlugin.py +2 -1
- nuitka/plugins/standard/ImplicitImports.py +4 -4
- nuitka/plugins/standard/KivyPlugin.py +2 -1
- nuitka/plugins/standard/MatplotlibPlugin.py +2 -1
- nuitka/plugins/standard/MultiprocessingPlugin.py +2 -1
- nuitka/plugins/standard/NumpyPlugin.py +2 -1
- nuitka/plugins/standard/OptionsNannyPlugin.py +2 -2
- nuitka/plugins/standard/PbrPlugin.py +2 -2
- nuitka/plugins/standard/PkgResourcesPlugin.py +2 -1
- nuitka/plugins/standard/PlaywrightPlugin.py +10 -15
- nuitka/plugins/standard/PmwPlugin.py +2 -1
- nuitka/plugins/standard/PySidePyQtPlugin.py +12 -15
- nuitka/plugins/standard/PywebViewPlugin.py +2 -1
- nuitka/plugins/standard/SpacyPlugin.py +2 -1
- nuitka/plugins/standard/TensorflowPlugin.py +2 -1
- nuitka/plugins/standard/TkinterPlugin.py +15 -2
- nuitka/plugins/standard/TorchPlugin.py +2 -1
- nuitka/plugins/standard/TransformersPlugin.py +2 -2
- nuitka/plugins/standard/TrioPlugin.py +2 -1
- nuitka/plugins/standard/UpxPlugin.py +2 -1
- nuitka/plugins/standard/__init__.py +1 -1
- nuitka/plugins/standard/standard.nuitka-package.config.yml +108 -38
- nuitka/reports/CompilationReportReader.py +5 -1
- nuitka/reports/LicenseReport.rst.j2 +1 -1
- nuitka/reports/Reports.py +5 -1
- nuitka/reports/__init__.py +1 -1
- nuitka/specs/BuiltinBytesOperationSpecs.py +1 -1
- nuitka/specs/BuiltinDictOperationSpecs.py +1 -1
- nuitka/specs/BuiltinListOperationSpecs.py +1 -1
- nuitka/specs/BuiltinParameterSpecs.py +1 -1
- nuitka/specs/BuiltinStrOperationSpecs.py +1 -1
- nuitka/specs/BuiltinTypeOperationSpecs.py +1 -1
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +1 -1
- nuitka/specs/HardImportSpecs.py +10 -2
- nuitka/specs/ParameterSpecs.py +17 -2
- nuitka/specs/__init__.py +1 -1
- nuitka/tools/Basics.py +1 -1
- nuitka/tools/__init__.py +1 -1
- nuitka/tools/commercial/__init__.py +1 -1
- nuitka/tools/data_composer/DataComposer.py +125 -1
- nuitka/tools/data_composer/__init__.py +1 -1
- nuitka/tools/data_composer/__main__.py +1 -1
- nuitka/tools/environments/CreateEnvironment.py +1 -1
- nuitka/tools/environments/Virtualenv.py +1 -1
- nuitka/tools/environments/__init__.py +1 -1
- nuitka/tools/general/__init__.py +1 -1
- nuitka/tools/general/dll_report/__init__.py +1 -1
- nuitka/tools/general/dll_report/__main__.py +1 -1
- nuitka/tools/general/find_module/FindModuleCode.py +2 -2
- nuitka/tools/general/find_module/__init__.py +1 -1
- nuitka/tools/general/generate_header/GenerateHeader.py +73 -0
- nuitka/tools/general/generate_header/__init__.py +19 -0
- nuitka/tools/onefile_compressor/OnefileCompressor.py +1 -1
- nuitka/tools/onefile_compressor/__init__.py +1 -1
- nuitka/tools/onefile_compressor/__main__.py +1 -1
- nuitka/tools/podman/Podman.py +1 -1
- nuitka/tools/podman/__init__.py +1 -1
- nuitka/tools/podman/__main__.py +4 -2
- nuitka/tools/profiler/__init__.py +1 -1
- nuitka/tools/profiler/__main__.py +1 -1
- nuitka/tools/scanning/DisplayPackageDLLs.py +43 -20
- nuitka/tools/scanning/DisplayPackageData.py +1 -1
- nuitka/tools/scanning/__init__.py +1 -1
- nuitka/tools/specialize/CTypeDescriptions.py +1 -1
- nuitka/tools/specialize/Common.py +1 -1
- nuitka/tools/specialize/SpecializeC.py +1 -1
- nuitka/tools/specialize/SpecializePython.py +7 -3
- nuitka/tools/specialize/__init__.py +1 -1
- nuitka/tools/testing/Common.py +140 -19
- nuitka/tools/testing/Constructs.py +1 -1
- nuitka/tools/testing/OutputComparison.py +5 -4
- nuitka/tools/testing/Pythons.py +1 -1
- nuitka/tools/testing/RuntimeTracing.py +1 -1
- nuitka/tools/testing/SearchModes.py +1 -1
- nuitka/tools/testing/Valgrind.py +1 -1
- nuitka/tools/testing/__init__.py +1 -1
- nuitka/tools/testing/check_reference_counts/__init__.py +1 -1
- nuitka/tools/testing/check_reference_counts/__main__.py +6 -2
- nuitka/tools/testing/compare_with_cpython/__init__.py +1 -1
- nuitka/tools/testing/compare_with_cpython/__main__.py +51 -14
- nuitka/tools/testing/find_sxs_modules/__init__.py +1 -1
- nuitka/tools/testing/find_sxs_modules/__main__.py +1 -1
- nuitka/tools/testing/measure_construct_performance/__init__.py +1 -1
- nuitka/tools/testing/measure_construct_performance/__main__.py +1 -1
- nuitka/tools/testing/run_nuitka_tests/__init__.py +1 -1
- nuitka/tools/testing/run_nuitka_tests/__main__.py +1 -1
- nuitka/tools/watch/AutoStage.py +1 -1
- nuitka/tools/watch/Common.py +55 -0
- nuitka/tools/watch/Conda.py +125 -0
- nuitka/tools/watch/GitHub.py +1 -1
- nuitka/tools/watch/Pacman.py +73 -0
- nuitka/tools/watch/Pipenv.py +143 -0
- nuitka/tools/watch/__init__.py +1 -1
- nuitka/tools/watch/__main__.py +117 -264
- nuitka/tree/Building.py +1 -1
- nuitka/tree/ComplexCallHelperFunctions.py +1 -1
- nuitka/tree/Extractions.py +1 -1
- nuitka/tree/InternalModule.py +1 -1
- nuitka/tree/Operations.py +1 -1
- nuitka/tree/ReformulationAssertStatements.py +1 -1
- nuitka/tree/ReformulationAssignmentStatements.py +1 -1
- nuitka/tree/ReformulationBooleanExpressions.py +1 -1
- nuitka/tree/ReformulationCallExpressions.py +1 -1
- nuitka/tree/ReformulationClasses.py +1 -1
- nuitka/tree/ReformulationClasses3.py +1 -1
- nuitka/tree/ReformulationComparisonExpressions.py +1 -1
- nuitka/tree/ReformulationContractionExpressions.py +3 -1
- nuitka/tree/ReformulationDictionaryCreation.py +1 -1
- nuitka/tree/ReformulationExecStatements.py +1 -1
- nuitka/tree/ReformulationForLoopStatements.py +1 -1
- nuitka/tree/ReformulationFunctionStatements.py +1 -1
- nuitka/tree/ReformulationImportStatements.py +1 -1
- nuitka/tree/ReformulationLambdaExpressions.py +2 -1
- nuitka/tree/ReformulationMatchStatements.py +1 -1
- nuitka/tree/ReformulationMultidist.py +1 -1
- nuitka/tree/ReformulationNamespacePackages.py +1 -1
- nuitka/tree/ReformulationPrintStatements.py +1 -1
- nuitka/tree/ReformulationSequenceCreation.py +1 -1
- nuitka/tree/ReformulationSubscriptExpressions.py +1 -1
- nuitka/tree/ReformulationTryExceptStatements.py +1 -1
- nuitka/tree/ReformulationTryFinallyStatements.py +1 -1
- nuitka/tree/ReformulationWhileLoopStatements.py +1 -1
- nuitka/tree/ReformulationWithStatements.py +1 -1
- nuitka/tree/ReformulationYieldExpressions.py +1 -1
- nuitka/tree/SourceHandling.py +1 -1
- nuitka/tree/SyntaxErrors.py +1 -1
- nuitka/tree/TreeHelpers.py +24 -10
- nuitka/tree/VariableClosure.py +1 -1
- nuitka/tree/__init__.py +1 -1
- nuitka/utils/AppDirs.py +5 -2
- nuitka/utils/CStrings.py +1 -1
- nuitka/utils/CommandLineOptions.py +2 -2
- nuitka/utils/Distributions.py +177 -15
- nuitka/utils/Download.py +14 -6
- nuitka/utils/Execution.py +43 -14
- nuitka/utils/FileOperations.py +25 -4
- nuitka/utils/Hashing.py +1 -1
- nuitka/utils/Images.py +8 -2
- nuitka/utils/Importing.py +1 -1
- nuitka/utils/InlineCopies.py +1 -1
- nuitka/utils/InstalledPythons.py +1 -1
- nuitka/utils/InstanceCounters.py +1 -1
- nuitka/utils/Jinja2.py +1 -1
- nuitka/utils/Json.py +2 -2
- nuitka/utils/MacOSApp.py +4 -3
- nuitka/utils/MemoryUsage.py +1 -1
- nuitka/utils/ModuleNames.py +1 -1
- nuitka/utils/PackageResources.py +1 -1
- nuitka/utils/ReExecute.py +1 -1
- nuitka/utils/Rest.py +1 -1
- nuitka/utils/SharedLibraries.py +52 -7
- nuitka/utils/Shebang.py +1 -1
- nuitka/utils/Signing.py +2 -4
- nuitka/utils/SlotMetaClasses.py +1 -1
- nuitka/utils/StaticLibraries.py +25 -1
- nuitka/utils/ThreadedExecutor.py +1 -1
- nuitka/utils/Timing.py +1 -1
- nuitka/utils/Utils.py +1 -1
- nuitka/utils/WindowsFileUsage.py +1 -1
- nuitka/utils/WindowsResources.py +3 -1
- nuitka/utils/Yaml.py +1 -1
- nuitka/utils/__init__.py +1 -1
- Nuitka_winsvc-2.5.6.dist-info/RECORD +0 -978
- {Nuitka_winsvc-2.5.6.dist-info → Nuitka_winsvc-2.6.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-2.5.6.dist-info → Nuitka_winsvc-2.6.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-2.5.6.dist-info → Nuitka_winsvc-2.6.dist-info}/top_level.txt +0 -0
nuitka/build/SconsCaching.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
""" Caching of C compiler output.
|
|
@@ -98,6 +98,7 @@ def _injectCcache(env, cc_path, python_prefix, assume_yes_for_downloads):
|
|
|
98
98
|
message="Nuitka will make use of ccache to speed up repeated compilation.",
|
|
99
99
|
reject=None,
|
|
100
100
|
assume_yes_for_downloads=assume_yes_for_downloads,
|
|
101
|
+
download_ok=True,
|
|
101
102
|
)
|
|
102
103
|
|
|
103
104
|
else:
|
|
@@ -282,11 +283,12 @@ def _getCcacheStatistics(ccache_logfile):
|
|
|
282
283
|
# can be matched against it.
|
|
283
284
|
commands = {}
|
|
284
285
|
|
|
285
|
-
# Due to upstream issues, lines in the log might have different
|
|
286
|
-
#
|
|
287
|
-
#
|
|
288
|
-
|
|
289
|
-
|
|
286
|
+
# Due to upstream ccache issues, lines in the log might have different
|
|
287
|
+
# encodings, but latin1 will always work and was chosen to write this
|
|
288
|
+
# file therefore.
|
|
289
|
+
for line in getFileContentByLine(
|
|
290
|
+
ccache_logfile, encoding="latin1", errors="backslashreplace"
|
|
291
|
+
):
|
|
290
292
|
match = re_command.match(line)
|
|
291
293
|
|
|
292
294
|
if match:
|
|
@@ -321,7 +323,7 @@ def _getCcacheStatistics(ccache_logfile):
|
|
|
321
323
|
all_text = []
|
|
322
324
|
|
|
323
325
|
for line2 in getFileContentByLine(
|
|
324
|
-
ccache_logfile, errors="backslashreplace"
|
|
326
|
+
ccache_logfile, encoding="latin1", errors="backslashreplace"
|
|
325
327
|
):
|
|
326
328
|
match = re_anything.match(line2)
|
|
327
329
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
""" This contains the tuning of the compilers towards defined goals.
|
|
@@ -211,6 +211,22 @@ version for lto mode (>= 4.6). Disabled."""
|
|
|
211
211
|
lto_mode = False
|
|
212
212
|
reason = "gcc 4.6 is doesn't have good enough LTO support"
|
|
213
213
|
|
|
214
|
+
if (
|
|
215
|
+
lto_mode
|
|
216
|
+
and env.gcc_mode
|
|
217
|
+
and not env.clang_mode
|
|
218
|
+
and not isWin32Windows()
|
|
219
|
+
and not isMacOS()
|
|
220
|
+
and getExecutablePath("make", env=env) is None
|
|
221
|
+
):
|
|
222
|
+
scons_logger.warning(
|
|
223
|
+
"""\
|
|
224
|
+
The gcc compiler for LTO mode requires 'make' to be installed \
|
|
225
|
+
for parallel linking to be used, compilation might be a lot \
|
|
226
|
+
slower without it.
|
|
227
|
+
"""
|
|
228
|
+
)
|
|
229
|
+
|
|
214
230
|
if env.gcc_mode and lto_mode:
|
|
215
231
|
if env.clang_mode:
|
|
216
232
|
env.Append(CCFLAGS=["-flto"])
|
|
@@ -246,16 +262,17 @@ version for lto mode (>= 4.6). Disabled."""
|
|
|
246
262
|
|
|
247
263
|
env.lto_mode = lto_mode
|
|
248
264
|
env.orig_lto_mode = orig_lto_mode
|
|
265
|
+
env.pgo_mode = pgo_mode
|
|
249
266
|
|
|
250
267
|
# PGO configuration
|
|
251
|
-
_enablePgoSettings(env
|
|
268
|
+
_enablePgoSettings(env)
|
|
252
269
|
|
|
253
270
|
|
|
254
271
|
_python311_min_msvc_version = (14, 3)
|
|
255
272
|
|
|
256
273
|
|
|
257
274
|
def checkWindowsCompilerFound(
|
|
258
|
-
env, target_arch, clang_mode, msvc_version, assume_yes_for_downloads
|
|
275
|
+
env, target_arch, clang_mode, msvc_version, assume_yes_for_downloads, download_ok
|
|
259
276
|
):
|
|
260
277
|
"""Remove compiler of wrong arch or too old gcc and replace with downloaded winlibs gcc."""
|
|
261
278
|
# Many cases to deal with, pylint: disable=too-many-branches,too-many-statements
|
|
@@ -397,6 +414,7 @@ For Python version %s MSVC %s or later is required, not %s which is too old."""
|
|
|
397
414
|
compiler_path = getCachedDownloadedMinGW64(
|
|
398
415
|
target_arch=target_arch,
|
|
399
416
|
assume_yes_for_downloads=assume_yes_for_downloads,
|
|
417
|
+
download_ok=download_ok,
|
|
400
418
|
)
|
|
401
419
|
|
|
402
420
|
if compiler_path is not None:
|
|
@@ -435,6 +453,12 @@ def decideConstantsBlobResourceMode(env, module_mode):
|
|
|
435
453
|
elif isMacOS():
|
|
436
454
|
resource_mode = "mac_section"
|
|
437
455
|
reason = "default for macOS"
|
|
456
|
+
elif env.gcc_mode and env.clang_mode and env.clang_version >= (19,):
|
|
457
|
+
resource_mode = "c23_embed"
|
|
458
|
+
reason = "default for newer clang"
|
|
459
|
+
elif env.gcc_mode and not env.clang_mode and env.gcc_version >= (15,):
|
|
460
|
+
resource_mode = "c23_embed"
|
|
461
|
+
reason = "default for newer gcc"
|
|
438
462
|
elif env.lto_mode and env.gcc_mode and not env.clang_mode:
|
|
439
463
|
if module_mode:
|
|
440
464
|
resource_mode = "code"
|
|
@@ -526,7 +550,7 @@ unsigned char const *getConstantsBlobData(void) {
|
|
|
526
550
|
),
|
|
527
551
|
]
|
|
528
552
|
)
|
|
529
|
-
elif resource_mode
|
|
553
|
+
elif resource_mode in ("code", "c23_embed"):
|
|
530
554
|
# Indicate "code" resource mode.
|
|
531
555
|
env.Append(CPPDEFINES=["_NUITKA_CONSTANTS_FROM_CODE"])
|
|
532
556
|
|
|
@@ -549,19 +573,22 @@ unsigned char constant_bin_data[] =\n{\n
|
|
|
549
573
|
"""
|
|
550
574
|
)
|
|
551
575
|
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
if count
|
|
557
|
-
|
|
576
|
+
if resource_mode == "code":
|
|
577
|
+
with open(blob_filename, "rb") as f:
|
|
578
|
+
content = f.read()
|
|
579
|
+
for count, stream_byte in enumerate(content):
|
|
580
|
+
if count % 16 == 0:
|
|
581
|
+
if count > 0:
|
|
582
|
+
output.write("\n")
|
|
558
583
|
|
|
559
|
-
|
|
584
|
+
output.write(" ")
|
|
560
585
|
|
|
561
|
-
|
|
562
|
-
|
|
586
|
+
if str is bytes:
|
|
587
|
+
stream_byte = ord(stream_byte)
|
|
563
588
|
|
|
564
|
-
|
|
589
|
+
output.write(" 0x%02x," % stream_byte)
|
|
590
|
+
else:
|
|
591
|
+
output.write('#embed "%s"\n' % blob_filename)
|
|
565
592
|
|
|
566
593
|
output.write("\n};\n")
|
|
567
594
|
|
|
@@ -810,10 +837,8 @@ def setupCCompiler(env, lto_mode, pgo_mode, job_count, onefile_compile):
|
|
|
810
837
|
if env.mingw_mode and env.target_arch == "x86_64" and env.python_version < (3, 12):
|
|
811
838
|
env.Append(CPPDEFINES=["MS_WIN64"])
|
|
812
839
|
|
|
813
|
-
# For shell API usage to lookup app folders we need this.
|
|
814
|
-
|
|
815
|
-
# have to do this.
|
|
816
|
-
if env.msvc_mode and env.target_arch != "arm64":
|
|
840
|
+
# For shell API usage to lookup app folders we need this.
|
|
841
|
+
if env.msvc_mode:
|
|
817
842
|
env.Append(LIBS=["Shell32", "Advapi32"])
|
|
818
843
|
|
|
819
844
|
# Since Fedora 36, the system Python will not link otherwise.
|
|
@@ -839,13 +864,13 @@ def setupCCompiler(env, lto_mode, pgo_mode, job_count, onefile_compile):
|
|
|
839
864
|
env.Append(LIBS="z")
|
|
840
865
|
|
|
841
866
|
|
|
842
|
-
def _enablePgoSettings(env
|
|
843
|
-
if pgo_mode == "no":
|
|
867
|
+
def _enablePgoSettings(env):
|
|
868
|
+
if env.pgo_mode == "no":
|
|
844
869
|
env.progressbar_name = "Backend"
|
|
845
|
-
elif pgo_mode == "python":
|
|
870
|
+
elif env.pgo_mode == "python":
|
|
846
871
|
env.progressbar_name = "Python Profile"
|
|
847
872
|
env.Append(CPPDEFINES=["_NUITKA_PGO_PYTHON"])
|
|
848
|
-
elif pgo_mode == "generate":
|
|
873
|
+
elif env.pgo_mode == "generate":
|
|
849
874
|
env.progressbar_name = "Profile"
|
|
850
875
|
env.Append(CPPDEFINES=["_NUITKA_PGO_GENERATE"])
|
|
851
876
|
|
|
@@ -862,7 +887,7 @@ def _enablePgoSettings(env, pgo_mode):
|
|
|
862
887
|
scons_logger.sysexit(
|
|
863
888
|
"Error, PGO not supported for '%s' compiler." % env.the_cc_name
|
|
864
889
|
)
|
|
865
|
-
elif pgo_mode == "use":
|
|
890
|
+
elif env.pgo_mode == "use":
|
|
866
891
|
env.progressbar_name = "Backend"
|
|
867
892
|
|
|
868
893
|
env.Append(CPPDEFINES=["_NUITKA_PGO_USE"])
|
|
@@ -884,8 +909,6 @@ def _enablePgoSettings(env, pgo_mode):
|
|
|
884
909
|
else:
|
|
885
910
|
assert False, env.pgo_mode
|
|
886
911
|
|
|
887
|
-
env.pgo_mode = pgo_mode
|
|
888
|
-
|
|
889
912
|
|
|
890
913
|
def _enableDebugSystemSettings(env, job_count):
|
|
891
914
|
if env.unstripped_mode:
|
|
@@ -1002,15 +1025,15 @@ def reportCCompiler(env, context, output_func):
|
|
|
1002
1025
|
".".join(str(d) for d in env.gcc_version),
|
|
1003
1026
|
)
|
|
1004
1027
|
elif isClangName(env.the_cc_name):
|
|
1005
|
-
clang_version = myDetectVersion(env, env.the_cc_name)
|
|
1006
|
-
if clang_version is None:
|
|
1007
|
-
clang_version = "not found"
|
|
1008
|
-
else:
|
|
1009
|
-
clang_version = ".".join(str(d) for d in clang_version)
|
|
1028
|
+
env.clang_version = myDetectVersion(env, env.the_cc_name)
|
|
1010
1029
|
|
|
1011
1030
|
cc_output = "%s %s" % (
|
|
1012
1031
|
env.the_cc_name,
|
|
1013
|
-
|
|
1032
|
+
(
|
|
1033
|
+
".".join(str(d) for d in env.clang_version)
|
|
1034
|
+
if env.clang_version is not None
|
|
1035
|
+
else "not found"
|
|
1036
|
+
),
|
|
1014
1037
|
)
|
|
1015
1038
|
else:
|
|
1016
1039
|
cc_output = env.the_cc_name
|
nuitka/build/SconsHacks.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
""" Hacks for scons that we apply.
|
|
@@ -170,7 +170,7 @@ def getEnhancedToolDetect():
|
|
|
170
170
|
return myDetect
|
|
171
171
|
|
|
172
172
|
|
|
173
|
-
def makeGccUseLinkerFile(
|
|
173
|
+
def makeGccUseLinkerFile(env, source_files):
|
|
174
174
|
tmp_linker_filename = os.path.join(env.source_dir, "@link_input.txt")
|
|
175
175
|
|
|
176
176
|
# Note: For Windows, it's done in mingw.py because of its use of
|
|
@@ -188,7 +188,7 @@ def makeGccUseLinkerFile(source_files, module_mode, env):
|
|
|
188
188
|
with openTextFile(tmp_linker_filename, "w") as tmpfile:
|
|
189
189
|
for filename in source_files:
|
|
190
190
|
filename = ".".join(filename.split(".")[:-1]) + (
|
|
191
|
-
".os" if module_mode and os.name != "nt" else ".o"
|
|
191
|
+
".os" if env.module_mode and os.name != "nt" else ".o"
|
|
192
192
|
)
|
|
193
193
|
|
|
194
194
|
if os.name == "nt":
|
nuitka/build/SconsInterface.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
""" Scons interface.
|
|
@@ -18,9 +18,16 @@ from nuitka import Options, Tracing
|
|
|
18
18
|
from nuitka.__past__ import unicode
|
|
19
19
|
from nuitka.containers.OrderedDicts import OrderedDict
|
|
20
20
|
from nuitka.Options import (
|
|
21
|
+
getDebugModeIndications,
|
|
22
|
+
getExperimentalIndications,
|
|
23
|
+
getJobLimit,
|
|
21
24
|
getOnefileChildGraceTime,
|
|
25
|
+
getPythonPathForScons,
|
|
26
|
+
isDeploymentMode,
|
|
22
27
|
isExperimental,
|
|
23
28
|
isOnefileMode,
|
|
29
|
+
isShowScons,
|
|
30
|
+
shallCompileWithoutBuildDirectory,
|
|
24
31
|
)
|
|
25
32
|
from nuitka.plugins.Plugins import Plugins
|
|
26
33
|
from nuitka.PythonFlavors import (
|
|
@@ -31,6 +38,7 @@ from nuitka.PythonFlavors import (
|
|
|
31
38
|
)
|
|
32
39
|
from nuitka.PythonVersions import (
|
|
33
40
|
getSystemPrefixPath,
|
|
41
|
+
isPythonWithGil,
|
|
34
42
|
python_version,
|
|
35
43
|
python_version_str,
|
|
36
44
|
)
|
|
@@ -111,7 +119,7 @@ def _getPythonForSconsExePath():
|
|
|
111
119
|
|
|
112
120
|
Scons needs it as it doesn't support all Python versions.
|
|
113
121
|
"""
|
|
114
|
-
python_exe =
|
|
122
|
+
python_exe = getPythonPathForScons()
|
|
115
123
|
|
|
116
124
|
if python_exe is not None:
|
|
117
125
|
return python_exe
|
|
@@ -234,7 +242,7 @@ def _buildSconsCommand(options, scons_filename):
|
|
|
234
242
|
|
|
235
243
|
scons_command = _getSconsBinaryCall()
|
|
236
244
|
|
|
237
|
-
if not
|
|
245
|
+
if not isShowScons():
|
|
238
246
|
scons_command.append("--quiet")
|
|
239
247
|
|
|
240
248
|
scons_command += [
|
|
@@ -243,14 +251,14 @@ def _buildSconsCommand(options, scons_filename):
|
|
|
243
251
|
getExternalUsePath(os.path.join(getSconsDataPath(), scons_filename)),
|
|
244
252
|
# Parallel compilation.
|
|
245
253
|
"--jobs",
|
|
246
|
-
str(
|
|
254
|
+
str(getJobLimit()),
|
|
247
255
|
# Do not warn about deprecation from Scons
|
|
248
256
|
"--warn=no-deprecated",
|
|
249
257
|
# Don't load "site_scons" at all.
|
|
250
258
|
"--no-site-dir",
|
|
251
259
|
]
|
|
252
260
|
|
|
253
|
-
if
|
|
261
|
+
if isShowScons():
|
|
254
262
|
scons_command.append("--debug=stacktrace")
|
|
255
263
|
|
|
256
264
|
# Python2, encoding unicode values
|
|
@@ -280,6 +288,14 @@ def _createSconsDebugScript(source_dir, scons_command):
|
|
|
280
288
|
# we wrote debug shell script only if build process called, not "--version" call.
|
|
281
289
|
scons_debug_python_name = "scons-debug.py"
|
|
282
290
|
|
|
291
|
+
# Reduce environment variables from unusable stuff that is also very runtime
|
|
292
|
+
# dependent, spell-checker: ignore COLORTERM
|
|
293
|
+
env = OrderedDict(
|
|
294
|
+
(key, value)
|
|
295
|
+
for (key, value) in os.environ.items()
|
|
296
|
+
if not key.startswith(("VSCODE", "GIT", "WSL", "COLORTERM", "TERM"))
|
|
297
|
+
)
|
|
298
|
+
|
|
283
299
|
putTextFileContents(
|
|
284
300
|
filename=os.path.join(source_dir, scons_debug_python_name),
|
|
285
301
|
contents="""\
|
|
@@ -291,10 +307,13 @@ import subprocess
|
|
|
291
307
|
|
|
292
308
|
exit_code = subprocess.call(
|
|
293
309
|
%(scons_command)r,
|
|
294
|
-
env
|
|
310
|
+
env={%(env)s}
|
|
295
311
|
shell=False
|
|
296
312
|
)"""
|
|
297
|
-
% {
|
|
313
|
+
% {
|
|
314
|
+
"scons_command": scons_command,
|
|
315
|
+
"env": ",".join("%r: %r" % (key, value) for key, value in env.items()),
|
|
316
|
+
},
|
|
298
317
|
encoding="utf8",
|
|
299
318
|
)
|
|
300
319
|
|
|
@@ -331,24 +350,26 @@ cd "${0%/*}"
|
|
|
331
350
|
)
|
|
332
351
|
|
|
333
352
|
|
|
334
|
-
def runScons(
|
|
353
|
+
def runScons(scons_options, env_values, scons_filename):
|
|
335
354
|
with _setupSconsEnvironment():
|
|
336
355
|
env_values["_NUITKA_BUILD_DEFINITIONS_CATALOG"] = ",".join(env_values.keys())
|
|
337
356
|
|
|
338
|
-
if "source_dir" in
|
|
357
|
+
if "source_dir" in scons_options and shallCompileWithoutBuildDirectory():
|
|
339
358
|
# Make sure we become non-local, by changing all paths to be
|
|
340
359
|
# absolute, but ones that can be resolved by any program
|
|
341
360
|
# externally, as the Python of Scons may not be good at unicode.
|
|
342
361
|
|
|
343
|
-
|
|
344
|
-
source_dir =
|
|
345
|
-
|
|
346
|
-
|
|
362
|
+
scons_options = copy.deepcopy(scons_options)
|
|
363
|
+
source_dir = scons_options["source_dir"]
|
|
364
|
+
scons_options["source_dir"] = "."
|
|
365
|
+
scons_options["nuitka_src"] = getExternalUsePath(
|
|
366
|
+
scons_options["nuitka_src"]
|
|
367
|
+
)
|
|
347
368
|
|
|
348
|
-
orig_result_exe =
|
|
349
|
-
if "result_exe" in
|
|
350
|
-
|
|
351
|
-
|
|
369
|
+
orig_result_exe = scons_options.get("result_exe")
|
|
370
|
+
if "result_exe" in scons_options:
|
|
371
|
+
scons_options["result_exe"] = getExternalUsePath(
|
|
372
|
+
scons_options["result_exe"], only_dirname=True
|
|
352
373
|
)
|
|
353
374
|
|
|
354
375
|
else:
|
|
@@ -361,10 +382,10 @@ def runScons(options, env_values, scons_filename):
|
|
|
361
382
|
env_values["NUITKA_QUIET"] = "1" if Tracing.is_quiet else "0"
|
|
362
383
|
|
|
363
384
|
scons_command = _buildSconsCommand(
|
|
364
|
-
options=
|
|
385
|
+
options=scons_options, scons_filename=scons_filename
|
|
365
386
|
)
|
|
366
387
|
|
|
367
|
-
if
|
|
388
|
+
if isShowScons():
|
|
368
389
|
Tracing.scons_logger.info("Scons command: %s" % " ".join(scons_command))
|
|
369
390
|
|
|
370
391
|
Tracing.flushStandardOutputs()
|
|
@@ -386,10 +407,10 @@ def runScons(options, env_values, scons_filename):
|
|
|
386
407
|
# current source_dir.
|
|
387
408
|
flushSconsReports()
|
|
388
409
|
|
|
389
|
-
if "source_dir" in
|
|
390
|
-
if "result_exe" in
|
|
410
|
+
if "source_dir" in scons_options and result == 0:
|
|
411
|
+
if "result_exe" in scons_options:
|
|
391
412
|
scons_created_exe = getSconsReportValue(
|
|
392
|
-
source_dir or
|
|
413
|
+
source_dir or scons_options["source_dir"], "TARGET"
|
|
393
414
|
)
|
|
394
415
|
|
|
395
416
|
if not os.path.exists(scons_created_exe):
|
|
@@ -398,10 +419,10 @@ def runScons(options, env_values, scons_filename):
|
|
|
398
419
|
% scons_created_exe
|
|
399
420
|
)
|
|
400
421
|
|
|
401
|
-
if not areSamePaths(
|
|
422
|
+
if not areSamePaths(scons_options["result_exe"], scons_created_exe):
|
|
402
423
|
renameFile(scons_created_exe, orig_result_exe)
|
|
403
424
|
|
|
404
|
-
checkCachingSuccess(source_dir or
|
|
425
|
+
checkCachingSuccess(source_dir or scons_options["source_dir"])
|
|
405
426
|
|
|
406
427
|
return result == 0
|
|
407
428
|
|
|
@@ -458,87 +479,90 @@ def cleanSconsDirectory(source_dir):
|
|
|
458
479
|
check(path)
|
|
459
480
|
|
|
460
481
|
|
|
461
|
-
def
|
|
482
|
+
def getCommonSconsOptions():
|
|
462
483
|
# Scons gets transported many details, that we express as variables, and
|
|
463
|
-
# have checks for them, leading to many branches and statements
|
|
484
|
+
# have checks for them, leading to many branches and statements.
|
|
464
485
|
# pylint: disable=too-many-branches,too-many-statements
|
|
465
|
-
options["nuitka_src"] = getSconsDataPath()
|
|
466
486
|
|
|
467
|
-
|
|
487
|
+
scons_options = OrderedDict()
|
|
488
|
+
|
|
489
|
+
scons_options["nuitka_src"] = getSconsDataPath()
|
|
490
|
+
|
|
491
|
+
scons_options["python_version"] = python_version_str
|
|
468
492
|
|
|
469
|
-
|
|
493
|
+
scons_options["python_prefix"] = getDirectoryRealPath(getSystemPrefixPath())
|
|
470
494
|
|
|
471
|
-
|
|
495
|
+
scons_options["experimental"] = ",".join(getExperimentalIndications())
|
|
472
496
|
|
|
473
|
-
|
|
497
|
+
scons_options["debug_modes"] = ",".join(getDebugModeIndications())
|
|
474
498
|
|
|
475
|
-
|
|
499
|
+
scons_options["deployment"] = asBoolStr(isDeploymentMode())
|
|
476
500
|
|
|
477
|
-
|
|
501
|
+
scons_options["no_deployment"] = ",".join(Options.getNoDeploymentIndications())
|
|
478
502
|
|
|
479
503
|
if Options.shallRunInDebugger():
|
|
480
|
-
|
|
504
|
+
scons_options["full_names"] = asBoolStr(True)
|
|
481
505
|
|
|
482
506
|
if Options.assumeYesForDownloads():
|
|
483
|
-
|
|
507
|
+
scons_options["assume_yes_for_downloads"] = asBoolStr(True)
|
|
484
508
|
|
|
485
509
|
if not Options.shallUseProgressBar():
|
|
486
|
-
|
|
510
|
+
scons_options["progress_bar"] = asBoolStr(False)
|
|
487
511
|
|
|
488
512
|
if Options.isClang():
|
|
489
|
-
|
|
513
|
+
scons_options["clang_mode"] = asBoolStr(True)
|
|
490
514
|
|
|
491
515
|
if Options.isShowScons():
|
|
492
|
-
|
|
516
|
+
scons_options["show_scons"] = asBoolStr(True)
|
|
493
517
|
|
|
494
518
|
if Options.isMingw64():
|
|
495
|
-
|
|
519
|
+
scons_options["mingw_mode"] = asBoolStr(True)
|
|
496
520
|
|
|
497
521
|
if Options.getMsvcVersion():
|
|
498
|
-
|
|
522
|
+
scons_options["msvc_version"] = Options.getMsvcVersion()
|
|
499
523
|
|
|
500
524
|
if Options.shallDisableCCacheUsage():
|
|
501
|
-
|
|
525
|
+
scons_options["disable_ccache"] = asBoolStr(True)
|
|
502
526
|
|
|
503
527
|
if isWin32Windows() and Options.getWindowsConsoleMode() != "attach":
|
|
504
|
-
|
|
528
|
+
scons_options["console_mode"] = Options.getWindowsConsoleMode()
|
|
505
529
|
|
|
506
530
|
if Options.getLtoMode() != "auto":
|
|
507
|
-
|
|
531
|
+
scons_options["lto_mode"] = Options.getLtoMode()
|
|
508
532
|
|
|
509
533
|
if isWin32OrPosixWindows() or isMacOS():
|
|
510
|
-
|
|
534
|
+
scons_options["noelf_mode"] = asBoolStr(True)
|
|
511
535
|
|
|
512
536
|
if Options.isUnstripped():
|
|
513
|
-
|
|
537
|
+
scons_options["unstripped_mode"] = asBoolStr(True)
|
|
514
538
|
|
|
515
539
|
if isAnacondaPython():
|
|
516
|
-
|
|
540
|
+
scons_options["anaconda_python"] = asBoolStr(True)
|
|
517
541
|
|
|
518
542
|
if isMSYS2MingwPython():
|
|
519
|
-
|
|
543
|
+
scons_options["msys2_mingw_python"] = asBoolStr(True)
|
|
520
544
|
|
|
521
545
|
if isSelfCompiledPythonUninstalled():
|
|
522
|
-
|
|
546
|
+
scons_options["self_compiled_python_uninstalled"] = asBoolStr(True)
|
|
523
547
|
|
|
524
548
|
cpp_defines = Plugins.getPreprocessorSymbols()
|
|
525
549
|
if cpp_defines:
|
|
526
|
-
|
|
550
|
+
scons_options["cpp_defines"] = ",".join(
|
|
527
551
|
"%s%s%s" % (key, "=" if value else "", value or "")
|
|
528
552
|
for key, value in cpp_defines.items()
|
|
529
553
|
)
|
|
530
554
|
|
|
531
555
|
cpp_include_dirs = Plugins.getExtraIncludeDirectories()
|
|
532
556
|
if cpp_include_dirs:
|
|
533
|
-
|
|
557
|
+
scons_options["cpp_include_dirs"] = ",".join(cpp_include_dirs)
|
|
534
558
|
|
|
535
559
|
link_dirs = Plugins.getExtraLinkDirectories()
|
|
536
560
|
if link_dirs:
|
|
537
|
-
|
|
561
|
+
scons_options["link_dirs"] = ",".join(link_dirs)
|
|
538
562
|
|
|
539
563
|
link_libraries = Plugins.getExtraLinkLibraries()
|
|
540
564
|
if link_libraries:
|
|
541
|
-
|
|
565
|
+
scons_options["link_libraries"] = ",".join(link_libraries)
|
|
542
566
|
|
|
543
567
|
if isMacOS():
|
|
544
568
|
macos_min_version = detectBinaryMinMacOS(sys.executable)
|
|
@@ -548,14 +572,14 @@ def setCommonSconsOptions(options):
|
|
|
548
572
|
"Could not detect minimum macOS version for '%s'." % sys.executable
|
|
549
573
|
)
|
|
550
574
|
|
|
551
|
-
|
|
575
|
+
scons_options["macos_min_version"] = macos_min_version
|
|
552
576
|
|
|
553
|
-
|
|
577
|
+
scons_options["macos_target_arch"] = Options.getMacOSTargetArch()
|
|
554
578
|
|
|
555
|
-
|
|
579
|
+
scons_options["target_arch"] = getArchitecture()
|
|
556
580
|
|
|
557
581
|
if Options.getFcfProtectionMode() != "auto":
|
|
558
|
-
|
|
582
|
+
scons_options["cf_protection"] = Options.getFcfProtectionMode()
|
|
559
583
|
|
|
560
584
|
env_values = OrderedDict()
|
|
561
585
|
|
|
@@ -600,7 +624,11 @@ def setCommonSconsOptions(options):
|
|
|
600
624
|
getOnefileChildGraceTime()
|
|
601
625
|
)
|
|
602
626
|
|
|
603
|
-
return env_values
|
|
627
|
+
return scons_options, env_values
|
|
628
|
+
|
|
629
|
+
|
|
630
|
+
def setPythonTargetOptions(scons_options):
|
|
631
|
+
scons_options["gil_mode"] = asBoolStr(isPythonWithGil())
|
|
604
632
|
|
|
605
633
|
|
|
606
634
|
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
nuitka/build/SconsProgress.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
""" Progress bar for Scons compilation part.
|
|
@@ -48,10 +48,17 @@ def updateSconsProgressBar():
|
|
|
48
48
|
if _current == _total:
|
|
49
49
|
closeSconsProgressBar()
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
message = "%s C linking" % _stage
|
|
52
|
+
|
|
53
|
+
if _total > 1:
|
|
54
|
+
message += (
|
|
55
|
+
" with %d files (no progress information available for this stage)"
|
|
56
|
+
% _total
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
message += "."
|
|
60
|
+
|
|
61
|
+
scons_logger.info(message)
|
|
55
62
|
|
|
56
63
|
|
|
57
64
|
def closeSconsProgressBar():
|
nuitka/build/SconsSpawn.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
""" Spawning processes.
|
|
@@ -415,10 +415,10 @@ it or using '--clang' option."""
|
|
|
415
415
|
return spawnCommand
|
|
416
416
|
|
|
417
417
|
|
|
418
|
-
def enableSpawnMonitoring(env,
|
|
418
|
+
def enableSpawnMonitoring(env, source_files):
|
|
419
419
|
if os.name == "nt":
|
|
420
420
|
env["SPAWN"] = _getWindowsSpawnFunction(
|
|
421
|
-
env=env, module_mode=module_mode, source_files=source_files
|
|
421
|
+
env=env, module_mode=env.module_mode, source_files=source_files
|
|
422
422
|
)
|
|
423
423
|
else:
|
|
424
424
|
env["SPAWN"] = _getWrappedSpawnFunction(env=env)
|
nuitka/build/SconsUtils.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
""" Helper functions for the scons file.
|
|
@@ -20,8 +20,10 @@ from nuitka.Tracing import scons_details_logger, scons_logger
|
|
|
20
20
|
from nuitka.utils.Execution import executeProcess
|
|
21
21
|
from nuitka.utils.FileOperations import (
|
|
22
22
|
changeFilenameExtension,
|
|
23
|
+
deleteFile,
|
|
23
24
|
getFileContentByLine,
|
|
24
25
|
getFilenameExtension,
|
|
26
|
+
getNormalizedPath,
|
|
25
27
|
getWindowsShortPathName,
|
|
26
28
|
hasFilenameExtension,
|
|
27
29
|
isFilesystemEncodable,
|
|
@@ -854,6 +856,23 @@ def addBinaryBlobSection(env, blob_filename, section_name):
|
|
|
854
856
|
assert False
|
|
855
857
|
|
|
856
858
|
|
|
859
|
+
def makeResultPathFileSystemEncodable(env, result_exe):
|
|
860
|
+
deleteFile(result_exe, must_exist=False)
|
|
861
|
+
|
|
862
|
+
if os.name == "nt" and not isFilesystemEncodable(result_exe):
|
|
863
|
+
result_exe = os.path.join(
|
|
864
|
+
os.path.dirname(result_exe),
|
|
865
|
+
"_nuitka_temp.pyd" if env.module_mode else "_nuitka_temp.exe",
|
|
866
|
+
)
|
|
867
|
+
|
|
868
|
+
if not isFilesystemEncodable(result_exe):
|
|
869
|
+
result_exe = getNormalizedPath(os.path.relpath(result_exe))
|
|
870
|
+
|
|
871
|
+
deleteFile(result_exe, must_exist=False)
|
|
872
|
+
|
|
873
|
+
return result_exe
|
|
874
|
+
|
|
875
|
+
|
|
857
876
|
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
858
877
|
# integrates with CPython, but also works on its own.
|
|
859
878
|
#
|
nuitka/build/__init__.py
CHANGED