Compare commits

Author SHA1 Message Date
billow 8618b4051a Add binding for RzAnnotatedCode and RzCodeAnnotation headers 2025-10-01 03:01:38 +08:00
Khairul Azhar Kasmiran 318cfbc9b3 Cleanup inclusion of linux/limits.h (#80) 2025-03-16 14:53:25 +08:00
Khairul Azhar Kasmiran 05ce528bc2 ci: Upgrade to Ubuntu 24.04 (Noble) (#79)
* ci: Upgrade to Ubuntu 24.04 (Noble)
* Remove `pip3 --break-system-packages`
* Use `-include linux/limits.h` for Alpine build
2025-03-14 20:18:43 +08:00
Giovanni d9b84f46e7 Fix compilation (#77)
* Fix compilation due defines being redefined
* Add support for TypeKind.FUNCTIONNOPROTO
2025-02-18 15:40:17 +08:00
Anton Kochkov fe8468ea29 ci: use corresponding rizin branch 2024-12-21 20:44:59 +08:00
Anton Kochkov 4e324800d8 ci: use corresponding rizin branch (#75) 2024-12-21 20:11:59 +08:00
Anton Kochkov eecc6bb442 ci/mypy: disable unnecessary warning (#73) 2024-12-21 18:57:35 +08:00
Khairul Azhar Kasmiran b93006e24b Use / instead of \\ in CMAKE_PREFIX_PATH for Windows (#72) 2024-12-21 18:33:10 +08:00
wargio f1dbe864e6 Ensure argument name never matches the function name 2024-12-20 21:51:55 +08:00
wargio 1723f6e06e Revert "Fix wrong check on nonnull args which are inner not outer."
This reverts commit c527db8fcb.
2024-12-20 21:51:55 +08:00
wargio c527db8fcb Fix wrong check on nonnull args which are inner not outer. 2024-12-20 19:47:10 +08:00
Anton Kochkov 918136cbc2 ci: support pip3 for python 3.12 and later 2024-12-20 19:47:10 +08:00
Anton Kochkov 84a9542c9e ci: use macOS 14 as macOS 12 is deprecated 2024-12-20 19:47:10 +08:00
Anton Kochkov b47d3071c2 Update pypa/cibuildwheel to 2.22.0 2024-12-20 19:47:10 +08:00
Anton Kochkov 66f06da3cf Remove lastline from RzCons bindings 2024-12-20 19:47:10 +08:00
10 changed files with 89 additions and 18 deletions

No files matched your search

+45 -8
View File
@@ -4,6 +4,11 @@ on:
workflow_dispatch:
workflow_call:
inputs:
external_call:
description: 'To distinguish workflow_call from regular push'
type: boolean
required: false
default: true
rizin_ref:
required: false
type: string
@@ -16,7 +21,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, windows-2019, macos-14]
os: [ubuntu-24.04, windows-2019, macos-14]
steps:
- name: Install SWIG with Homebrew
@@ -26,13 +31,31 @@ jobs:
- name: Checkout rz-bindgen
uses: actions/checkout@v4
# runned only from workflow_call
- name: Checkout rizin
if: ${{ inputs.external_call }}
uses: actions/checkout@v4
with:
repository: rizinorg/rizin
path: rizin
ref: ${{ inputs.rizin_ref }}
- name: Checkout rizin (stable)
if: ${{ !inputs.external_call && ((github.ref_name == 'stable') || (github.base_ref == 'stable')) }}
uses: actions/checkout@v4
with:
repository: rizinorg/rizin
path: rizin
ref: stable
- name: Checkout rizin (dev)
if: ${{ !inputs.external_call && ((github.ref_name != 'stable') && (github.base_ref != 'stable')) }}
uses: actions/checkout@v4
with:
repository: rizinorg/rizin
path: rizin
ref: dev
- name: Build rz-bindgen
uses: pypa/[email protected]
@@ -49,7 +72,7 @@ jobs:
path: wheelhouse/*.whl
ubuntu-default-llvm:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Checkout rz-bindgen
@@ -57,22 +80,36 @@ jobs:
with:
path: rz-bindgen
# runned only from workflow_call
- name: Checkout rizin
if: ${{ inputs.external_call }}
uses: actions/checkout@v4
with:
repository: rizinorg/rizin
path: rizin
ref: ${{ inputs.rizin_ref }}
- name: Checkout rizin (stable)
if: ${{ !inputs.external_call && ((github.ref_name == 'stable') || (github.base_ref == 'stable')) }}
uses: actions/checkout@v4
with:
repository: rizinorg/rizin
path: rizin
ref: stable
- name: Checkout rizin (dev)
if: ${{ !inputs.external_call && ((github.ref_name != 'stable') && (github.base_ref != 'stable')) }}
uses: actions/checkout@v4
with:
repository: rizinorg/rizin
path: rizin
ref: dev
- name: Install dependencies
run: |
sudo apt update
sudo apt-get --assume-yes install cmake swig pkg-config clang libclang-dev llvm wget unzip python3-wheel python3-setuptools build-essential python3-pip
pygt311=$(python3 -c 'import sys; print(0) if sys.version_info.minor > 11 else print(1)' 2>&1)
if [[ $pygt311 == '0' ]]; then
sudo pip3 --break-system-packages install meson ninja
else
sudo pip3 install meson ninja
fi
sudo pip3 install meson ninja
- name: Install rizin
run: |
+4 -4
View File
@@ -2,7 +2,7 @@ name: lint
on: push
jobs:
licenses:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Checkout rz-bindgen
uses: actions/checkout@v3
@@ -10,7 +10,7 @@ jobs:
uses: fsfe/reuse-action@v1
python:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Checkout rz-bindgen
uses: actions/checkout@v3
@@ -19,7 +19,7 @@ jobs:
pip install mypy pyflakes pylint black
- name: Run mypy
run: |
mypy src/main.py
mypy --disable-error-code misc src/main.py
if: ${{ always() }}
- name: Run pyflakes
run: |
@@ -35,7 +35,7 @@ jobs:
if: ${{ always() }}
codeql:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
security-events: write
steps:
+2 -2
View File
@@ -7,7 +7,7 @@ on:
jobs:
extract-rizin-version:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
outputs:
rizin_version: ${{ steps.extract_version.outputs.result }}
steps:
@@ -21,7 +21,7 @@ jobs:
rizin_ref: ${{ needs.extract-rizin-version.outputs.rizin_version }}
publish-pypi:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs: [build]
steps:
- name: Download artifacts
+3
View File
@@ -39,6 +39,9 @@ if [[ "$OSTYPE" =~ msys* ]]; then
meson setup --buildtype=release --prefix='c:/rizin' --vsenv build
meson install -C build
else
if [[ "$OSTYPE" =~ linux* ]]; then
export CFLAGS="-include linux/limits.h"
fi
meson setup --buildtype=release --libdir=lib build
sudo meson install -C build
fi
+7
View File
@@ -2,6 +2,13 @@
// SPDX-License-Identifier: LGPL-3.0-only
#include <Python.h>
/**
* Some defines in rz_userconf.h are conflicting with the ones in python.h
**/
#undef HAVE_EXPLICIT_BZERO
#undef HAVE_SIGACTION
#undef HAVE_REALPATH
#include <rz_core.h>
#include <rz_util/rz_file.h>
#include <swig_runtime.h>
+1 -1
View File
@@ -19,7 +19,7 @@ environment = { PATH="/opt/rh/llvm-toolset-7.0/root/usr/bin:/opt/rh/llvm-toolset
archs = ["x86_64"]
[tool.cibuildwheel.windows]
environment = { CMAKE_PREFIX_PATH="C:\\rizin" }
environment = { CMAKE_PREFIX_PATH="C:/rizin" }
archs = ["AMD64"]
[tool.cibuildwheel.macos]
+23
View File
@@ -327,6 +327,29 @@ def bind_core(core_h: Header) -> None:
Class(core_h, typedef="RzCoreFile")
@threaded_header("rz_util/rz_annotated_code.h")
def bind_annotated_code(annotated_code_h: Header) -> None:
"""
RzAnnotatedCode
"""
rz_code_annotation = Class(
annotated_code_h,
typedef="RzCodeAnnotation",
struct="rz_code_annotation_t",
)
rz_code_annotation.add_prefixed_methods("rz_annotation_")
rz_code_annotation.add_prefixed_funcs("rz_annotation_")
rz_annotated_code = Class(
annotated_code_h,
typedef="RzAnnotatedCode",
struct="rz_annotated_code_t",
)
rz_annotated_code.add_constructor("rz_annotated_code_new")
rz_annotated_code.add_destructor("rz_annotated_code_free")
rz_annotated_code.add_prefixed_methods("rz_annotated_code_")
rz_annotated_code.add_prefixed_funcs("rz_annotated_code_")
@threaded_header("rz_flag.h")
def bind_flag(flag_h: Header) -> None:
+2 -2
View File
@@ -2224,7 +2224,7 @@ class Type(Structure):
return result
assert self.kind == TypeKind.FUNCTIONPROTO
assert self.kind in (TypeKind.FUNCTIONPROTO, TypeKind.FUNCTIONNOPROTO)
return ArgumentsIterator(self)
@property
@@ -2320,7 +2320,7 @@ class Type(Structure):
def is_function_variadic(self):
"""Determine whether this function Type is a variadic function type."""
assert self.kind == TypeKind.FUNCTIONPROTO
assert self.kind in (TypeKind.FUNCTIONPROTO, TypeKind.FUNCTIONNOPROTO)
return conf.lib.clang_isFunctionTypeVariadic(self)
+1
View File
@@ -38,6 +38,7 @@ class TypeKind(Enum):
POINTER: TypeKind
CONSTANTARRAY: TypeKind
FUNCTIONPROTO: TypeKind
FUNCTIONNOPROTO: TypeKind
INCOMPLETEARRAY: TypeKind
RECORD: TypeKind
+1 -1
View File
@@ -123,7 +123,7 @@ def wrap_type(type_: Type) -> CType:
cursor=type_.get_declaration(),
)
if type_.kind == TypeKind.FUNCTIONPROTO:
if type_.kind in (TypeKind.FUNCTIONPROTO, TypeKind.FUNCTIONNOPROTO):
return CFunctionType(
orig_type,
result=wrap_type(type_.get_result()),