frida 16.2.0 → 16.2.2
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.
- package/BSDmakefile +6 -0
- package/Makefile +16 -0
- package/README.md +14 -11
- package/configure +18 -0
- package/configure.bat +22 -0
- package/dist/native.js +0 -8
- package/lib/application.ts +98 -0
- package/lib/authentication.ts +3 -0
- package/lib/build.py +50 -0
- package/lib/bus.ts +30 -0
- package/lib/cancellable.ts +33 -0
- package/lib/child.ts +15 -0
- package/lib/crash.ts +11 -0
- package/lib/device.ts +329 -0
- package/lib/device_manager.ts +69 -0
- package/lib/endpoint_parameters.ts +56 -0
- package/lib/icon.ts +15 -0
- package/lib/index.ts +311 -0
- package/lib/iostream.ts +78 -0
- package/lib/meson.build +53 -0
- package/lib/native.ts +9 -0
- package/lib/portal_membership.ts +10 -0
- package/lib/portal_service.ts +105 -0
- package/lib/process.ts +57 -0
- package/lib/relay.ts +44 -0
- package/lib/script.ts +352 -0
- package/lib/session.ts +113 -0
- package/lib/signals.ts +45 -0
- package/lib/socket_address.ts +35 -0
- package/lib/spawn.ts +4 -0
- package/lib/system_parameters.ts +78 -0
- package/make.bat +23 -0
- package/meson.build +160 -0
- package/meson.options +11 -0
- package/package.json +27 -6
- package/releng/deps.py +1133 -0
- package/releng/deps.toml +391 -0
- package/releng/devkit-assets/frida-core-example-unix.c +188 -0
- package/releng/devkit-assets/frida-core-example-windows.c +197 -0
- package/releng/devkit-assets/frida-core-example.sln +28 -0
- package/releng/devkit-assets/frida-core-example.vcxproj +157 -0
- package/releng/devkit-assets/frida-core-example.vcxproj.filters +27 -0
- package/releng/devkit-assets/frida-gum-example-unix.c +122 -0
- package/releng/devkit-assets/frida-gum-example-windows.c +132 -0
- package/releng/devkit-assets/frida-gum-example.sln +28 -0
- package/releng/devkit-assets/frida-gum-example.vcxproj +157 -0
- package/releng/devkit-assets/frida-gum-example.vcxproj.filters +27 -0
- package/releng/devkit-assets/frida-gumjs-example-unix.c +84 -0
- package/releng/devkit-assets/frida-gumjs-example-windows.c +91 -0
- package/releng/devkit-assets/frida-gumjs-example.sln +28 -0
- package/releng/devkit-assets/frida-gumjs-example.vcxproj +157 -0
- package/releng/devkit-assets/frida-gumjs-example.vcxproj.filters +27 -0
- package/releng/devkit.py +535 -0
- package/releng/env.py +420 -0
- package/releng/env_android.py +150 -0
- package/releng/env_apple.py +176 -0
- package/releng/env_generic.py +373 -0
- package/releng/frida_version.py +69 -0
- package/releng/machine_file.py +44 -0
- package/releng/machine_spec.py +290 -0
- package/releng/meson/meson.py +27 -0
- package/releng/meson/mesonbuild/__init__.py +0 -0
- package/releng/meson/mesonbuild/_pathlib.py +63 -0
- package/releng/meson/mesonbuild/_typing.py +69 -0
- package/releng/meson/mesonbuild/arglist.py +321 -0
- package/releng/meson/mesonbuild/ast/__init__.py +23 -0
- package/releng/meson/mesonbuild/ast/interpreter.py +441 -0
- package/releng/meson/mesonbuild/ast/introspection.py +374 -0
- package/releng/meson/mesonbuild/ast/postprocess.py +109 -0
- package/releng/meson/mesonbuild/ast/printer.py +620 -0
- package/releng/meson/mesonbuild/ast/visitor.py +161 -0
- package/releng/meson/mesonbuild/backend/__init__.py +0 -0
- package/releng/meson/mesonbuild/backend/backends.py +2047 -0
- package/releng/meson/mesonbuild/backend/ninjabackend.py +3808 -0
- package/releng/meson/mesonbuild/backend/nonebackend.py +26 -0
- package/releng/meson/mesonbuild/backend/vs2010backend.py +2078 -0
- package/releng/meson/mesonbuild/backend/vs2012backend.py +35 -0
- package/releng/meson/mesonbuild/backend/vs2013backend.py +34 -0
- package/releng/meson/mesonbuild/backend/vs2015backend.py +35 -0
- package/releng/meson/mesonbuild/backend/vs2017backend.py +59 -0
- package/releng/meson/mesonbuild/backend/vs2019backend.py +54 -0
- package/releng/meson/mesonbuild/backend/vs2022backend.py +54 -0
- package/releng/meson/mesonbuild/backend/xcodebackend.py +1781 -0
- package/releng/meson/mesonbuild/build.py +3249 -0
- package/releng/meson/mesonbuild/cargo/__init__.py +5 -0
- package/releng/meson/mesonbuild/cargo/builder.py +238 -0
- package/releng/meson/mesonbuild/cargo/cfg.py +274 -0
- package/releng/meson/mesonbuild/cargo/interpreter.py +733 -0
- package/releng/meson/mesonbuild/cargo/manifest.py +227 -0
- package/releng/meson/mesonbuild/cargo/version.py +95 -0
- package/releng/meson/mesonbuild/cmake/__init__.py +28 -0
- package/releng/meson/mesonbuild/cmake/common.py +331 -0
- package/releng/meson/mesonbuild/cmake/data/__init__.py +0 -0
- package/releng/meson/mesonbuild/cmake/data/preload.cmake +82 -0
- package/releng/meson/mesonbuild/cmake/executor.py +241 -0
- package/releng/meson/mesonbuild/cmake/fileapi.py +324 -0
- package/releng/meson/mesonbuild/cmake/generator.py +186 -0
- package/releng/meson/mesonbuild/cmake/interpreter.py +1267 -0
- package/releng/meson/mesonbuild/cmake/toolchain.py +248 -0
- package/releng/meson/mesonbuild/cmake/traceparser.py +814 -0
- package/releng/meson/mesonbuild/cmake/tracetargets.py +161 -0
- package/releng/meson/mesonbuild/compilers/__init__.py +86 -0
- package/releng/meson/mesonbuild/compilers/asm.py +307 -0
- package/releng/meson/mesonbuild/compilers/c.py +788 -0
- package/releng/meson/mesonbuild/compilers/c_function_attributes.py +143 -0
- package/releng/meson/mesonbuild/compilers/compilers.py +1388 -0
- package/releng/meson/mesonbuild/compilers/cpp.py +1035 -0
- package/releng/meson/mesonbuild/compilers/cs.py +136 -0
- package/releng/meson/mesonbuild/compilers/cuda.py +806 -0
- package/releng/meson/mesonbuild/compilers/cython.py +91 -0
- package/releng/meson/mesonbuild/compilers/d.py +861 -0
- package/releng/meson/mesonbuild/compilers/detect.py +1396 -0
- package/releng/meson/mesonbuild/compilers/fortran.py +523 -0
- package/releng/meson/mesonbuild/compilers/java.py +113 -0
- package/releng/meson/mesonbuild/compilers/mixins/__init__.py +0 -0
- package/releng/meson/mesonbuild/compilers/mixins/arm.py +167 -0
- package/releng/meson/mesonbuild/compilers/mixins/ccrx.py +113 -0
- package/releng/meson/mesonbuild/compilers/mixins/clang.py +170 -0
- package/releng/meson/mesonbuild/compilers/mixins/clike.py +1330 -0
- package/releng/meson/mesonbuild/compilers/mixins/compcert.py +117 -0
- package/releng/meson/mesonbuild/compilers/mixins/elbrus.py +93 -0
- package/releng/meson/mesonbuild/compilers/mixins/emscripten.py +89 -0
- package/releng/meson/mesonbuild/compilers/mixins/gnu.py +629 -0
- package/releng/meson/mesonbuild/compilers/mixins/intel.py +167 -0
- package/releng/meson/mesonbuild/compilers/mixins/islinker.py +120 -0
- package/releng/meson/mesonbuild/compilers/mixins/metrowerks.py +279 -0
- package/releng/meson/mesonbuild/compilers/mixins/pgi.py +88 -0
- package/releng/meson/mesonbuild/compilers/mixins/ti.py +130 -0
- package/releng/meson/mesonbuild/compilers/mixins/visualstudio.py +458 -0
- package/releng/meson/mesonbuild/compilers/mixins/xc16.py +111 -0
- package/releng/meson/mesonbuild/compilers/objc.py +120 -0
- package/releng/meson/mesonbuild/compilers/objcpp.py +102 -0
- package/releng/meson/mesonbuild/compilers/rust.py +230 -0
- package/releng/meson/mesonbuild/compilers/swift.py +131 -0
- package/releng/meson/mesonbuild/compilers/vala.py +121 -0
- package/releng/meson/mesonbuild/coredata.py +1532 -0
- package/releng/meson/mesonbuild/dependencies/__init__.py +252 -0
- package/releng/meson/mesonbuild/dependencies/base.py +663 -0
- package/releng/meson/mesonbuild/dependencies/boost.py +1083 -0
- package/releng/meson/mesonbuild/dependencies/cmake.py +656 -0
- package/releng/meson/mesonbuild/dependencies/coarrays.py +80 -0
- package/releng/meson/mesonbuild/dependencies/configtool.py +163 -0
- package/releng/meson/mesonbuild/dependencies/cuda.py +295 -0
- package/releng/meson/mesonbuild/dependencies/data/CMakeLists.txt +102 -0
- package/releng/meson/mesonbuild/dependencies/data/CMakeListsLLVM.txt +204 -0
- package/releng/meson/mesonbuild/dependencies/data/CMakePathInfo.txt +31 -0
- package/releng/meson/mesonbuild/dependencies/data/__init__.py +0 -0
- package/releng/meson/mesonbuild/dependencies/detect.py +225 -0
- package/releng/meson/mesonbuild/dependencies/dev.py +707 -0
- package/releng/meson/mesonbuild/dependencies/dub.py +424 -0
- package/releng/meson/mesonbuild/dependencies/factory.py +146 -0
- package/releng/meson/mesonbuild/dependencies/framework.py +111 -0
- package/releng/meson/mesonbuild/dependencies/hdf5.py +168 -0
- package/releng/meson/mesonbuild/dependencies/misc.py +618 -0
- package/releng/meson/mesonbuild/dependencies/mpi.py +231 -0
- package/releng/meson/mesonbuild/dependencies/pkgconfig.py +570 -0
- package/releng/meson/mesonbuild/dependencies/platform.py +52 -0
- package/releng/meson/mesonbuild/dependencies/python.py +431 -0
- package/releng/meson/mesonbuild/dependencies/qt.py +484 -0
- package/releng/meson/mesonbuild/dependencies/scalapack.py +142 -0
- package/releng/meson/mesonbuild/dependencies/ui.py +281 -0
- package/releng/meson/mesonbuild/depfile.py +82 -0
- package/releng/meson/mesonbuild/envconfig.py +480 -0
- package/releng/meson/mesonbuild/environment.py +987 -0
- package/releng/meson/mesonbuild/interpreter/__init__.py +47 -0
- package/releng/meson/mesonbuild/interpreter/compiler.py +900 -0
- package/releng/meson/mesonbuild/interpreter/dependencyfallbacks.py +386 -0
- package/releng/meson/mesonbuild/interpreter/interpreter.py +3595 -0
- package/releng/meson/mesonbuild/interpreter/interpreterobjects.py +1096 -0
- package/releng/meson/mesonbuild/interpreter/kwargs.py +479 -0
- package/releng/meson/mesonbuild/interpreter/mesonmain.py +487 -0
- package/releng/meson/mesonbuild/interpreter/primitives/__init__.py +29 -0
- package/releng/meson/mesonbuild/interpreter/primitives/array.py +108 -0
- package/releng/meson/mesonbuild/interpreter/primitives/boolean.py +52 -0
- package/releng/meson/mesonbuild/interpreter/primitives/dict.py +88 -0
- package/releng/meson/mesonbuild/interpreter/primitives/integer.py +86 -0
- package/releng/meson/mesonbuild/interpreter/primitives/range.py +38 -0
- package/releng/meson/mesonbuild/interpreter/primitives/string.py +247 -0
- package/releng/meson/mesonbuild/interpreter/type_checking.py +853 -0
- package/releng/meson/mesonbuild/interpreterbase/__init__.py +126 -0
- package/releng/meson/mesonbuild/interpreterbase/_unholder.py +25 -0
- package/releng/meson/mesonbuild/interpreterbase/baseobjects.py +174 -0
- package/releng/meson/mesonbuild/interpreterbase/decorators.py +806 -0
- package/releng/meson/mesonbuild/interpreterbase/disabler.py +35 -0
- package/releng/meson/mesonbuild/interpreterbase/exceptions.py +22 -0
- package/releng/meson/mesonbuild/interpreterbase/helpers.py +67 -0
- package/releng/meson/mesonbuild/interpreterbase/interpreterbase.py +665 -0
- package/releng/meson/mesonbuild/interpreterbase/operator.py +32 -0
- package/releng/meson/mesonbuild/linkers/__init__.py +20 -0
- package/releng/meson/mesonbuild/linkers/base.py +39 -0
- package/releng/meson/mesonbuild/linkers/detect.py +229 -0
- package/releng/meson/mesonbuild/linkers/linkers.py +1614 -0
- package/releng/meson/mesonbuild/mcompile.py +380 -0
- package/releng/meson/mesonbuild/mconf.py +368 -0
- package/releng/meson/mesonbuild/mdevenv.py +234 -0
- package/releng/meson/mesonbuild/mdist.py +376 -0
- package/releng/meson/mesonbuild/mesondata.py +38 -0
- package/releng/meson/mesonbuild/mesonlib.py +23 -0
- package/releng/meson/mesonbuild/mesonmain.py +289 -0
- package/releng/meson/mesonbuild/minit.py +204 -0
- package/releng/meson/mesonbuild/minstall.py +864 -0
- package/releng/meson/mesonbuild/mintro.py +667 -0
- package/releng/meson/mesonbuild/mlog.py +542 -0
- package/releng/meson/mesonbuild/modules/__init__.py +270 -0
- package/releng/meson/mesonbuild/modules/cmake.py +442 -0
- package/releng/meson/mesonbuild/modules/cuda.py +377 -0
- package/releng/meson/mesonbuild/modules/dlang.py +117 -0
- package/releng/meson/mesonbuild/modules/external_project.py +306 -0
- package/releng/meson/mesonbuild/modules/fs.py +323 -0
- package/releng/meson/mesonbuild/modules/gnome.py +2215 -0
- package/releng/meson/mesonbuild/modules/hotdoc.py +487 -0
- package/releng/meson/mesonbuild/modules/i18n.py +405 -0
- package/releng/meson/mesonbuild/modules/icestorm.py +123 -0
- package/releng/meson/mesonbuild/modules/java.py +112 -0
- package/releng/meson/mesonbuild/modules/keyval.py +65 -0
- package/releng/meson/mesonbuild/modules/modtest.py +33 -0
- package/releng/meson/mesonbuild/modules/pkgconfig.py +744 -0
- package/releng/meson/mesonbuild/modules/python.py +556 -0
- package/releng/meson/mesonbuild/modules/python3.py +85 -0
- package/releng/meson/mesonbuild/modules/qt.py +621 -0
- package/releng/meson/mesonbuild/modules/qt4.py +23 -0
- package/releng/meson/mesonbuild/modules/qt5.py +23 -0
- package/releng/meson/mesonbuild/modules/qt6.py +22 -0
- package/releng/meson/mesonbuild/modules/rust.py +355 -0
- package/releng/meson/mesonbuild/modules/simd.py +114 -0
- package/releng/meson/mesonbuild/modules/sourceset.py +291 -0
- package/releng/meson/mesonbuild/modules/wayland.py +151 -0
- package/releng/meson/mesonbuild/modules/windows.py +207 -0
- package/releng/meson/mesonbuild/mparser.py +1114 -0
- package/releng/meson/mesonbuild/msetup.py +365 -0
- package/releng/meson/mesonbuild/msubprojects.py +764 -0
- package/releng/meson/mesonbuild/mtest.py +2201 -0
- package/releng/meson/mesonbuild/munstable_coredata.py +107 -0
- package/releng/meson/mesonbuild/optinterpreter.py +276 -0
- package/releng/meson/mesonbuild/programs.py +367 -0
- package/releng/meson/mesonbuild/rewriter.py +1075 -0
- package/releng/meson/mesonbuild/scripts/__init__.py +10 -0
- package/releng/meson/mesonbuild/scripts/clangformat.py +55 -0
- package/releng/meson/mesonbuild/scripts/clangtidy.py +30 -0
- package/releng/meson/mesonbuild/scripts/cleantrees.py +35 -0
- package/releng/meson/mesonbuild/scripts/cmake_run_ctgt.py +103 -0
- package/releng/meson/mesonbuild/scripts/cmd_or_ps.ps1 +17 -0
- package/releng/meson/mesonbuild/scripts/copy.py +19 -0
- package/releng/meson/mesonbuild/scripts/coverage.py +214 -0
- package/releng/meson/mesonbuild/scripts/delwithsuffix.py +27 -0
- package/releng/meson/mesonbuild/scripts/depfixer.py +495 -0
- package/releng/meson/mesonbuild/scripts/depscan.py +198 -0
- package/releng/meson/mesonbuild/scripts/dirchanger.py +20 -0
- package/releng/meson/mesonbuild/scripts/env2mfile.py +402 -0
- package/releng/meson/mesonbuild/scripts/externalproject.py +106 -0
- package/releng/meson/mesonbuild/scripts/gettext.py +86 -0
- package/releng/meson/mesonbuild/scripts/gtkdochelper.py +286 -0
- package/releng/meson/mesonbuild/scripts/hotdochelper.py +40 -0
- package/releng/meson/mesonbuild/scripts/itstool.py +77 -0
- package/releng/meson/mesonbuild/scripts/meson_exe.py +115 -0
- package/releng/meson/mesonbuild/scripts/msgfmthelper.py +29 -0
- package/releng/meson/mesonbuild/scripts/pycompile.py +54 -0
- package/releng/meson/mesonbuild/scripts/python_info.py +121 -0
- package/releng/meson/mesonbuild/scripts/regen_checker.py +55 -0
- package/releng/meson/mesonbuild/scripts/run_tool.py +58 -0
- package/releng/meson/mesonbuild/scripts/scanbuild.py +57 -0
- package/releng/meson/mesonbuild/scripts/symbolextractor.py +322 -0
- package/releng/meson/mesonbuild/scripts/tags.py +44 -0
- package/releng/meson/mesonbuild/scripts/test_loaded_modules.py +14 -0
- package/releng/meson/mesonbuild/scripts/uninstall.py +41 -0
- package/releng/meson/mesonbuild/scripts/vcstagger.py +35 -0
- package/releng/meson/mesonbuild/scripts/yasm.py +24 -0
- package/releng/meson/mesonbuild/templates/__init__.py +0 -0
- package/releng/meson/mesonbuild/templates/cpptemplates.py +143 -0
- package/releng/meson/mesonbuild/templates/cstemplates.py +90 -0
- package/releng/meson/mesonbuild/templates/ctemplates.py +126 -0
- package/releng/meson/mesonbuild/templates/cudatemplates.py +143 -0
- package/releng/meson/mesonbuild/templates/dlangtemplates.py +109 -0
- package/releng/meson/mesonbuild/templates/fortrantemplates.py +101 -0
- package/releng/meson/mesonbuild/templates/javatemplates.py +94 -0
- package/releng/meson/mesonbuild/templates/mesontemplates.py +70 -0
- package/releng/meson/mesonbuild/templates/objcpptemplates.py +126 -0
- package/releng/meson/mesonbuild/templates/objctemplates.py +126 -0
- package/releng/meson/mesonbuild/templates/rusttemplates.py +79 -0
- package/releng/meson/mesonbuild/templates/samplefactory.py +41 -0
- package/releng/meson/mesonbuild/templates/sampleimpl.py +160 -0
- package/releng/meson/mesonbuild/templates/valatemplates.py +82 -0
- package/releng/meson/mesonbuild/utils/__init__.py +0 -0
- package/releng/meson/mesonbuild/utils/core.py +166 -0
- package/releng/meson/mesonbuild/utils/platform.py +27 -0
- package/releng/meson/mesonbuild/utils/posix.py +32 -0
- package/releng/meson/mesonbuild/utils/universal.py +2445 -0
- package/releng/meson/mesonbuild/utils/vsenv.py +126 -0
- package/releng/meson/mesonbuild/utils/win32.py +29 -0
- package/releng/meson/mesonbuild/wrap/__init__.py +59 -0
- package/releng/meson/mesonbuild/wrap/wrap.py +846 -0
- package/releng/meson/mesonbuild/wrap/wraptool.py +198 -0
- package/releng/meson-scripts/BSDmakefile +6 -0
- package/releng/meson-scripts/Makefile +16 -0
- package/releng/meson-scripts/configure +18 -0
- package/releng/meson-scripts/configure.bat +22 -0
- package/releng/meson-scripts/make.bat +23 -0
- package/releng/meson_configure.py +506 -0
- package/releng/meson_make.py +131 -0
- package/releng/mkdevkit.py +107 -0
- package/releng/mkfatmacho.py +54 -0
- package/releng/post-process-oabi.py +97 -0
- package/releng/progress.py +14 -0
- package/releng/sync-from-upstream.py +185 -0
- package/releng/tomlkit/tomlkit/__init__.py +59 -0
- package/releng/tomlkit/tomlkit/_compat.py +22 -0
- package/releng/tomlkit/tomlkit/_types.py +83 -0
- package/releng/tomlkit/tomlkit/_utils.py +158 -0
- package/releng/tomlkit/tomlkit/api.py +308 -0
- package/releng/tomlkit/tomlkit/container.py +875 -0
- package/releng/tomlkit/tomlkit/exceptions.py +227 -0
- package/releng/tomlkit/tomlkit/items.py +1967 -0
- package/releng/tomlkit/tomlkit/parser.py +1141 -0
- package/releng/tomlkit/tomlkit/py.typed +0 -0
- package/releng/tomlkit/tomlkit/source.py +180 -0
- package/releng/tomlkit/tomlkit/toml_char.py +52 -0
- package/releng/tomlkit/tomlkit/toml_document.py +7 -0
- package/releng/tomlkit/tomlkit/toml_file.py +58 -0
- package/releng/winenv.py +140 -0
- package/scripts/adjust-version.py +19 -0
- package/scripts/detect-version.py +40 -0
- package/scripts/fetch-abi-bits.py +343 -0
- package/scripts/install.js +23 -0
- package/scripts/package.py +15 -0
- package/src/addon.cc +76 -0
- package/src/application.cc +148 -0
- package/src/application.h +31 -0
- package/src/authentication.cc +174 -0
- package/src/authentication.h +24 -0
- package/src/bus.cc +167 -0
- package/src/bus.h +33 -0
- package/src/cancellable.cc +117 -0
- package/src/cancellable.h +31 -0
- package/src/child.cc +150 -0
- package/src/child.h +32 -0
- package/src/crash.cc +122 -0
- package/src/crash.h +30 -0
- package/src/device.cc +1302 -0
- package/src/device.h +55 -0
- package/src/device_manager.cc +362 -0
- package/src/device_manager.h +35 -0
- package/src/endpoint_parameters.cc +171 -0
- package/src/endpoint_parameters.h +28 -0
- package/src/glib_context.cc +62 -0
- package/src/glib_context.h +29 -0
- package/src/glib_object.cc +25 -0
- package/src/glib_object.h +37 -0
- package/src/iostream.cc +247 -0
- package/src/iostream.h +30 -0
- package/src/meson.build +26 -0
- package/src/operation.h +94 -0
- package/src/portal_membership.cc +100 -0
- package/src/portal_membership.h +26 -0
- package/src/portal_service.cc +401 -0
- package/src/portal_service.h +40 -0
- package/src/process.cc +135 -0
- package/src/process.h +30 -0
- package/src/relay.cc +139 -0
- package/src/relay.h +31 -0
- package/src/runtime.cc +443 -0
- package/src/runtime.h +64 -0
- package/src/script.cc +301 -0
- package/src/script.h +36 -0
- package/src/session.cc +860 -0
- package/src/session.h +42 -0
- package/src/signals.cc +334 -0
- package/src/signals.h +47 -0
- package/src/spawn.cc +95 -0
- package/src/spawn.h +27 -0
- package/src/usage_monitor.h +117 -0
- package/src/uv_context.cc +118 -0
- package/src/uv_context.h +40 -0
- package/src/win_delay_load_hook.cc +63 -0
- package/subprojects/frida-core.wrap +8 -0
- package/subprojects/nan.wrap +9 -0
- package/subprojects/packagefiles/nan.patch +13 -0
- package/test/data/index.ts +13 -0
- package/test/data/unixvictim-linux-x86 +0 -0
- package/test/data/unixvictim-linux-x86_64 +0 -0
- package/test/data/unixvictim-macos +0 -0
- package/test/device.ts +27 -0
- package/test/device_manager.ts +16 -0
- package/test/labrat.ts +32 -0
- package/test/script.ts +176 -0
- package/test/session.ts +73 -0
- package/tsconfig.json +18 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
# Copyright 2019 The Meson development team
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
from . import coredata as cdata
|
|
8
|
+
from .mesonlib import MachineChoice, OptionKey
|
|
9
|
+
|
|
10
|
+
import os.path
|
|
11
|
+
import pprint
|
|
12
|
+
import textwrap
|
|
13
|
+
|
|
14
|
+
# Note: when adding arguments, please also add them to the completion
|
|
15
|
+
# scripts in $MESONSRC/data/shell-completions/
|
|
16
|
+
def add_arguments(parser):
|
|
17
|
+
parser.add_argument('--all', action='store_true', dest='all', default=False,
|
|
18
|
+
help='Show data not used by current backend.')
|
|
19
|
+
|
|
20
|
+
parser.add_argument('builddir', nargs='?', default='.', help='The build directory')
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def dump_compilers(compilers):
|
|
24
|
+
for lang, compiler in compilers.items():
|
|
25
|
+
print(' ' + lang + ':')
|
|
26
|
+
print(' Id: ' + compiler.id)
|
|
27
|
+
print(' Command: ' + ' '.join(compiler.exelist))
|
|
28
|
+
if compiler.full_version:
|
|
29
|
+
print(' Full version: ' + compiler.full_version)
|
|
30
|
+
if compiler.version:
|
|
31
|
+
print(' Detected version: ' + compiler.version)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def dump_guids(d):
|
|
35
|
+
for name, value in d.items():
|
|
36
|
+
print(' ' + name + ': ' + value)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def run(options):
|
|
40
|
+
datadir = 'meson-private'
|
|
41
|
+
if options.builddir is not None:
|
|
42
|
+
datadir = os.path.join(options.builddir, datadir)
|
|
43
|
+
if not os.path.isdir(datadir):
|
|
44
|
+
print('Current directory is not a build dir. Please specify it or '
|
|
45
|
+
'change the working directory to it.')
|
|
46
|
+
return 1
|
|
47
|
+
|
|
48
|
+
all_backends = options.all
|
|
49
|
+
|
|
50
|
+
print('This is a dump of the internal unstable cache of meson. This is for debugging only.')
|
|
51
|
+
print('Do NOT parse, this will change from version to version in incompatible ways')
|
|
52
|
+
print('')
|
|
53
|
+
|
|
54
|
+
coredata = cdata.load(options.builddir)
|
|
55
|
+
backend = coredata.get_option(OptionKey('backend'))
|
|
56
|
+
for k, v in sorted(coredata.__dict__.items()):
|
|
57
|
+
if k in {'backend_options', 'base_options', 'builtins', 'compiler_options', 'user_options'}:
|
|
58
|
+
# use `meson configure` to view these
|
|
59
|
+
pass
|
|
60
|
+
elif k in {'install_guid', 'test_guid', 'regen_guid'}:
|
|
61
|
+
if all_backends or backend.startswith('vs'):
|
|
62
|
+
print(k + ': ' + v)
|
|
63
|
+
elif k == 'target_guids':
|
|
64
|
+
if all_backends or backend.startswith('vs'):
|
|
65
|
+
print(k + ':')
|
|
66
|
+
dump_guids(v)
|
|
67
|
+
elif k == 'lang_guids':
|
|
68
|
+
if all_backends or backend.startswith('vs') or backend == 'xcode':
|
|
69
|
+
print(k + ':')
|
|
70
|
+
dump_guids(v)
|
|
71
|
+
elif k == 'meson_command':
|
|
72
|
+
if all_backends or backend.startswith('vs'):
|
|
73
|
+
print('Meson command used in build file regeneration: ' + ' '.join(v))
|
|
74
|
+
elif k == 'pkgconf_envvar':
|
|
75
|
+
print('Last seen PKGCONFIG environment variable value: ' + v)
|
|
76
|
+
elif k == 'version':
|
|
77
|
+
print('Meson version: ' + v)
|
|
78
|
+
elif k == 'cross_files':
|
|
79
|
+
if v:
|
|
80
|
+
print('Cross File: ' + ' '.join(v))
|
|
81
|
+
elif k == 'config_files':
|
|
82
|
+
if v:
|
|
83
|
+
print('Native File: ' + ' '.join(v))
|
|
84
|
+
elif k == 'compilers':
|
|
85
|
+
for for_machine in MachineChoice:
|
|
86
|
+
print('Cached {} machine compilers:'.format(
|
|
87
|
+
for_machine.get_lower_case_name()))
|
|
88
|
+
dump_compilers(v[for_machine])
|
|
89
|
+
elif k == 'deps':
|
|
90
|
+
def print_dep(dep_key, dep):
|
|
91
|
+
print(' ' + dep_key[0][1] + ": ")
|
|
92
|
+
print(' compile args: ' + repr(dep.get_compile_args()))
|
|
93
|
+
print(' link args: ' + repr(dep.get_link_args()))
|
|
94
|
+
if dep.get_sources():
|
|
95
|
+
print(' sources: ' + repr(dep.get_sources()))
|
|
96
|
+
print(' version: ' + repr(dep.get_version()))
|
|
97
|
+
|
|
98
|
+
for for_machine in iter(MachineChoice):
|
|
99
|
+
items_list = sorted(v[for_machine].items())
|
|
100
|
+
if items_list:
|
|
101
|
+
print(f'Cached dependencies for {for_machine.get_lower_case_name()} machine')
|
|
102
|
+
for dep_key, deps in items_list:
|
|
103
|
+
for dep in deps:
|
|
104
|
+
print_dep(dep_key, dep)
|
|
105
|
+
else:
|
|
106
|
+
print(k + ':')
|
|
107
|
+
print(textwrap.indent(pprint.pformat(v), ' '))
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
# Copyright 2013-2014 The Meson development team
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
import re
|
|
7
|
+
import typing as T
|
|
8
|
+
|
|
9
|
+
from . import coredata
|
|
10
|
+
from . import mesonlib
|
|
11
|
+
from . import mparser
|
|
12
|
+
from . import mlog
|
|
13
|
+
from .interpreterbase import FeatureNew, FeatureDeprecated, typed_pos_args, typed_kwargs, ContainerTypeInfo, KwargInfo
|
|
14
|
+
from .interpreter.type_checking import NoneType, in_set_validator
|
|
15
|
+
|
|
16
|
+
if T.TYPE_CHECKING:
|
|
17
|
+
from .interpreterbase import TYPE_var, TYPE_kwargs
|
|
18
|
+
from .interpreterbase import SubProject
|
|
19
|
+
from typing_extensions import TypedDict, Literal
|
|
20
|
+
|
|
21
|
+
_DEPRECATED_ARGS = T.Union[bool, str, T.Dict[str, str], T.List[str]]
|
|
22
|
+
|
|
23
|
+
FuncOptionArgs = TypedDict('FuncOptionArgs', {
|
|
24
|
+
'type': str,
|
|
25
|
+
'description': str,
|
|
26
|
+
'yield': bool,
|
|
27
|
+
'choices': T.Optional[T.List[str]],
|
|
28
|
+
'value': object,
|
|
29
|
+
'min': T.Optional[int],
|
|
30
|
+
'max': T.Optional[int],
|
|
31
|
+
'deprecated': _DEPRECATED_ARGS,
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
class StringArgs(TypedDict):
|
|
35
|
+
value: str
|
|
36
|
+
|
|
37
|
+
class BooleanArgs(TypedDict):
|
|
38
|
+
value: bool
|
|
39
|
+
|
|
40
|
+
class ComboArgs(TypedDict):
|
|
41
|
+
value: str
|
|
42
|
+
choices: T.List[str]
|
|
43
|
+
|
|
44
|
+
class IntegerArgs(TypedDict):
|
|
45
|
+
value: int
|
|
46
|
+
min: T.Optional[int]
|
|
47
|
+
max: T.Optional[int]
|
|
48
|
+
|
|
49
|
+
class StringArrayArgs(TypedDict):
|
|
50
|
+
value: T.Optional[T.Union[str, T.List[str]]]
|
|
51
|
+
choices: T.List[str]
|
|
52
|
+
|
|
53
|
+
class FeatureArgs(TypedDict):
|
|
54
|
+
value: Literal['enabled', 'disabled', 'auto']
|
|
55
|
+
choices: T.List[str]
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class OptionException(mesonlib.MesonException):
|
|
59
|
+
pass
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
optname_regex = re.compile('[^a-zA-Z0-9_-]')
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class OptionInterpreter:
|
|
66
|
+
def __init__(self, subproject: 'SubProject') -> None:
|
|
67
|
+
self.options: 'coredata.MutableKeyedOptionDictType' = {}
|
|
68
|
+
self.subproject = subproject
|
|
69
|
+
self.option_types: T.Dict[str, T.Callable[..., coredata.UserOption]] = {
|
|
70
|
+
'string': self.string_parser,
|
|
71
|
+
'boolean': self.boolean_parser,
|
|
72
|
+
'combo': self.combo_parser,
|
|
73
|
+
'integer': self.integer_parser,
|
|
74
|
+
'array': self.string_array_parser,
|
|
75
|
+
'feature': self.feature_parser,
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
def process(self, option_file: str) -> None:
|
|
79
|
+
try:
|
|
80
|
+
with open(option_file, encoding='utf-8') as f:
|
|
81
|
+
ast = mparser.Parser(f.read(), option_file).parse()
|
|
82
|
+
except mesonlib.MesonException as me:
|
|
83
|
+
me.file = option_file
|
|
84
|
+
raise me
|
|
85
|
+
if not isinstance(ast, mparser.CodeBlockNode):
|
|
86
|
+
e = OptionException('Option file is malformed.')
|
|
87
|
+
e.lineno = ast.lineno()
|
|
88
|
+
e.file = option_file
|
|
89
|
+
raise e
|
|
90
|
+
for cur in ast.lines:
|
|
91
|
+
try:
|
|
92
|
+
self.current_node = cur
|
|
93
|
+
self.evaluate_statement(cur)
|
|
94
|
+
except mesonlib.MesonException as e:
|
|
95
|
+
e.lineno = cur.lineno
|
|
96
|
+
e.colno = cur.colno
|
|
97
|
+
e.file = option_file
|
|
98
|
+
raise e
|
|
99
|
+
except Exception as e:
|
|
100
|
+
raise mesonlib.MesonException(
|
|
101
|
+
str(e), lineno=cur.lineno, colno=cur.colno, file=option_file)
|
|
102
|
+
|
|
103
|
+
def reduce_single(self, arg: T.Union[str, mparser.BaseNode]) -> 'TYPE_var':
|
|
104
|
+
if isinstance(arg, str):
|
|
105
|
+
return arg
|
|
106
|
+
if isinstance(arg, mparser.ParenthesizedNode):
|
|
107
|
+
return self.reduce_single(arg.inner)
|
|
108
|
+
elif isinstance(arg, (mparser.BaseStringNode, mparser.BooleanNode,
|
|
109
|
+
mparser.NumberNode)):
|
|
110
|
+
return arg.value
|
|
111
|
+
elif isinstance(arg, mparser.ArrayNode):
|
|
112
|
+
return [self.reduce_single(curarg) for curarg in arg.args.arguments]
|
|
113
|
+
elif isinstance(arg, mparser.DictNode):
|
|
114
|
+
d = {}
|
|
115
|
+
for k, v in arg.args.kwargs.items():
|
|
116
|
+
if not isinstance(k, mparser.BaseStringNode):
|
|
117
|
+
raise OptionException('Dictionary keys must be a string literal')
|
|
118
|
+
d[k.value] = self.reduce_single(v)
|
|
119
|
+
return d
|
|
120
|
+
elif isinstance(arg, mparser.UMinusNode):
|
|
121
|
+
res = self.reduce_single(arg.value)
|
|
122
|
+
if not isinstance(res, (int, float)):
|
|
123
|
+
raise OptionException('Token after "-" is not a number')
|
|
124
|
+
FeatureNew.single_use('negative numbers in meson_options.txt', '0.54.1', self.subproject)
|
|
125
|
+
return -res
|
|
126
|
+
elif isinstance(arg, mparser.NotNode):
|
|
127
|
+
res = self.reduce_single(arg.value)
|
|
128
|
+
if not isinstance(res, bool):
|
|
129
|
+
raise OptionException('Token after "not" is not a a boolean')
|
|
130
|
+
FeatureNew.single_use('negation ("not") in meson_options.txt', '0.54.1', self.subproject)
|
|
131
|
+
return not res
|
|
132
|
+
elif isinstance(arg, mparser.ArithmeticNode):
|
|
133
|
+
l = self.reduce_single(arg.left)
|
|
134
|
+
r = self.reduce_single(arg.right)
|
|
135
|
+
if not (arg.operation == 'add' and isinstance(l, str) and isinstance(r, str)):
|
|
136
|
+
raise OptionException('Only string concatenation with the "+" operator is allowed')
|
|
137
|
+
FeatureNew.single_use('string concatenation in meson_options.txt', '0.55.0', self.subproject)
|
|
138
|
+
return l + r
|
|
139
|
+
else:
|
|
140
|
+
raise OptionException('Arguments may only be string, int, bool, or array of those.')
|
|
141
|
+
|
|
142
|
+
def reduce_arguments(self, args: mparser.ArgumentNode) -> T.Tuple['TYPE_var', 'TYPE_kwargs']:
|
|
143
|
+
if args.incorrect_order():
|
|
144
|
+
raise OptionException('All keyword arguments must be after positional arguments.')
|
|
145
|
+
reduced_pos = [self.reduce_single(arg) for arg in args.arguments]
|
|
146
|
+
reduced_kw = {}
|
|
147
|
+
for key in args.kwargs.keys():
|
|
148
|
+
if not isinstance(key, mparser.IdNode):
|
|
149
|
+
raise OptionException('Keyword argument name is not a string.')
|
|
150
|
+
a = args.kwargs[key]
|
|
151
|
+
reduced_kw[key.value] = self.reduce_single(a)
|
|
152
|
+
return reduced_pos, reduced_kw
|
|
153
|
+
|
|
154
|
+
def evaluate_statement(self, node: mparser.BaseNode) -> None:
|
|
155
|
+
if not isinstance(node, mparser.FunctionNode):
|
|
156
|
+
raise OptionException('Option file may only contain option definitions')
|
|
157
|
+
func_name = node.func_name.value
|
|
158
|
+
if func_name != 'option':
|
|
159
|
+
raise OptionException('Only calls to option() are allowed in option files.')
|
|
160
|
+
(posargs, kwargs) = self.reduce_arguments(node.args)
|
|
161
|
+
self.func_option(posargs, kwargs)
|
|
162
|
+
|
|
163
|
+
@typed_kwargs(
|
|
164
|
+
'option',
|
|
165
|
+
KwargInfo(
|
|
166
|
+
'type',
|
|
167
|
+
str,
|
|
168
|
+
required=True,
|
|
169
|
+
validator=in_set_validator({'string', 'boolean', 'integer', 'combo', 'array', 'feature'})
|
|
170
|
+
),
|
|
171
|
+
KwargInfo('description', str, default=''),
|
|
172
|
+
KwargInfo(
|
|
173
|
+
'deprecated',
|
|
174
|
+
(bool, str, ContainerTypeInfo(dict, str), ContainerTypeInfo(list, str)),
|
|
175
|
+
default=False,
|
|
176
|
+
since='0.60.0',
|
|
177
|
+
since_values={str: '0.63.0'},
|
|
178
|
+
),
|
|
179
|
+
KwargInfo('yield', bool, default=coredata.DEFAULT_YIELDING, since='0.45.0'),
|
|
180
|
+
allow_unknown=True,
|
|
181
|
+
)
|
|
182
|
+
@typed_pos_args('option', str)
|
|
183
|
+
def func_option(self, args: T.Tuple[str], kwargs: 'FuncOptionArgs') -> None:
|
|
184
|
+
opt_name = args[0]
|
|
185
|
+
if optname_regex.search(opt_name) is not None:
|
|
186
|
+
raise OptionException('Option names can only contain letters, numbers or dashes.')
|
|
187
|
+
key = mesonlib.OptionKey.from_string(opt_name).evolve(subproject=self.subproject)
|
|
188
|
+
if not key.is_project():
|
|
189
|
+
raise OptionException('Option name %s is reserved.' % opt_name)
|
|
190
|
+
|
|
191
|
+
opt_type = kwargs['type']
|
|
192
|
+
parser = self.option_types[opt_type]
|
|
193
|
+
description = kwargs['description'] or opt_name
|
|
194
|
+
|
|
195
|
+
# Drop the arguments we've already consumed
|
|
196
|
+
n_kwargs = {k: v for k, v in kwargs.items()
|
|
197
|
+
if k not in {'type', 'description', 'deprecated', 'yield'}}
|
|
198
|
+
|
|
199
|
+
opt = parser(opt_name, description, (kwargs['yield'], kwargs['deprecated']), n_kwargs)
|
|
200
|
+
if key in self.options:
|
|
201
|
+
mlog.deprecation(f'Option {opt_name} already exists.')
|
|
202
|
+
self.options[key] = opt
|
|
203
|
+
|
|
204
|
+
@typed_kwargs(
|
|
205
|
+
'string option',
|
|
206
|
+
KwargInfo('value', str, default=''),
|
|
207
|
+
)
|
|
208
|
+
def string_parser(self, name: str, description: str, args: T.Tuple[bool, _DEPRECATED_ARGS], kwargs: StringArgs) -> coredata.UserOption:
|
|
209
|
+
return coredata.UserStringOption(name, description, kwargs['value'], *args)
|
|
210
|
+
|
|
211
|
+
@typed_kwargs(
|
|
212
|
+
'boolean option',
|
|
213
|
+
KwargInfo(
|
|
214
|
+
'value',
|
|
215
|
+
(bool, str),
|
|
216
|
+
default=True,
|
|
217
|
+
validator=lambda x: None if isinstance(x, bool) or x in {'true', 'false'} else 'boolean options must have boolean values',
|
|
218
|
+
deprecated_values={str: ('1.1.0', 'use a boolean, not a string')},
|
|
219
|
+
),
|
|
220
|
+
)
|
|
221
|
+
def boolean_parser(self, name: str, description: str, args: T.Tuple[bool, _DEPRECATED_ARGS], kwargs: BooleanArgs) -> coredata.UserOption:
|
|
222
|
+
return coredata.UserBooleanOption(name, description, kwargs['value'], *args)
|
|
223
|
+
|
|
224
|
+
@typed_kwargs(
|
|
225
|
+
'combo option',
|
|
226
|
+
KwargInfo('value', (str, NoneType)),
|
|
227
|
+
KwargInfo('choices', ContainerTypeInfo(list, str, allow_empty=False), required=True),
|
|
228
|
+
)
|
|
229
|
+
def combo_parser(self, name: str, description: str, args: T.Tuple[bool, _DEPRECATED_ARGS], kwargs: ComboArgs) -> coredata.UserOption:
|
|
230
|
+
choices = kwargs['choices']
|
|
231
|
+
value = kwargs['value']
|
|
232
|
+
if value is None:
|
|
233
|
+
value = kwargs['choices'][0]
|
|
234
|
+
return coredata.UserComboOption(name, description, choices, value, *args)
|
|
235
|
+
|
|
236
|
+
@typed_kwargs(
|
|
237
|
+
'integer option',
|
|
238
|
+
KwargInfo(
|
|
239
|
+
'value',
|
|
240
|
+
(int, str),
|
|
241
|
+
default=True,
|
|
242
|
+
deprecated_values={str: ('1.1.0', 'use an integer, not a string')},
|
|
243
|
+
convertor=int,
|
|
244
|
+
),
|
|
245
|
+
KwargInfo('min', (int, NoneType)),
|
|
246
|
+
KwargInfo('max', (int, NoneType)),
|
|
247
|
+
)
|
|
248
|
+
def integer_parser(self, name: str, description: str, args: T.Tuple[bool, _DEPRECATED_ARGS], kwargs: IntegerArgs) -> coredata.UserOption:
|
|
249
|
+
value = kwargs['value']
|
|
250
|
+
inttuple = (kwargs['min'], kwargs['max'], value)
|
|
251
|
+
return coredata.UserIntegerOption(name, description, inttuple, *args)
|
|
252
|
+
|
|
253
|
+
@typed_kwargs(
|
|
254
|
+
'string array option',
|
|
255
|
+
KwargInfo('value', (ContainerTypeInfo(list, str), str, NoneType)),
|
|
256
|
+
KwargInfo('choices', ContainerTypeInfo(list, str), default=[]),
|
|
257
|
+
)
|
|
258
|
+
def string_array_parser(self, name: str, description: str, args: T.Tuple[bool, _DEPRECATED_ARGS], kwargs: StringArrayArgs) -> coredata.UserOption:
|
|
259
|
+
choices = kwargs['choices']
|
|
260
|
+
value = kwargs['value'] if kwargs['value'] is not None else choices
|
|
261
|
+
if isinstance(value, str):
|
|
262
|
+
if value.startswith('['):
|
|
263
|
+
FeatureDeprecated('String value for array option', '1.3.0').use(self.subproject)
|
|
264
|
+
else:
|
|
265
|
+
raise mesonlib.MesonException('Value does not define an array: ' + value)
|
|
266
|
+
return coredata.UserArrayOption(name, description, value,
|
|
267
|
+
choices=choices,
|
|
268
|
+
yielding=args[0],
|
|
269
|
+
deprecated=args[1])
|
|
270
|
+
|
|
271
|
+
@typed_kwargs(
|
|
272
|
+
'feature option',
|
|
273
|
+
KwargInfo('value', str, default='auto', validator=in_set_validator({'auto', 'enabled', 'disabled'})),
|
|
274
|
+
)
|
|
275
|
+
def feature_parser(self, name: str, description: str, args: T.Tuple[bool, _DEPRECATED_ARGS], kwargs: FeatureArgs) -> coredata.UserOption:
|
|
276
|
+
return coredata.UserFeatureOption(name, description, kwargs['value'], *args)
|