Skip to content

Commit

Permalink
setup: Refactor a little bit
Browse files Browse the repository at this point in the history
  • Loading branch information
oleavr committed Apr 24, 2024
1 parent dfe260d commit 03206cf
Showing 1 changed file with 57 additions and 56 deletions.
113 changes: 57 additions & 56 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,57 @@


SOURCE_ROOT = Path(__file__).resolve().parent
FRIDA_EXTENSION = os.environ.get("FRIDA_EXTENSION", None)


def main():
setup(
name="frida",
version=detect_version(),
description="Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers",
long_description=compute_long_description(),
long_description_content_type="text/markdown",
author="Frida Developers",
author_email="[email protected]",
url="https://frida.re",
install_requires=["typing_extensions; python_version<'3.11'"],
python_requires=">=3.7",
license="wxWindows Library Licence, Version 3.1",
keywords="frida debugger dynamic instrumentation inject javascript windows macos linux ios iphone ipad android qnx",
classifiers=[
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Environment :: MacOS X",
"Environment :: Win32 (MS Windows)",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"License :: OSI Approved",
"Natural Language :: English",
"Operating System :: MacOS :: MacOS X",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: JavaScript",
"Topic :: Software Development :: Debuggers",
"Topic :: Software Development :: Libraries :: Python Modules",
],
packages=["frida", "_frida"],
package_data={"frida": ["py.typed"], "_frida": ["py.typed", "__init__.pyi"]},
ext_modules=[
Extension(
name="_frida",
sources=["src/_frida.c"],
py_limited_api=True,
)
],
cmdclass={"build_ext": FridaPrebuiltExt if FRIDA_EXTENSION is not None else FridaDemandBuiltExt},
zip_safe=False,
)


def detect_version() -> str:
Expand All @@ -32,6 +83,10 @@ def detect_version() -> str:
return version


def compute_long_description() -> str:
return (SOURCE_ROOT / "README.md").read_text(encoding="utf-8")


def enumerate_releng_locations() -> Iterator[Path]:
val = os.environ.get("MESON_SOURCE_ROOT")
if val is not None:
Expand All @@ -52,7 +107,7 @@ class FridaPrebuiltExt(build_ext):
def build_extension(self, ext):
target = self.get_ext_fullpath(ext.name)
Path(target).parent.mkdir(parents=True, exist_ok=True)
shutil.copy(frida_extension, target)
shutil.copy(FRIDA_EXTENSION, target)


class FridaDemandBuiltExt(build_ext):
Expand All @@ -67,59 +122,5 @@ def build_extension(self, ext):
shutil.copy(outputs[0], target)


frida_version = detect_version()
long_description = (SOURCE_ROOT / "README.md").read_text(encoding="utf-8")
frida_extension = os.environ.get("FRIDA_EXTENSION", None)

cmdclass = {}
cmdclass["build_ext"] = FridaPrebuiltExt if frida_extension is not None else FridaDemandBuiltExt


if __name__ == "__main__":
setup(
name="frida",
version=frida_version,
description="Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers",
long_description=long_description,
long_description_content_type="text/markdown",
author="Frida Developers",
author_email="[email protected]",
url="https://frida.re",
install_requires=["typing_extensions; python_version<'3.11'"],
python_requires=">=3.7",
license="wxWindows Library Licence, Version 3.1",
keywords="frida debugger dynamic instrumentation inject javascript windows macos linux ios iphone ipad android qnx",
classifiers=[
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Environment :: MacOS X",
"Environment :: Win32 (MS Windows)",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"License :: OSI Approved",
"Natural Language :: English",
"Operating System :: MacOS :: MacOS X",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: JavaScript",
"Topic :: Software Development :: Debuggers",
"Topic :: Software Development :: Libraries :: Python Modules",
],
packages=["frida", "_frida"],
package_data={"frida": ["py.typed"], "_frida": ["py.typed", "__init__.pyi"]},
ext_modules=[
Extension(
name="_frida",
sources=["src/_frida.c"],
py_limited_api=True,
)
],
cmdclass=cmdclass,
zip_safe=False,
)
main()

0 comments on commit 03206cf

Please sign in to comment.