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,252 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
# Copyright 2017 The Meson development team
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
from .base import Dependency, InternalDependency, ExternalDependency, NotFoundDependency, MissingCompiler
|
|
6
|
+
from .base import (
|
|
7
|
+
ExternalLibrary, DependencyException, DependencyMethods,
|
|
8
|
+
BuiltinDependency, SystemDependency, get_leaf_external_dependencies)
|
|
9
|
+
from .detect import find_external_dependency, get_dep_identifier, packages, _packages_accept_language
|
|
10
|
+
|
|
11
|
+
__all__ = [
|
|
12
|
+
'Dependency',
|
|
13
|
+
'InternalDependency',
|
|
14
|
+
'ExternalDependency',
|
|
15
|
+
'SystemDependency',
|
|
16
|
+
'BuiltinDependency',
|
|
17
|
+
'NotFoundDependency',
|
|
18
|
+
'ExternalLibrary',
|
|
19
|
+
'DependencyException',
|
|
20
|
+
'DependencyMethods',
|
|
21
|
+
'MissingCompiler',
|
|
22
|
+
|
|
23
|
+
'find_external_dependency',
|
|
24
|
+
'get_dep_identifier',
|
|
25
|
+
'get_leaf_external_dependencies',
|
|
26
|
+
]
|
|
27
|
+
|
|
28
|
+
"""Dependency representations and discovery logic.
|
|
29
|
+
|
|
30
|
+
Meson attempts to largely abstract away dependency discovery information, and
|
|
31
|
+
to encapsulate that logic itself so that the DSL doesn't have too much direct
|
|
32
|
+
information. There are some cases where this is impossible/undesirable, such
|
|
33
|
+
as the `get_variable()` method.
|
|
34
|
+
|
|
35
|
+
Meson has four primary dependency types:
|
|
36
|
+
1. pkg-config
|
|
37
|
+
2. apple frameworks
|
|
38
|
+
3. CMake
|
|
39
|
+
4. system
|
|
40
|
+
|
|
41
|
+
Plus a few more niche ones.
|
|
42
|
+
|
|
43
|
+
When a user calls `dependency('foo')` Meson creates a list of candidates, and
|
|
44
|
+
tries those candidates in order to find one that matches the criteria
|
|
45
|
+
provided by the user (such as version requirements, or optional components
|
|
46
|
+
that are required.)
|
|
47
|
+
|
|
48
|
+
Except to work around bugs or handle odd corner cases, pkg-config and CMake
|
|
49
|
+
generally just work™, though there are exceptions. Most of this package is
|
|
50
|
+
concerned with dependencies that don't (always) provide CMake and/or
|
|
51
|
+
pkg-config files.
|
|
52
|
+
|
|
53
|
+
For these cases one needs to write a `system` dependency. These dependencies
|
|
54
|
+
descend directly from `ExternalDependency`, in their constructor they
|
|
55
|
+
manually set up the necessary link and compile args (and additional
|
|
56
|
+
dependencies as necessary).
|
|
57
|
+
|
|
58
|
+
For example, imagine a dependency called Foo, it uses an environment variable
|
|
59
|
+
called `$FOO_ROOT` to point to its install root, which looks like this:
|
|
60
|
+
```txt
|
|
61
|
+
$FOOROOT
|
|
62
|
+
→ include/
|
|
63
|
+
→ lib/
|
|
64
|
+
```
|
|
65
|
+
To use Foo, you need its include directory, and you need to link to
|
|
66
|
+
`lib/libfoo.ext`.
|
|
67
|
+
|
|
68
|
+
You could write code that looks like:
|
|
69
|
+
|
|
70
|
+
```python
|
|
71
|
+
class FooSystemDependency(ExternalDependency):
|
|
72
|
+
|
|
73
|
+
def __init__(self, name: str, environment: 'Environment', kwargs: T.Dict[str, T.Any]):
|
|
74
|
+
super().__init__(name, environment, kwargs)
|
|
75
|
+
root = os.environ.get('FOO_ROOT')
|
|
76
|
+
if root is None:
|
|
77
|
+
mlog.debug('$FOO_ROOT is unset.')
|
|
78
|
+
self.is_found = False
|
|
79
|
+
return
|
|
80
|
+
|
|
81
|
+
lib = self.clib_compiler.find_library('foo', environment, [os.path.join(root, 'lib')])
|
|
82
|
+
if lib is None:
|
|
83
|
+
mlog.debug('Could not find lib.')
|
|
84
|
+
self.is_found = False
|
|
85
|
+
return
|
|
86
|
+
|
|
87
|
+
self.compile_args.append(f'-I{os.path.join(root, "include")}')
|
|
88
|
+
self.link_args.append(lib)
|
|
89
|
+
self.is_found = True
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
This code will look for `FOO_ROOT` in the environment, handle `FOO_ROOT` being
|
|
93
|
+
undefined gracefully, then set its `compile_args` and `link_args` gracefully.
|
|
94
|
+
It will also gracefully handle not finding the required lib (hopefully that
|
|
95
|
+
doesn't happen, but it could if, for example, the lib is only static and
|
|
96
|
+
shared linking is requested).
|
|
97
|
+
|
|
98
|
+
There are a couple of things about this that still aren't ideal. For one, we
|
|
99
|
+
don't want to be reading random environment variables at this point. Those
|
|
100
|
+
should actually be added to `envconfig.Properties` and read in
|
|
101
|
+
`environment.Environment._set_default_properties_from_env` (see how
|
|
102
|
+
`BOOST_ROOT` is handled). We can also handle the `static` keyword and the
|
|
103
|
+
`prefer_static` built-in option. So now that becomes:
|
|
104
|
+
|
|
105
|
+
```python
|
|
106
|
+
class FooSystemDependency(ExternalDependency):
|
|
107
|
+
|
|
108
|
+
def __init__(self, name: str, environment: 'Environment', kwargs: T.Dict[str, T.Any]):
|
|
109
|
+
super().__init__(name, environment, kwargs)
|
|
110
|
+
root = environment.properties[self.for_machine].foo_root
|
|
111
|
+
if root is None:
|
|
112
|
+
mlog.debug('foo_root is unset.')
|
|
113
|
+
self.is_found = False
|
|
114
|
+
return
|
|
115
|
+
|
|
116
|
+
get_option = environment.coredata.get_option
|
|
117
|
+
static_opt = kwargs.get('static', get_option(Mesonlib.OptionKey('prefer_static'))
|
|
118
|
+
static = Mesonlib.LibType.STATIC if static_opt else Mesonlib.LibType.SHARED
|
|
119
|
+
lib = self.clib_compiler.find_library(
|
|
120
|
+
'foo', environment, [os.path.join(root, 'lib')], libtype=static)
|
|
121
|
+
if lib is None:
|
|
122
|
+
mlog.debug('Could not find lib.')
|
|
123
|
+
self.is_found = False
|
|
124
|
+
return
|
|
125
|
+
|
|
126
|
+
self.compile_args.append(f'-I{os.path.join(root, "include")}')
|
|
127
|
+
self.link_args.append(lib)
|
|
128
|
+
self.is_found = True
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
This is nicer in a couple of ways. First we can properly cross compile as we
|
|
132
|
+
are allowed to set `FOO_ROOT` for both the build and host machines, it also
|
|
133
|
+
means that users can override this in their machine files, and if that
|
|
134
|
+
environment variables changes during a Meson reconfigure Meson won't re-read
|
|
135
|
+
it, this is important for reproducibility. Finally, Meson will figure out
|
|
136
|
+
whether it should be finding `libfoo.so` or `libfoo.a` (or the platform
|
|
137
|
+
specific names). Things are looking pretty good now, so it can be added to
|
|
138
|
+
the `packages` dict below:
|
|
139
|
+
|
|
140
|
+
```python
|
|
141
|
+
packages.update({
|
|
142
|
+
'foo': FooSystemDependency,
|
|
143
|
+
})
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Now, what if foo also provides pkg-config, but it's only shipped on Unices,
|
|
147
|
+
or only included in very recent versions of the dependency? We can use the
|
|
148
|
+
`DependencyFactory` class:
|
|
149
|
+
|
|
150
|
+
```python
|
|
151
|
+
foo_factory = DependencyFactory(
|
|
152
|
+
'foo',
|
|
153
|
+
[DependencyMethods.PKGCONFIG, DependencyMethods.SYSTEM],
|
|
154
|
+
system_class=FooSystemDependency,
|
|
155
|
+
)
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
This is a helper function that will generate a default pkg-config based
|
|
159
|
+
dependency, and use the `FooSystemDependency` as well. It can also handle
|
|
160
|
+
custom finders for pkg-config and cmake based dependencies that need some
|
|
161
|
+
extra help. You would then add the `foo_factory` to packages instead of
|
|
162
|
+
`FooSystemDependency`:
|
|
163
|
+
|
|
164
|
+
```python
|
|
165
|
+
packages.update({
|
|
166
|
+
'foo': foo_factory,
|
|
167
|
+
})
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
If you have a dependency that is very complicated, (such as having multiple
|
|
171
|
+
implementations) you may need to write your own factory function. There are a
|
|
172
|
+
number of examples in this package.
|
|
173
|
+
|
|
174
|
+
_Note_ before we moved to factory functions it was common to use an
|
|
175
|
+
`ExternalDependency` class that would instantiate different types of
|
|
176
|
+
dependencies and hold the one it found. There are a number of drawbacks to
|
|
177
|
+
this approach, and no new dependencies should do this.
|
|
178
|
+
"""
|
|
179
|
+
|
|
180
|
+
# This is a dict where the keys should be strings, and the values must be one
|
|
181
|
+
# of:
|
|
182
|
+
# - An ExternalDependency subclass
|
|
183
|
+
# - A DependencyFactory object
|
|
184
|
+
# - A callable with a signature of (Environment, MachineChoice, Dict[str, Any]) -> List[Callable[[], ExternalDependency]]
|
|
185
|
+
#
|
|
186
|
+
# The internal "defaults" attribute contains a separate dictionary mapping
|
|
187
|
+
# for lazy imports. The values must be:
|
|
188
|
+
# - a string naming the submodule that should be imported from `mesonbuild.dependencies` to populate the dependency
|
|
189
|
+
packages.defaults.update({
|
|
190
|
+
# From dev:
|
|
191
|
+
'gtest': 'dev',
|
|
192
|
+
'gmock': 'dev',
|
|
193
|
+
'llvm': 'dev',
|
|
194
|
+
'valgrind': 'dev',
|
|
195
|
+
'zlib': 'dev',
|
|
196
|
+
'jni': 'dev',
|
|
197
|
+
'jdk': 'dev',
|
|
198
|
+
|
|
199
|
+
'boost': 'boost',
|
|
200
|
+
'cuda': 'cuda',
|
|
201
|
+
|
|
202
|
+
# per-file
|
|
203
|
+
'coarray': 'coarrays',
|
|
204
|
+
'hdf5': 'hdf5',
|
|
205
|
+
'mpi': 'mpi',
|
|
206
|
+
'scalapack': 'scalapack',
|
|
207
|
+
|
|
208
|
+
# From misc:
|
|
209
|
+
'blocks': 'misc',
|
|
210
|
+
'curses': 'misc',
|
|
211
|
+
'netcdf': 'misc',
|
|
212
|
+
'openmp': 'misc',
|
|
213
|
+
'threads': 'misc',
|
|
214
|
+
'pcap': 'misc',
|
|
215
|
+
'cups': 'misc',
|
|
216
|
+
'libwmf': 'misc',
|
|
217
|
+
'libgcrypt': 'misc',
|
|
218
|
+
'gpgme': 'misc',
|
|
219
|
+
'shaderc': 'misc',
|
|
220
|
+
'iconv': 'misc',
|
|
221
|
+
'intl': 'misc',
|
|
222
|
+
'dl': 'misc',
|
|
223
|
+
'openssl': 'misc',
|
|
224
|
+
'libcrypto': 'misc',
|
|
225
|
+
'libssl': 'misc',
|
|
226
|
+
|
|
227
|
+
# From platform:
|
|
228
|
+
'appleframeworks': 'platform',
|
|
229
|
+
|
|
230
|
+
# from python:
|
|
231
|
+
'numpy': 'python',
|
|
232
|
+
'python3': 'python',
|
|
233
|
+
'pybind11': 'python',
|
|
234
|
+
|
|
235
|
+
# From ui:
|
|
236
|
+
'gl': 'ui',
|
|
237
|
+
'gnustep': 'ui',
|
|
238
|
+
'sdl2': 'ui',
|
|
239
|
+
'wxwidgets': 'ui',
|
|
240
|
+
'vulkan': 'ui',
|
|
241
|
+
|
|
242
|
+
# from qt
|
|
243
|
+
'qt4': 'qt',
|
|
244
|
+
'qt5': 'qt',
|
|
245
|
+
'qt6': 'qt',
|
|
246
|
+
})
|
|
247
|
+
_packages_accept_language.update({
|
|
248
|
+
'hdf5',
|
|
249
|
+
'mpi',
|
|
250
|
+
'netcdf',
|
|
251
|
+
'openmp',
|
|
252
|
+
})
|