Commit Graph

87 Commits

Author SHA1 Message Date
Romain Thomas 702f4e51b8 Resolve #1310 2026-03-17 15:01:41 +01:00
Romain Thomas 2e94b01eb8 Force link against libpythonX.YZ.so on Android
It seems that Android does not support `undefined dynamic_lookup`
as we do for macOS and Linux. Therefore, we force link with the shared
library
2026-03-08 15:15:45 +01:00
Romain Thomas 007646df14 Initiate options to enable free-threaded build
Related to #1255
2026-02-15 16:13:43 +01:00
Romain Thomas bedb668860 Add option to enable the stable ABI 2026-02-15 11:54:25 +01:00
Romain Thomas d09a8d53cd Update nanobind 2026-02-15 11:54:14 +01:00
Romain Thomas 71e6942309 Upgrade MbedTLS to 4.0.0
Updates the internal MbedTLS version from 3.6.4 to 4.0.0.
This major version introduces the TF-PSA-Crypto architecture,
requiring significant changes to the build system and internal API usage.

Added `src/mbedtls_wraps.h` to handle the internalization
of MbedTLS 4.0 structures. This file re-declares private contexts
(like `mbedtls_rsa_context`) and uses `-DMBEDTLS_DECLARE_PRIVATE_IDENTIFIERS`
to allow LIEF to inspect internal key parameters required for PE
signature verification.
2026-02-14 09:46:59 +01:00
Romain Thomas ac9b242a0b Update nanobind to 2.11.x 2026-02-01 13:01:25 +01:00
Romain Thomas c5223bf112 Update nanobind to v2.10.x 2026-01-24 09:39:04 +01:00
Romain Thomas a7743d72b4 Update nanobind version 2025-08-10 13:20:27 +02:00
Romain Thomas 940d5009cb Fix warning 2025-04-12 06:31:03 +02:00
Romain Thomas 6b0446b16e Update nanobind 2025-04-12 06:30:44 +02:00
Romain Thomas f8b5dc5232 Fix typo 2025-03-30 09:44:27 +02:00
Romain Thomas 62435492f0 Missing fix for Python bindings 2025-03-29 11:20:18 +01:00
Romain Thomas 266868cae3 Update nanobind 2025-02-22 07:18:23 +01:00
Romain Thomas 99d540edc2 Improve support for Nanobind external version 2025-02-22 06:20:19 +01:00
Romain Thomas 0ff950c080 Update nanobind 2024-12-10 05:30:37 +01:00
Romain Thomas de49dceba9 Update nanobind
Resolve: #1128
2024-11-30 05:30:21 +01:00
Romain Thomas ba294bd181 Make sure we have a correct visibility 2024-10-05 05:49:38 +02:00
Romain Thomas fec7d0190f Various updates 2024-07-20 07:20:05 +02:00
Romain Thomas b2b7fb96ec Add support for extensions. 2024-07-13 07:51:52 +02:00
Romain Thomas b0f421bd5e Allow a static install of the Python bindings (internal usage) 2024-02-17 05:23:58 +01:00
Romain Thomas 638aa18708 Bump nanobind to 1.8.0.r43.g45c2a74 2024-02-17 05:03:04 +01:00
Romain Thomas 979d0ec661 Resolve #1018 2024-02-03 07:02:36 +01:00
Romain Thomas f5ed2dff32 Fix EXCLUDE_FROM_ALL 2024-01-27 09:52:00 +01:00
Romain Thomas 1e0bc5d522 Simplify CMake 2023-11-10 05:33:41 +01:00
Romain Thomas 78c3196d67 Refactor the ELF Note support 2023-11-09 06:26:56 +01:00
Romain Thomas 1eb2df6e47 Use a CMakeLists.txt in the src/ directory 2023-11-04 05:31:13 +01:00
Romain Thomas 78006bc772 New build backend based on scikit-build-core 2023-11-04 04:06:51 +01:00
Romain Thomas e5ef1da160 Fix typing 2023-10-22 14:00:04 +02:00
Romain Thomas a27bd6a644 Add support for os.PathLike inputs in the parsers
Resolve: #974
2023-10-21 05:23:42 +02:00
Romain Thomas 3ade2736c0 Improve typing stubs 2023-10-15 22:14:28 +02:00
Romain Thomas 5c43eadcd1 Use Python sys.stderr for LIEF's logger
By default, LIEF's logger uses `stderr` to emit log messages which
is not catchable in Python. This commit makes use of `sys.stderr` for
the Python bindings.
2023-10-14 05:36:41 +02:00
Romain Thomas 068512c331 Bump nanobind to 1.6.2.r7.gb4c5af0 2023-10-07 12:48:52 +02:00
Romain Thomas e37ffa9ec8 Switch the bindings to nanobind (and update the CI) 2023-07-09 21:33:43 +02:00
Romain Thomas 2f2e5bf7fe Bump LIEF to C++17
LIEF internal code now uses C++17 while the API is still C++11 compliant
2023-06-04 10:39:19 +02:00
Romain Thomas d3aa0f4f93 Remove exceptions 2023-03-05 09:54:48 +01:00
Romain Thomas 9da2466609 Improve the LIEF Python build system by using pyproject.toml
- It also provides typing info (close #650)
- Enhance the test suite
- Remove deprecated PE functions
2023-02-19 20:19:03 +01:00
Romain Thomas 1149e81c2b Merge pull request #849 from mrexodia/msvc-runtime
Fix MSVC runtime selection
2023-01-03 09:20:42 +00:00
Duncan Ogilvie bbdc62f691 Fix MSVC runtime selection 2023-01-02 17:30:42 +01:00
Romain Thomas 2a10494b8a Enhance the Python IO interface
Related to #832
2022-12-09 10:22:53 +01:00
Romain Thomas 9dbbc39c65 Update dependencies 2022-11-01 08:16:36 +01:00
Romain Thomas f29aa6ba0d Fix DOWNLOAD_EXTRACT_TIMESTAMP warning 2022-09-12 06:31:28 +02:00
Romain Thomas fa306af477 Bump pybind11 version 2022-06-17 06:48:58 +02:00
Romain Thomas 7f878f40ee Enable to re-compute the PE rich header
Resolve #587
2022-03-05 21:29:53 +01:00
Wolf Vollprecht a15c6d1240 allow external pybind11 2022-03-05 11:42:04 +01:00
Romain Thomas e9782c5927 Clean & modernize LIEF code base
This commit (obviously non-atomic) cleans LIEF's code base by:
  - Using pointer semantics (`std::unique_ptr<>`)
  - Using LEAF boost error in the binary stream
  - Reducing the scope of the iterators (`it_section`, ...)
  - Removing `Structures.hpp` from the public headers
  - etc
2022-02-05 06:09:06 +01:00
Romain Thomas b730ec068d Hide the JSON implementation of LIEF
This commit removes the public include of nlohmann/json
as it is a *detail of implementation*. Instead, the public
API exposes:

```cpp
std::string to_json(...);
```

In addition, it enables to externally provide nlohmann/json using
the cmake option ``-DLIEF_OPT_NLOHMANN_JSON_EXTERNAL=on``.
For instance, this option can be used as follows:

```bash
$ cmake -DLIEF_OPT_NLOHMANN_JSON_EXTERNAL=on \
        -Dnlohmann_json_DIR=<PATH>/lib/cmake/nlohmann_json
```

Related to #605
2022-01-29 09:51:03 +01:00
rthomas a615adbee4 This commit cleans and modernizes the code base of LIEF.
Among the changes:

- It removes the ``and, or, not`` keywords
- It updates the Documentation
- It moves the internal structures in the ``details::`` namespace
2022-01-27 20:18:54 +01:00
Romain Thomas 076bd5cd23 Resolve #644 2022-01-16 17:04:47 +01:00
Romain Thomas 47b8495973 Bump Pybind11 2021-12-24 12:04:13 +01:00