Commit Graph

67 Commits

Author SHA1 Message Date
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
Romain Thomas a479b6ee6e Fix MacOS rpath 2021-01-18 16:58:13 +01:00
Romain Thomas bdf1264df9 Update doc & tests 2021-01-16 09:44:51 +01:00
Romain Thomas 022ec6e998 Update strip 2020-12-23 09:46:09 +01:00
Romain Thomas 197b699951 Update strip command 2020-12-23 08:00:54 +01:00
Romain Thomas 03ba40b735 Setup Ninja for windows 2020-12-05 11:30:53 +01:00
rthomas 1364f22c78 Improve logging interface 2020-11-09 21:02:50 +01:00
rthomas 3d9b84c6ec Add support for Python 3.9 2020-10-22 14:48:27 +02:00
rthomas 5684960317 Update dependencies 2020-05-24 06:47:15 +02:00
rthomas 934d84ffea Move to Pybind11 v2.4.3 and fix enum conflicts 2019-11-19 06:41:11 +01:00
rthomas 208264cb66 Remove unused files
Resolve #348
2019-10-02 08:13:12 +02:00
Romain Thomas 0d03b4bdb8 Improve Python setup 2019-03-31 10:15:08 +02:00
Romain Thomas 184074841b Drop Python 2.7 support. Add Python 3.7 support 2018-11-16 11:00:09 +01:00
Adrien Guinet 4b03ac45e0 Remove LIEF_SHARED_LIB from cmake
Moreover, add macros to force the CRT usage when using MSVC.
This is based on the LLVM one.
2018-08-29 08:50:56 +02:00
Romain Thomas d394e0e58f Strip file for Release Build 2018-08-20 09:04:28 +02:00
Romain Thomas 68b0958a2a Set default python version to 3.5
Resolve: #127
2018-05-16 10:32:05 +02:00
Romain Thomas 4ef1bb845f Add new formats: OAT, DEX, VDEX, ART 2018-05-04 12:46:28 +02:00
Romain Thomas 3b17aba10e Refactor some parts of the Architecture:
* JSON visitor are located in the format namespace
  * Visitor are *real* visitor
  * Visitable class has been renamed to Object
  * Due to a bug in Visual Studio 2015, we move to VS2017
2018-03-13 16:49:02 +01:00
Romain Thomas 4cee3fa240 Some improvements in the CMake build
* cache dependencies in the 'third-party' directory.
  * Enhance Python 'find_library'
2017-11-01 10:12:05 +01:00
Romain Thomas 2e4bd6d4c4 Improve Python packaging 2017-10-03 22:42:13 +02:00
Romain Thomas ab160a88d6 Move to version 2.2.1 of Pybind11 2017-10-01 20:51:44 +02:00