Nuitka-winsvc 2.5.1__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.1.data → Nuitka_winsvc-2.6.data}/scripts/nuitka-run.cmd +1 -1
- {Nuitka_winsvc-2.5.1.data → Nuitka_winsvc-2.6.data}/scripts/nuitka.cmd +1 -1
- {Nuitka_winsvc-2.5.1.dist-info → Nuitka_winsvc-2.6.dist-info}/METADATA +80 -122
- Nuitka_winsvc-2.6.dist-info/RECORD +988 -0
- {Nuitka_winsvc-2.5.1.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 +90 -20
- nuitka/Options.py +160 -53
- 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 +86 -56
- 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 +7 -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 +11 -3
- 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 +13 -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 +11 -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 +8 -26
- nuitka/build/static_src/CompiledCoroutineType.c +33 -35
- 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 +33 -24
- 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 +2 -2
- 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 +4 -1
- nuitka/build/static_src/HelpersDictionaries.c +15 -3
- nuitka/build/static_src/HelpersDictionariesGenerated.c +13 -2
- 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 +2 -2
- nuitka/build/static_src/HelpersTypes.c +1 -1
- nuitka/build/static_src/InspectPatcher.c +2 -1
- nuitka/build/static_src/MainProgram.c +30 -9
- 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 +24 -21
- 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 +5 -2
- 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 +5 -2
- nuitka/freezer/IncludedDataFiles.py +11 -2
- nuitka/freezer/IncludedEntryPoints.py +1 -1
- nuitka/freezer/Onefile.py +14 -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 +2 -2
- 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 +2 -2
- 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 +3 -2
- 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 +71 -0
- nuitka/nodes/shapes/ShapeMixins.py +4 -3
- nuitka/nodes/shapes/StandardShapes.py +2 -51
- 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 +67 -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 +80 -14
- 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 +8 -6
- nuitka/plugins/standard/KivyPlugin.py +2 -1
- nuitka/plugins/standard/MatplotlibPlugin.py +3 -2
- nuitka/plugins/standard/MultiprocessingPlugin.py +2 -1
- nuitka/plugins/standard/NumpyPlugin.py +2 -1
- nuitka/plugins/standard/OptionsNannyPlugin.py +7 -6
- 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 +38 -5
- 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 +173 -49
- 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 +14 -6
- 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 +8 -4
- 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 +29 -5
- nuitka/utils/Hashing.py +6 -2
- 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 +76 -7
- nuitka/utils/Shebang.py +1 -1
- nuitka/utils/Signing.py +11 -5
- 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.1.dist-info/RECORD +0 -977
- {Nuitka_winsvc-2.5.1.dist-info → Nuitka_winsvc-2.6.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-2.5.1.dist-info → Nuitka_winsvc-2.6.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-2.5.1.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,85 +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()
|
|
468
488
|
|
|
469
|
-
|
|
489
|
+
scons_options["nuitka_src"] = getSconsDataPath()
|
|
470
490
|
|
|
471
|
-
|
|
491
|
+
scons_options["python_version"] = python_version_str
|
|
472
492
|
|
|
473
|
-
|
|
493
|
+
scons_options["python_prefix"] = getDirectoryRealPath(getSystemPrefixPath())
|
|
474
494
|
|
|
475
|
-
|
|
495
|
+
scons_options["experimental"] = ",".join(getExperimentalIndications())
|
|
496
|
+
|
|
497
|
+
scons_options["debug_modes"] = ",".join(getDebugModeIndications())
|
|
498
|
+
|
|
499
|
+
scons_options["deployment"] = asBoolStr(isDeploymentMode())
|
|
500
|
+
|
|
501
|
+
scons_options["no_deployment"] = ",".join(Options.getNoDeploymentIndications())
|
|
476
502
|
|
|
477
503
|
if Options.shallRunInDebugger():
|
|
478
|
-
|
|
504
|
+
scons_options["full_names"] = asBoolStr(True)
|
|
479
505
|
|
|
480
506
|
if Options.assumeYesForDownloads():
|
|
481
|
-
|
|
507
|
+
scons_options["assume_yes_for_downloads"] = asBoolStr(True)
|
|
482
508
|
|
|
483
509
|
if not Options.shallUseProgressBar():
|
|
484
|
-
|
|
510
|
+
scons_options["progress_bar"] = asBoolStr(False)
|
|
485
511
|
|
|
486
512
|
if Options.isClang():
|
|
487
|
-
|
|
513
|
+
scons_options["clang_mode"] = asBoolStr(True)
|
|
488
514
|
|
|
489
515
|
if Options.isShowScons():
|
|
490
|
-
|
|
516
|
+
scons_options["show_scons"] = asBoolStr(True)
|
|
491
517
|
|
|
492
518
|
if Options.isMingw64():
|
|
493
|
-
|
|
519
|
+
scons_options["mingw_mode"] = asBoolStr(True)
|
|
494
520
|
|
|
495
521
|
if Options.getMsvcVersion():
|
|
496
|
-
|
|
522
|
+
scons_options["msvc_version"] = Options.getMsvcVersion()
|
|
497
523
|
|
|
498
524
|
if Options.shallDisableCCacheUsage():
|
|
499
|
-
|
|
525
|
+
scons_options["disable_ccache"] = asBoolStr(True)
|
|
500
526
|
|
|
501
527
|
if isWin32Windows() and Options.getWindowsConsoleMode() != "attach":
|
|
502
|
-
|
|
528
|
+
scons_options["console_mode"] = Options.getWindowsConsoleMode()
|
|
503
529
|
|
|
504
530
|
if Options.getLtoMode() != "auto":
|
|
505
|
-
|
|
531
|
+
scons_options["lto_mode"] = Options.getLtoMode()
|
|
506
532
|
|
|
507
533
|
if isWin32OrPosixWindows() or isMacOS():
|
|
508
|
-
|
|
534
|
+
scons_options["noelf_mode"] = asBoolStr(True)
|
|
509
535
|
|
|
510
536
|
if Options.isUnstripped():
|
|
511
|
-
|
|
537
|
+
scons_options["unstripped_mode"] = asBoolStr(True)
|
|
512
538
|
|
|
513
539
|
if isAnacondaPython():
|
|
514
|
-
|
|
540
|
+
scons_options["anaconda_python"] = asBoolStr(True)
|
|
515
541
|
|
|
516
542
|
if isMSYS2MingwPython():
|
|
517
|
-
|
|
543
|
+
scons_options["msys2_mingw_python"] = asBoolStr(True)
|
|
518
544
|
|
|
519
545
|
if isSelfCompiledPythonUninstalled():
|
|
520
|
-
|
|
546
|
+
scons_options["self_compiled_python_uninstalled"] = asBoolStr(True)
|
|
521
547
|
|
|
522
548
|
cpp_defines = Plugins.getPreprocessorSymbols()
|
|
523
549
|
if cpp_defines:
|
|
524
|
-
|
|
550
|
+
scons_options["cpp_defines"] = ",".join(
|
|
525
551
|
"%s%s%s" % (key, "=" if value else "", value or "")
|
|
526
552
|
for key, value in cpp_defines.items()
|
|
527
553
|
)
|
|
528
554
|
|
|
529
555
|
cpp_include_dirs = Plugins.getExtraIncludeDirectories()
|
|
530
556
|
if cpp_include_dirs:
|
|
531
|
-
|
|
557
|
+
scons_options["cpp_include_dirs"] = ",".join(cpp_include_dirs)
|
|
532
558
|
|
|
533
559
|
link_dirs = Plugins.getExtraLinkDirectories()
|
|
534
560
|
if link_dirs:
|
|
535
|
-
|
|
561
|
+
scons_options["link_dirs"] = ",".join(link_dirs)
|
|
536
562
|
|
|
537
563
|
link_libraries = Plugins.getExtraLinkLibraries()
|
|
538
564
|
if link_libraries:
|
|
539
|
-
|
|
565
|
+
scons_options["link_libraries"] = ",".join(link_libraries)
|
|
540
566
|
|
|
541
567
|
if isMacOS():
|
|
542
568
|
macos_min_version = detectBinaryMinMacOS(sys.executable)
|
|
@@ -546,14 +572,14 @@ def setCommonSconsOptions(options):
|
|
|
546
572
|
"Could not detect minimum macOS version for '%s'." % sys.executable
|
|
547
573
|
)
|
|
548
574
|
|
|
549
|
-
|
|
575
|
+
scons_options["macos_min_version"] = macos_min_version
|
|
550
576
|
|
|
551
|
-
|
|
577
|
+
scons_options["macos_target_arch"] = Options.getMacOSTargetArch()
|
|
552
578
|
|
|
553
|
-
|
|
579
|
+
scons_options["target_arch"] = getArchitecture()
|
|
554
580
|
|
|
555
581
|
if Options.getFcfProtectionMode() != "auto":
|
|
556
|
-
|
|
582
|
+
scons_options["cf_protection"] = Options.getFcfProtectionMode()
|
|
557
583
|
|
|
558
584
|
env_values = OrderedDict()
|
|
559
585
|
|
|
@@ -598,7 +624,11 @@ def setCommonSconsOptions(options):
|
|
|
598
624
|
getOnefileChildGraceTime()
|
|
599
625
|
)
|
|
600
626
|
|
|
601
|
-
return env_values
|
|
627
|
+
return scons_options, env_values
|
|
628
|
+
|
|
629
|
+
|
|
630
|
+
def setPythonTargetOptions(scons_options):
|
|
631
|
+
scons_options["gil_mode"] = asBoolStr(isPythonWithGil())
|
|
602
632
|
|
|
603
633
|
|
|
604
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