1
0
mirror of synced 2024-11-24 07:40:17 +01:00
Commit Graph

189 Commits

Author SHA1 Message Date
WerWolv
40d7e4aa6e build: More repo cleanup, move libimhex and external libs to /lib folder 2022-01-16 14:20:52 +01:00
WerWolv
d8219ad971
build: Cleaned up cmake build structure (#399)
* build: Cleanup build process, move main application to /main folder

* build: Try fixing MacOS bundling

* build: Fixed swapped parameters

* build: One imhex -> main too much

* build: Move resources to a better location

* build: Try to fix macos bundle creation

* build: More bundle fixes

* build: Fixed syntax

* build: Another try

* build: Added macos debugging stuff

* build: Fix bundle path

* build: Removed duplicated adding of Frameworks folder to rpath

* build: Removed debugging
2022-01-15 00:14:12 +01:00
WerWolv
8d3ca3292e build: Bumped version to 1.13.2 2022-01-12 09:07:49 +01:00
WerWolv
0e6446b3ef build: Bumped version to 1.13.1 2022-01-10 22:16:02 +01:00
WerWolv
dc064008f3 build: Fix use of libromfs in plugin templates 2022-01-10 22:06:37 +01:00
WerWolv
44a1bbf414 build: Bumped version to 1.13.0 2022-01-09 22:01:12 +01:00
WerWolv
b082a28cc4 build: Mark libraries as PIC properly 2021-12-17 09:52:11 +01:00
WerWolv
b22774e33d build: Added check for cloning ImHex without initializing its submodules 2021-12-17 08:38:25 +01:00
WerWolv
677036fb9c build: Bumped version to 1.12.1 2021-12-16 18:57:41 +01:00
WerWolv
9cd7b746a6 build: Don't build test if not necessary 2021-12-14 20:17:09 +01:00
WerWolv
78b3f5aef1 build: Link libraries to relevant projects 2021-12-14 20:16:59 +01:00
WerWolv
bbeb7289c1 build: Bumped version to 1.12.0 2021-12-13 23:24:48 +01:00
WerWolv
3086f259ff build: Copy dependencies of all components on install 2021-12-08 14:25:20 +01:00
WerWolv
4a53717676 sys: Moved all views to builtin plugin 2021-12-07 22:47:41 +01:00
WerWolv
69973af1ed build: Bumped version to 1.11.2 2021-12-04 23:17:14 +01:00
WerWolv
fecd70c9ad build: Bumped version to 1.11.1 2021-11-28 21:34:17 +01:00
WerWolv
c71577b7bf build: Bump version to 1.11.0 2021-11-28 14:22:18 +01:00
WerWolv
46ba46ce9d
build/plugins: Added initial support for Rust plugins (#327)
* build: Added initial support for Rust plugins

* github: Install correct rust version

* github: Fixed rustup command

* github: Fix swapped win/linux commands

* github: Install linux rust toolchain on Linux

* github: Add rustup parameters to correct command

* build: libimhex-rust -> hex

* rust-plugins: Disable optimization to export functions correctly

* build: Use cdylib instead of dylib

* build: Fixed rust building and artifact copying

* build: Fixed installing plugins

* build: Fix copying and installing on Windows

* github: Added windows debugging

* github: Use curl instead of wget

* github: Added debug on failure

* github: Update path variable with rust toolchain path

* build/github: Set rust location so cmake can find it

* build: Remove leftovers

* api: Added rust wrappers for the ImHexAPI

* rust: Fixed compile flags with older gcc/clang

* build: Enable concepts for cxx.rs

* build: Explicitly set compiler for cxx.rs

* rust: Added imgui-rs to libimhex-rust

* rust: Export functions with double underscore prefix on mac

* rust: Export functions adjusted for ABI

* Add Rust target folder to gitignore

* Add vendored imgui-rs copy

* Add Context::current() to vendored imgui-rs

* Fix libimhex not exporting cimgui symbols

* Simplify plugin export mangling

* build: Fixed cimgui linking

* build: Only specify --export-all-symbols on Windows

* Add context setting to Rust plugins

* rust: Cleanup

* deps: Update curl

Co-authored-by: jam1garner <8260240+jam1garner@users.noreply.github.com>
2021-10-16 11:37:29 +02:00
WerWolv
066161f397 build: Bump version to 1.10.1 2021-09-30 12:52:12 +02:00
WerWolv
d9134f7fe1 store: Added support for downloading tar'd folders 2021-09-23 22:56:49 +02:00
KokaKiwi
ee26839292
build: Fix system libraries usage (#308)
Signed-off-by: KokaKiwi <kokakiwi+git@kokakiwi.net>
2021-09-23 22:01:38 +02:00
WerWolv
e57481b87c tools: Added file shredder, splitter and combiner 2021-09-22 17:56:06 +02:00
WerWolv
509795e6c1 build: Bump version to 1.10.0 2021-09-22 02:33:08 +02:00
WerWolv
ed9e463550 ui: Added diff view 2021-09-21 19:54:13 +02:00
WerWolv
8396e40fa0 tests: Added initial test structure 2021-09-11 14:41:18 +02:00
WerWolv
b224a584fb build: Bump version to 1.9.0 2021-09-10 15:54:59 +02:00
WerWolv
6879cf765f sys: Cleanup libmagic mess 2021-09-06 16:15:05 +02:00
WerWolv
4b40546750 views: Add simple pattern, library and magics store 2021-09-03 02:34:40 +02:00
WerWolv
a7e2c06bc4 sys: Better name for the pattern editor view 2021-08-28 21:51:33 +02:00
WerWolv
6e0249d6ea sys: Bye bye glad 2021-08-21 15:03:44 +02:00
WerWolv
b66304fc91 ui: Use borderless window on Windows 2021-08-18 22:36:46 +02:00
WerWolv
e8d77f8269 sys: Embed resources into rodata 2021-07-31 17:10:19 +02:00
WerWolv
35c7f826bc views: Added constants search view 2021-06-26 01:18:33 +02:00
WerWolv
c373174436 plugins: Added windows-only features plugin 2021-05-29 21:52:18 +02:00
WerWolv
0717d4a1b4 build: Bump version to 1.8.1 2021-05-24 19:09:53 +02:00
Matthias Mailänder
e688d34587
build: Fix yara system lib detection and add support for fmt and curl (#241)
* find yara with pkgconfig

* Use system fmt and curl.

* Flip/unify system library conditional
2021-05-23 14:16:38 +02:00
Matthias Mailänder
db5402dc09
build: Use system libraries if so desired. (#210)
Co-authored-by: WerWolv <werwolv98@gmail.com>
2021-05-23 12:16:14 +02:00
WerWolv
16a0fe4281 build: Bump version to 1.8.0 2021-05-18 21:25:59 +02:00
WerWolv
1f2fe6b93d sys: Merge splash screen and ImHex into one application
This fixes so many issues the previous implementation had, especially on Unix
2021-04-20 21:46:48 +02:00
WerWolv
ebbbcafe5c
sys: Implement more functionality into splash screen (#223)
* build: Add libcurl

* build: Stop the whole static linking on Windows mess. There's no use anymore

* sys: Added update detector and moved some startup tasks to splash screen

* sys: Updated ImHex icon

* fix: Settings button on welcome page once again works

* build: Fix build on Linux

* sys: Fixed splash window not searching all paths for resources
2021-04-18 20:24:42 +02:00
WerWolv
24c7f1d5b7 ui: Added really fancy splash screen (updater in the future) 2021-04-17 15:46:26 +02:00
WerWolv
2d7dd36b0d build: Improve linking and fix resource strings on windows 2021-04-12 20:36:16 +02:00
WerWolv
31e5ec7bc3
Add Yara rule matching interface (#178)
* build: Added YARA as submodule

* ui: Added basic yara rules matching interface

* build: Make libyara link libpthread on Unix

* ui: Add jump-to feature to yara matches list

* yara: Add more modules and patch yara to support mbedtls crypto

* yara: Started to fix scanning of bigger data

* yara: Fixed implementation

* ui: Improved yara matcher interface and added localization

* build: Ignore changed files in yara submodule

* yara: Fixed rules matching agianst entire file

* yara: Properly handle compiler errors
2021-02-26 13:35:19 +01:00
WerWolv
7f21cdffa2 build: Fix linking on Unix platforms 2021-02-22 12:29:16 +01:00
WerWolv
305b4d0ac0 build: Don't build and include example plugin by default 2021-02-19 17:37:02 +01:00
WerWolv
e6a08b9c18 Bump version to 1.7.0 2021-02-18 17:11:50 +01:00
WerWolv
b4c2f7d371 Implemented crude support for custom encodings via thingy files
Relevant issue: #26
2021-02-14 01:11:55 +01:00
WerWolv
1b98afe37d
Fix mbedtls finding on macos (#156) 2021-02-07 22:57:34 +01:00
WerWolv
ac019a7d7e Fixed build on Unix, move crypto wrapper to libimhex 2021-02-03 11:54:41 +01:00
WerWolv
785ecb8a78 Switch from openssl/libcrypto to mbedtls 2021-02-02 23:11:23 +01:00
WerWolv
16a1ae3010
Properly pack all dependencies into nightlies on all platforms (#153)
* Properly bundle all files in linux install step

* Run make install on linux build

* Use correct default magic database

* Set default magic db permissions correctly

* Fixed magic file detection issues

* Don't install default magic file if none was found

* Try fix windows packing issues
2021-02-01 17:26:05 +01:00
WerWolv
5c7a529fa1
Added Data Processor using Nodes (#152)
* Added imnodes

* Added basic data processor view. Still needs to be cleaned up

* Make sure all attached links get properly removed when a Node is deleted

* Cleanup and API exposing

* Added data provider overlays and integrate them with the data processor

* Optimized data processing

* Node UI enhancements

* Added support for all themes to the nodes editor

* Improved data processor context menus

* Fixed data processor context menu showing up everywhere

* Make hex editor context menu behave the same as data processor one

* Add different node pin types and prevent incompatible ones from being connected

* Don't require explicitly marking node as end node

* Fixed plugin copying

* Added some more nodes
2021-01-30 22:39:06 +01:00
WerWolv
ab2458bdf4 Make links in About page actual hyperlinks 2021-01-27 00:00:20 +01:00
WerWolv
27e5f8eeb6 Fixed capstone build issue on mac
On mac, capstone's include path is `include/capstone` instead of just `include`...
2021-01-25 15:19:56 +01:00
WerWolv
362f8acb15 Reenabled mac CI and trying to debug the capstone issue 2021-01-25 15:09:30 +01:00
WerWolv
0b52092eda Properly compile magicdbs again 2021-01-25 13:36:29 +01:00
WerWolv
b0b9ce0cf8 Added back module path definition 2021-01-22 23:33:13 +01:00
WerWolv
09d3ecde2a Massively cleaned up cmake script 2021-01-22 23:27:01 +01:00
WerWolv
8ed03051c3 Properly statically link libwinpthread and cleanup plugins cmake files 2021-01-22 22:44:45 +01:00
WerWolv
104000fbc4 Huge refactoring of builtin features into an external plugin 2021-01-22 18:01:42 +01:00
WerWolv
be738eb5e7 Improved byte highlighting 2021-01-20 18:10:40 +01:00
WerWolv
dc85616549 Hopefully fixed the whole plugin mess I started 2021-01-12 23:28:41 +01:00
WerWolv
84a6fff034 Refactored plugin system 2021-01-12 16:50:15 +01:00
WerWolv
c09a8bca7f Language refactoring, added builtin function registry 2021-01-11 23:54:12 +01:00
WerWolv
81652e3650 libimhex needs nlohmann json too 2021-01-11 21:51:52 +01:00
WerWolv
688e921034 Added nlohmann json to imhex directly
Once again Ubuntu is fucking outdated by over a year for literally no reason. Fuck this
2021-01-11 21:42:21 +01:00
WerWolv
d68b931013 Added settings registry and settings menu 2021-01-11 20:31:40 +01:00
WerWolv
8807d6c6f3 Moved resource.rc to res folder 2021-01-11 16:03:10 +01:00
WerWolv
a09aec032f Bump version to 1.6.1 2021-01-11 09:56:09 +01:00
WerWolv
9b7b782020 Fixed cmake error when build type was left unset 2021-01-11 08:46:51 +01:00
George Hopkins
5fb046ad1f
Show commit on about page only if available (#132) 2021-01-10 22:57:57 +01:00
Nobutaka Mantani
d9db8401e2
Fix build on FreeBSD (#126)
* Fix build on FreeBSD

* Use more generic way to search libcrypto

* Integrate macro for FreeBSD
2021-01-10 18:52:00 +01:00
Robin Lambertz
c71c610eba
Windows MSI Installer (#121)
* Create ImHex WIX Installer

* Build Windows Installer in github actions

* Have a single windows step handling MSI and ZIP.

* Properly copy dependencies to portable zip

* Add magicdb to zip/msi

* Use arial font and smaller text in license
2021-01-10 14:22:34 +01:00
WerWolv
02b3b94804 Increased ImHex to version 1.6.0 2021-01-08 22:09:08 +01:00
WerWolv
bef20f7808 Added function calling as well as a few builtin functions 2021-01-07 15:37:37 +01:00
WerWolv
d8b16766f5 Force Release build type if none was specified 2021-01-07 00:02:33 +01:00
WerWolv
b902cc6531 Go back to static linking on WIndows
Everything except python is once again statically linked
2021-01-06 19:19:01 +01:00
WerWolv
01b7059582 Dynamically link everything on Windows as well 2021-01-06 16:30:30 +01:00
Mary
2340ab0518 cmake: Handle code sign and packaging for macOS bundle 2020-12-29 22:50:11 +01:00
Mary
de5c6a4084 cmake Readd CREATE_BUNDLE infos on macOS 2020-12-29 21:00:41 +01:00
Mary
ce06d9bdfb Fix version and vendor in macOS bundle 2020-12-29 20:41:43 +01:00
Mary
33c11baca9 clean up after previous commit 2020-12-29 02:07:26 +01:00
Mary
8fbdcd54aa Make macOS bundle works!
TODO: codesign
2020-12-29 01:59:28 +01:00
Mary
20d3a84fc0 Fix creation of macOS bundle
Still need to find a way to handle the deps madness
2020-12-28 23:37:51 +01:00
Mary
58a65b0004 cmake: Do not ship resource.rc on non WIN32 systems
Also add some very early macOS bundle definitions.
2020-12-28 20:03:50 +01:00
WerWolv
8ba96904a6 More plugin support work 2020-12-27 14:12:53 +01:00
WerWolv
dbbc525174
Added Plugin support (#102)
* Build refactoring and initial plugin support

* Possibly fixed linux / mac build

* Added libdl to libglad build script

* Add glfw to imgui dependencies

* Refactored common functionality into "libimhex" for plugins

* Added plugin loading and example plugin

* Added proper API for creating a custom view and a custom tools entry with plugins
2020-12-22 18:10:01 +01:00
WerWolv
7c350dde90 Added current commit hash and branch to about page 2020-12-21 12:38:50 +01:00
WerWolv
2c1759ce0a Unified OS and arch checking defines 2020-12-21 12:38:30 +01:00
WerWolv
4b59d57f89 Added version info to about page 2020-12-21 11:24:27 +01:00
Mary
310059f274 Support macOS
This allows building and running under macOS.
There is still some issues with dpi but the application compiles and run now.
2020-12-18 21:44:13 +01:00
Mary
b5cc3b6f1b Make target link and include more generic
This fixes issues with library link and unify support for linking on Linux/macOS/BSD.
2020-12-18 20:04:55 +01:00
Mary
413443aa95 Build LLVM demangler directly with our sources
This remove dep on LLVM library by building the demangler as part of the
project.

This should help with building on macOS.
2020-12-18 17:56:41 +01:00
WerWolv
9123b21e18 Added basic command palette (similar to the one in vscode) 2020-12-16 22:43:07 +01:00
averne
56cca88fbd
Proper DPI scaling and basic custom font (#85)
* add glm to arch deps

After running got `None of the required 'glm' found`. This fixes that

* dist/fedora: Include file magic headers

Due to differences in package names between Deb based systems, Arch
Linux, and RPM based systems the package containing the development
headers for file were missing from the Fedora dependencies script.

This includes the package `file-devel`, which is the package which
resolves the issue.

In Fedora, one can identify the package providing a specific file using
the verb "whatprovides" with the command dnf, e.g.:

    [~]$ dnf whatprovides /usr/include/magic.h
    Last metadata expiration check: 4 days, 0:23:05 ago on Fri 04 Dec 2020 09:06:53 AM PST.
    file-devel-5.39-3.fc33.i686 : Libraries and header files for file development
    Repo        : fedora
    Matched from:
    Filename    : /usr/include/magic.h

    file-devel-5.39-3.fc33.x86_64 : Libraries and header files for file development
    Repo        : @System
    Matched from:
    Filename    : /usr/include/magic.h

    file-devel-5.39-3.fc33.x86_64 : Libraries and header files for file development
    Repo        : fedora
    Matched from:
    Filename    : /usr/include/magic.h

If one is unsure of the specific path, globbing may be used (but must be
quoted):

    dnf whatprovides "*/magic.h"

Resolves #48

* dist: Prevent already installed packages in ArchLinux and MSYS2.

Use --needed option with pacman to prevent it.

* Add script to install dependencies on Debian/Ubuntu.

Tested with Xubuntu 20.04 and Debian testing
(in today's Docker image bitnami/minideb).

Update README.md.

* ci: rework (#31)

* Support non standard LLVM library names (#86)

This fix openSUSE and Gentoo issue mentioned in https://github.com/WerWolv/ImHex/issues/37#issuecomment-739503138.

(tested on openSUSE tumbleweed via Docker)

I also took the liberty of renaming llvm_lib to llvm_demangle_lib to be more specific in the ``CMakeLists.txt``.

* Implement proper DPI handling

* Implement basic custom font support

* Fix building on windows

* Hopefully fix fonts on Windows

* Fix several scaling issues

* Replace font renderer with freetype

* Updated CI and dependency scripts

* Rebuild default font atlas

* Correct platform detection macro for mingw

* Fixed PKGBUILD

Co-authored-by: brockelmore <31553173+brockelmore@users.noreply.github.com>
Co-authored-by: Brian 'Redbeard' Harrington <redbeard@dead-city.org>
Co-authored-by: Biswapriyo Nath <nathbappai@gmail.com>
Co-authored-by: Stéphane Gourichon <stephane.gourichon@fidergo.fr>
Co-authored-by: umarcor <38422348+umarcor@users.noreply.github.com>
Co-authored-by: Mary <me@thog.eu>
Co-authored-by: WerWolv <werwolv98@gmail.com>
2020-12-11 14:24:42 +01:00
Mary
9b853350f1
Support non standard LLVM library names (#86)
This fix openSUSE and Gentoo issue mentioned in https://github.com/WerWolv/ImHex/issues/37#issuecomment-739503138.

(tested on openSUSE tumbleweed via Docker)

I also took the liberty of renaming llvm_lib to llvm_demangle_lib to be more specific in the ``CMakeLists.txt``.
2020-12-10 22:28:49 +01:00
umarcor
e3b5a55eba
ci: rework (#31) 2020-12-09 19:49:56 +01:00
Mary
727b3c6b10 CI: Add a GitHub Action to build on Ubuntu 20.04 LTS
Also clean up MSYS2 action.
2020-12-05 20:03:22 +01:00
Mary
5b51375404 Make sure to add LLVM_LIBRARY_DIR to link directories
This fix build on Debian and Ubuntu systems.

Close #28
Close #8
2020-12-05 18:13:47 +01:00
WerWolv
4725ff6d5f Don't open a console window in release build
This fixes #21
2020-12-05 14:09:32 +01:00