1
0
mirror of synced 2024-11-13 18:50:53 +01:00
Commit Graph

282 Commits

Author SHA1 Message Date
WerWolv
e16be09f9a build: Allow ImHex to open any file types on macOS 2022-08-10 19:18:32 +02:00
WerWolv
519a9edb60 build: Make sure version string is always being set 2022-08-07 23:50:49 +02:00
WerWolv
1aa497cb7b build: Added support for Clang 14.0.0+ 2022-08-07 23:27:09 +02:00
WerWolv
189766ceb4 build: Set library and plugin permissions to 755 on install
Fixes #655
2022-08-07 00:30:03 +02:00
WerWolv
31fcf86008 build: Make sure plugin building works fine on Linux 2022-08-06 16:03:47 +02:00
WerWolv
d7accb6916 feat: Allow Find view to find overlapping occurrences
Closes #653
2022-08-06 12:57:47 +02:00
WerWolv
5cb326f95b build: Remove more warnings from ObjC compiler 2022-08-05 09:16:16 +02:00
WerWolv
c55a69c010 build: Fix objc not having certain warning flags 2022-08-05 09:00:03 +02:00
WerWolv
352df24160 build: Move another warning disable to the build script 2022-08-05 08:42:09 +02:00
WerWolv
5a41be48c3 build: Disable restrict warning 2022-08-05 08:32:08 +02:00
iTrooz_
e816b67472
build: Fix various issues for upstream Fedora compatibility (#642)
* cmake: use GNUInstallDirs to find install dirs on Linux

* install plugins to lib/imhex/plugins

* fix included files in imhex.spec

* fix the release CI + do not upload x86_64 folder for Fedora

* change rpm names

* added IMHEX_STRIP_RELEASE option to optionally strip releases files (was done all the time before)

* Customize our imhex.spec file (use online building for our Fedora package)

* added IMHEX_PLUGINS_IN_SHARE option for AppImage

* test
2022-08-04 20:37:57 +02:00
WerWolv
90d243e0ba build: Fixed setting variable in plugin and added version define check 2022-08-03 16:36:21 +02:00
WerWolv
00b7ebf9ec build: Allow GCC 12.0.0+ 2022-08-02 12:03:01 +02:00
WerWolv
69544bdf06 build: Make sure ImHex is being compiled with GCC 12.1.0 or higher 2022-08-02 11:59:29 +02:00
WerWolv
84e049be07 build: Fixed some issues to make porting to other systems easier 2022-08-01 14:35:25 +02:00
iTrooz_
df94370598
build: Fix CI for Fedora, added caching, various other fixes (#613)
* Ci: use matrix for Fedora

* Ci: use ccache in Fedora build

* Ci: cache CMakeCache for Fedora

* build type release fedora

* Rawhide with lowercase

* strip binaries on Linux

* strip files for CPack (didn't test)

* add soversion to libimhex on Linux and MacOS

* fixed that typo
2022-07-31 17:29:57 +02:00
WerWolv
438386a224 build: Fixed build outside of plugins 2022-07-27 08:45:33 +02:00
WerWolv
80c4949dfb build: Cleanup version loading logic to make it available for plugins 2022-07-27 08:27:38 +02:00
WerWolv
80d47b658e git: Fixed CI, updated all env var names 2022-07-18 20:13:01 +02:00
WerWolv
51f2b24daa git: Create new ImHex-Patterns release on new ImHex release 2022-07-18 20:02:12 +02:00
WerWolv
a57fa34f82 build: Added option for Offline builds 2022-07-08 14:17:22 +02:00
iTrooz_
d1a2f7d6ed
build: Cleanup package dependencies (#573)
* removed DEBIAN/imhex.desktop

* added licence to cmake install directory + fixed PKGBUILD to copy desktop file/licence

* removed gtk3 from packaging files

* added xdg-desktop-portal dependency

* adwaita theme should not be needed anymore

* added dbus dependency
2022-07-08 09:23:53 +02:00
iTrooz_
ceb07b7425
build: Added AUR/ArchLinux support (#566)
* store version in file

* use version file in release workflow

* use new version file in build workflow

* ArchLinux build

* setup cache for ArchLinux

* add version check in release CI

* edit step description

* update pkgbuild to install correctly

* AUR deploy

* rename version file to VERSION

* install all default plugins in PKGBUILD

* Added emojis to build workflow

* Added emojis to release workflow

* separate update packages and install dependencies in two steps

* fix Release CI

* add md5Sums to PKGBUILD

* make PKGBUILD point to the official repo + set v in tag
2022-07-04 21:40:22 +02:00
iTrooz_
cd34d567a7
build: Install pattern files in the right place (#564) 2022-06-30 15:11:00 +02:00
iTrooz_
11c2f240a1
git: Add version to artifact names (#559)
* Version file test

* change artifacts names

* Release updated

* Set release job name

* set branch to the branch used to release

* Set version for Windows Portable

* git: New cache update (#558)

* add CMakeCache.txt to cache

* added workflow_dispatch to workflows

* remove restore-keys from workflows

* Separated cache

* re-added restore-keys

* put the version file for all OS

* fix: In/Out parameters not working correctly when using the preprocessor

* update submodules

Co-authored-by: WerWolv <werwolv98@gmail.com>
2022-06-29 15:01:08 +02:00
WerWolv
3471b314dd
build: Switch to GCC on MacOS (#552)
* build: Experimentally switch to gcc on macOS

* build: Corrected gcc paths

* build: Enable objective c support on macOS

* build: Enable ObjC and ObjC++ on macOS

* build: Add ObjC and ObjC++ flags

* build: Try compiling objc with clang

* build: Remove invalid flags again

* fix: Let's not include objc headers in C++ code

* sys: Move macos utils code to its own file

* fix: Missing unistd include on mac

* sys: Removed loader script stuff since it's currently unused and broken

* fix: Missing include

* fix: Another missing include

* fix: CFURLCreateWithBytes wants a pointer to mutable data

* fix: Try disabling name mangling of ObjC functions

* sys: Move macos utils declarations to its own header file

* fix: C Linkage

* fix: Move objc function prototypes to C++ headers

* fix: More missing includes

* fix: Warning error

* sys: Call ObjC with C ABI instead of trying to use C++

* build: Update libraries

* sys: Fixed build errors

* sys: No const correctness I guess

* sys: Fixed prototypes

* sys: This is C now

* sys: More nullptr -> NULL

* sys: Fix crash on exit

* sys: Try using proper std concepts instead of custom ones

* sys: Replaced another hex::is_signed

* build: Upgrade to gcc 12 and MacOS Monterey

* build: Fixed MacOS runner name

* build: Cache correct ccache folder on macOS
2022-06-25 12:19:59 +02:00
iTrooz_
546d0a4922
build: Fix the .dmg structure (#550)
* build: Initial attempt to fix .dmg mess

* build: Still download database resources on other OSes

* build: Try fixing path recursion error

* build: Move main executable and database files to correct folder

* build: Install main executable without installing python stuff

* build: Move things around to maybe get them to be bundled

* I wanna die

* renamed imhex.app to Imhex.app

* net.WerWolv.ImHex

Co-authored-by: WerWolv <werwolv98@gmail.com>
2022-06-24 00:27:35 +02:00
WerWolv
12e99a9d4c build: Output plugin files to correct path on build on Windows as well 2022-06-16 15:42:27 +02:00
WerWolv
2a76e45dc5 build: Output plugin files to correct path on build on Linux
Fixes #536
2022-06-16 06:55:57 +02:00
WerWolv
2c361f9b0a build: Don't bundle yara rules anymore because Microsoft Defender is a little cry baby 2022-03-01 20:27:19 +01:00
WerWolv
1487f760b0 build: Bundle files from the ImHex-Patterns repo with the installation 2022-02-21 22:47:56 +01:00
WerWolv
a9a538cec8 build: Fixed circular dependency on the imhex target 2022-02-21 13:46:35 +01:00
WerWolv
05104aef6c build: Properly define DEBUG macro again in debug mode 2022-02-19 18:02:10 +01:00
WerWolv
b9508d853e build: Fixed building and loading of Rust plugins 2022-02-17 11:42:56 +01:00
WerWolv
3539b42c77 build: Make ImHex buildable again from plugin projects 2022-02-08 09:32:38 +01:00
WerWolv
f1c7dea0ab
build: Fix Icon on macOS (#417)
* build: Try to fix macOS icon

* add debugging

* Copy icon file manually

Fixes #414
2022-02-06 22:29:16 +01:00
WerWolv
1991afb87b
sys: Get rid of SharedData struct and cleanup code structure (#411)
* sys: Initial refactoring of the SharedData class

* sys/pattern: More refactoring, make every provider have its own patterns

* sys: Finished up refactoring. No more SharedData!

* sys: Fixed compile on Unix

* tests: Fixed unit tests

* sys: Moved view and lang files

* pattern: Added assignment operator support to for loops

* tests: Fixed compile issue
2022-02-01 18:09:40 +01:00
WerWolv
541c0d7547 build/plugin: Make plugins no longer depend on their file name 2022-01-23 23:28:56 +01:00
Mark Nokalt
3e9493f3e7
build: Fix usage of CMAKE_INSTALL_PREFIX on Linux (#401)
* build: Fix usage of CMAKE_INSTALL_PREFIX

* build: Use /usr prefix in Linux CI builds

* ci: Delete DEBIAN folder after .deb packaging step
2022-01-22 22:10:49 +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
b22774e33d build: Added check for cloning ImHex without initializing its submodules 2021-12-17 08:38:25 +01:00
WerWolv
f0c544e7c6 build: Make sure dlls are included in artifacts again on Windows
Fixes #366
2021-12-15 19:26:37 +01:00
WerWolv
78b3f5aef1 build: Link libraries to relevant projects 2021-12-14 20:16:59 +01:00
WerWolv
3086f259ff build: Copy dependencies of all components on install 2021-12-08 14:25:20 +01:00
WerWolv
3b59868f62 build: Fixed flatpaks, added .deb support 2021-12-03 04:42:15 -08:00
WerWolv
0b77a3f2c1 build: Install imhex to /usr directory on Linux 2021-12-03 11:35:06 +01:00
WerWolv
957dfeed81 build: Make sure libimhex is included in Linux artifacts 2021-12-03 11:26:16 +01:00
WerWolv
efad16f2c0 fix: Log was not being output to the console if one was open 2021-11-28 13:43:44 +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
Kuruyia
72ec6baf79
sys: Fix macOS compilation (as of 2dc1886) (#317)
* sys: Updated curl to latest version

* sys: Fix macOS compilation

* ui: Fix splash screen OpenGL init for macOS

* sys: Fix std::min compile errors

* git: Re-enabled macos workflow

* sys: Remove includes of the range library

* build: Find OpenGL using CMake

* sys/build: Fix bundled plugins on macOS

* build: Copy plugins to bundle when creating a bundle

* build: Fixup bundled plugins

* sys: Search for plugins in the bundle instead of in Application Support

* sys: Allow resources to be placed in multiple directories on macOS

* build: Output built plugins to the plugins/ directory when not creating a bundle on macOS

* sys: Fix Application Support paths on macOS

* sys: Define ftruncate64 on macOS

* sys: Fix absolute value computation for std::string::at on macOS

Co-authored-by: WerWolv <werwolv98@gmail.com>
2021-10-09 23:07:58 +02:00
WerWolv
9dd555f111 build: Added minimum library versions to cmake 2021-09-21 22:21:43 +02:00
xtex
5edc0b876c
i18n: Chinese(Simplified) (#303)
* feat(i18n): add Chinese(Simplified) translations

* feat: keep console window on Windows for debug builds

* feat(18n)

* feat(i18n): improve Chinese translation

* fix: unify the line terminators

* feat(build): formatting

* fix: exclude from SysWow64 for 64bits windows

* Revert "fix: exclude from SysWow64 for 64bits windows"

This reverts commit a6d66a4a56.

* Revert "feat: keep console window on Windows for debug builds"

This reverts commit 9fd4699c9f.
2021-09-20 18:41:22 +02:00
WerWolv
3cd177bff2 build: Fix build error when python is installed in Program Files 2021-09-12 14:33:08 +02:00
WerWolv
f7ee165f43 build: Removed magic database files from main repo
They can still be found in the ImHex-Patterns repo
2021-09-11 18:08:55 +02:00
WerWolv
e6c150c586 build: Don't install resources, they are embedded 2021-08-25 13:57:16 +02:00
WerWolv
9f61f04680 build: Install plugins to correct folder on Linux 2021-08-25 13:47:09 +02:00
WerWolv
2362e7a11f sys: Enable logging colors on Windows, hide console
Console log can still be seen now when running ImHex through the console but the window won't pop up by default anymore
2021-08-22 20:24:42 +02:00
Foster Brereton
ac53b4bcab
Add rpath to binary executable on macOS (#258)
* removing superfluous slash from paths

* Add a necessary rpath to the imhex binary

* add a little error handling to dlopen

* fall back on en-US if no language specified in prefs

* PR changes as per @WerWolv
2021-06-18 20:09:36 +02:00
WerWolv
8850d42246 build: Fix plugins not being compiled at all anymore 2021-05-29 23:06:36 +02:00
WerWolv
c373174436 plugins: Added windows-only features plugin 2021-05-29 21:52:18 +02:00
WerWolv
2fde4c7c98 build: Fix publisher name of windows installer 2021-05-24 19:09:32 +02:00
WerWolv
39b935affe build: Fix tons of useless build artifacts to be included on install 2021-04-20 22:11:50 +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
8760fb39cb build: Fixed libs not being built in correct directory 2021-03-02 10:19:37 +01:00
WerWolv
3e6865ffa9
sys/build: Properly support per-system metadata file paths (#181)
* sys: Move away from metadata paths next to executable in the application

Build system doesn't properly install / pack stuff yet

* build: Updated README to contain better install instructions

* sys: Search for imhex resource files in ~/Application Support

* sys: MAX_PATH -> PATH_MAX

* sys: Seach for imhex resource files in Application Support using NSFileManager (#180)

* sys: Allow for multiple file search paths

Also use install prefix instead of just /usr on Linux

* build: Fixed IMHEX_INSTALL_PREFIX macro definition

* build: Fix duplicate switch entry on Linux

* docs: Updated readme to properly reflect new paths and dependencies

* sys: Install files in their proper paths on linux (#183)

* Install files in their proper paths on linux

* Only create user directories

* Follow the XDG specification on linux

XDG specification specifies how to find config and data directories on
linux systems. Specifically, it says this:

- Data should be written to $XDG_DATA_HOME
- Config should be written to $XDG_CONFIG_HOME
- Data should be read from $XDG_DATA_HOME:$XDG_DATA_DIRS
- Config should be read from $XDG_CONFIG_HOME:$XDG_CONFIG_DIRS

The default values are this:

- XDG_DATA_HOME: $HOME/.local/share
- XDG_CONFIG_HOME: $HOME/.config
- XDG_DATA_DIRS: /usr/share:/usr/local/share
- XDG_CONFIG_DIRS: /etc/xdg

Platforms with non-standard filesystems (like NixOS) will correctly set
up those environment variables, allowing softwares to work unmodified.

In order to make integration as simple as possible, we use a simple
header-only dependency called XDGPP which does all the hard work for us
to find the default directories.

* Look for plugins in all Plugin Paths

If the plugin folder was missing from one of the PluginPaths, we would
immediately stop loading plugins. We now keep looking even if one of the
path is missing.

Co-authored-by: Nichole Mattera <me@nicholemattera.com>
Co-authored-by: Robin Lambertz <unfiltered@roblab.la>
2021-03-01 08:56:49 +01:00
WerWolv
096bdef25a Fix cmake trying to remove patch version of python even if there was none
This fixes #159
2021-02-15 12:44:38 +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
0a3cfe001d Properly added back console window on Windows debug builds 2021-01-31 22:05:06 +01:00
WerWolv
0ab565ab02 Properly set the build directory of all plugins and libimhex 2021-01-31 21:48:36 +01:00
WerWolv
5a59bc2abc Added casting and control flow nodes to data processor 2021-01-31 01:42:29 +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
896c13a612 Fixed magic include dirs not defined on mac 2021-01-25 15:27:33 +01:00
WerWolv
4839558429 Properly define IMHEX_VERSION when using RelWithDebInfo and MinSizeRel build type 2021-01-23 18:24:06 +01:00
WerWolv
09d3ecde2a Massively cleaned up cmake script 2021-01-22 23:27:01 +01:00
Mary
2340ab0518 cmake: Handle code sign and packaging for macOS bundle 2020-12-29 22:50:11 +01:00
Mary
8fbdcd54aa Make macOS bundle works!
TODO: codesign
2020-12-29 01:59:28 +01:00