Commit Graph

199 Commits

Author SHA1 Message Date
Nik aae3004f1f
build: Various build improvements (#1193) 2023-07-15 00:10:01 +02:00
WerWolv 6c4fdd146f build: Use llvm-ar and llvm-ranlib on Windows 2023-07-14 21:51:18 +02:00
iTrooz 1ed658bcdc
feat: Added command line interface support (#1172)
System design has been discussed on discord

Should fix #948

---------

Co-authored-by: WerWolv <werwolv98@gmail.com>
2023-07-13 14:08:23 +02:00
WerWolv 511ef3ef2b build: Supress warning generated by libraries setting BUILD_SHARED_LIBS 2023-07-09 22:39:27 +02:00
WerWolv 32ade6136b build: Make sure ImHex Patterns repo gets cloned correctly 2023-07-09 22:18:53 +02:00
WerWolv 65d9509c38 build: Add checked option to enable LTO 2023-07-09 20:34:49 +02:00
WerWolv 25d6380963 build: Upgraded capstone to full V5 release 2023-07-05 20:45:46 +02:00
WerWolv b87c32a94b build: Fedora fix again 2023-06-26 14:52:00 +02:00
WerWolv b13494a192 build: Try fixing Fedora build 2023-06-26 14:37:35 +02:00
WerWolv d527675bda build: Make sure changing commit hash doesn't trigger a full rebuild
Closes #1137
2023-06-26 14:01:45 +02:00
WerWolv 13b4201446 build: Clean up build logs 2023-06-26 08:45:33 +02:00
WerWolv 568e8d8d42 build: Don't generated PDBs in Debug mode 2023-06-24 11:52:37 +02:00
WerWolv cabe9cf995 build: Fixed PDB generation again 2023-06-24 01:48:13 +02:00
WerWolv 35d2fda0a4 build: More pdb gen fixes 2023-06-23 23:20:56 +02:00
WerWolv 2c6f1503ef build: Corrected pdb generation and install issues 2023-06-23 23:00:06 +02:00
WerWolv c787532ed9 build: Fixed pdb creation removing bundled debug info 2023-06-23 21:39:13 +02:00
WerWolv ae06954771 fix: Stack trace printing on Windows not working right 2023-06-22 15:15:06 +02:00
WerWolv e1b0c1c268 build: Fixed commit hash define being set incorrectly 2023-06-21 23:09:22 +02:00
Nik f703b15165
feat: Added statistics and crash log uploading (#1149)
Co-authored-by: Justus Garbe <gihihoh@gmail.com>
2023-06-20 11:55:56 +02:00
WerWolv 25154dd450 build: Force enable exceptions and rtti 2023-06-18 14:42:48 +02:00
KOLANICH 330c8399ce
build: Only enable GCC-exclusive warnings on GCC (#1091)
Move all the flags added into an if block, since the flags are for
GCC/Clang and are not suitable for Visual Studio.
2023-06-13 23:01:26 +02:00
iTrooz bfe698f883
build: Do not install _schema.json files (#1095) 2023-05-22 13:20:55 +02:00
KOLANICH 749823e044
build: Move `-s` additional compiler flags into linker flags, and enable it only when gcc/clang are used. (#1087)
Compiler when compiling doesn't use them in those cases and emit a
warning, which is turned into an error by `-Werror`. Unfortunately,
CPack doesn't expose the logic it uses for stripping binaries.
2023-05-20 13:37:57 +02:00
WerWolv 636ed0095d feat: Added new `imhex/capabilities` network interface 2023-05-16 11:01:40 +02:00
WerWolv 6e5d6810e7 build: Disable assertions in release builds 2023-05-13 17:49:53 +02:00
WerWolv 50c3cf8272 build: Replace old interval tree in favour of custom libwolv one 2023-05-11 09:27:23 +02:00
WerWolv 5a6e5d2255 build: Switch to better interval tree implementation 2023-05-07 23:27:43 +02:00
classabbyamp 82f5900759
build: Added option to disable update checking (#1036)
This is aimed at use by linux distros, where package updates come from a
central location, and users shouldn't need to worry about updating ImHex
on their own. This disables parts of the ImHex UI that would not be
useful in that case.

Tested and confirmed that this works in both states of the of the
`-DIMHEX_DISABLE_UPDATE_CHECK` switch.
2023-05-05 22:03:45 +02:00
WerWolv 143fe36d35 build: Fixed various build warnings 2023-04-13 16:11:39 +02:00
WerWolv 0aaeeffff7 build: Fixed capitalization of ImHex in MSI installer 2023-03-26 11:22:50 +02:00
WerWolv eb2ed6852c build: Make SSL work when using system curl on WIndows 2023-03-23 20:12:33 +01:00
WerWolv a36b4d65e3 build: Make sure commit hash and branch end up in nightly builds 2023-03-21 10:14:09 +01:00
WerWolv d9a498e8ec build: Make sure libwolv is compiled with -fPIC 2023-03-13 10:39:34 +01:00
WerWolv 0dafb3d230 sys: Replaced many helper functions with libwolv 2023-03-12 18:27:33 +01:00
WerWolv 505c1bc274 build: Fix Fedora build errors 2023-03-10 14:46:15 +01:00
WerWolv 58324b4539 build: Fixed linking against execinfo 2023-02-17 17:56:27 +01:00
WerWolv 09b7794d71 build: Added option to disable stack traces 2023-02-17 17:52:10 +01:00
WerWolv a87190960f build: Fixed one more missing imhex target name 2023-02-12 22:08:35 +01:00
WerWolv e426606542 build: Fixed flatpak build issues 2023-02-12 21:55:09 +01:00
WerWolv 79ecf7fa59 build: Fix non-Windows build 2023-02-01 09:38:03 +01:00
WerWolv 4c761df181 build: Improve build script a bit 2023-02-01 09:20:46 +01:00
WerWolv 94cd83e0dc feat: Added sound visualizer 2023-01-24 23:27:35 +01:00
Nik 48a57cd981
feat: Added stacktrace printing on crashes (#892)
* feat: Added simple stack trace output

* feat: Added backtrace wrapper

* build: Added libbacktrace include dirs to build

* build: Fixed libbacktrace variables

* build: More backtrace variable fixes

* build: Try to find backtrace include

* build: Get backtrace header from cmake script

* feat: Added backtrace support for execinfo

* feat: Added support for StackWalk on Windows
2023-01-17 21:38:56 +01:00
WerWolv 7e17059154 sys: Improved exception debug output 2023-01-16 18:17:13 +01:00
WerWolv 0c302da0db build: Add option to use the GTK file picker instead of portals on Linux
Fixes #882
2023-01-13 20:11:27 +01:00
WerWolv 9a5881fc47 build: Fixed -Wpedantic issues on macOS 2023-01-04 14:24:07 +01:00
WerWolv f7dd28002e build: Build everything using `-Wpedantic` 2023-01-04 14:03:09 +01:00
WerWolv 496b0ec41d build: Fixed more build errors 2023-01-04 13:29:39 +01:00
WerWolv eb4a1e2692 build: Try to clean up bundled dependencies a bit 2023-01-04 12:34:38 +01:00
WerWolv 4cd6646cca build: Enable libstdc++ assertions in debug builds 2023-01-01 01:05:01 +01:00
WerWolv ad71e612a3 build: Clean up some old compiler/linker flag settings 2022-12-30 10:35:11 +01:00
WerWolv 85823e8e5d build: Removed all usages of Python 2022-12-29 23:32:57 +01:00
WerWolv 264da1ed78 pattern: Show array entries directly if there are less than 512 2022-12-20 20:56:01 +01:00
WerWolv 1dd873462e build: Fixed build failure when VERSION file contains extra white space 2022-11-29 09:44:47 +01:00
iTrooz_ b10a59661e
build: Tell users patterns are being downloaded (#820)
* Tell users patterns are being downloaded

* Improved log message

Co-authored-by: Nik <werwolv98@gmail.com>
2022-11-25 10:37:31 +01:00
iTrooz_ a537fe90a0
build: Added `make uninstall` (#784) 2022-10-14 15:35:45 +02:00
WerWolv 556895744b build: Disable more bogus stringop warnings 2022-10-05 15:09:41 +02:00
Colin Kinloch 9fa6d82775
build: Install Database files from subdirectory in offline builds (#737)
Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>

Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Co-authored-by: Colin Kinloch <colin.kinloch@collabora.com>
2022-09-13 22:34:33 +02:00
iTrooz_ f219395b25
build: Added AppImage zsync and updated metadata (#733)
* added update information

* upload zsync

* set version of appimage

* release: do not execute steps which needs a token when not provided

* set the appimage output name directly in the recipe file

* add metainfo file in every Linux package

* update metainfo file

* set categories in the metainfo file

* add both .metainfo.xml and .appdata.xml files because it is the old standard still wanted by some things

* actually use WerWolv's repository for AppImage updates

* rename metainfo files

* Typo : appdata and not appinfo

* split screenshots
2022-09-08 09:31:49 +02:00
WerWolv ffbaef3872 build: Make sure cmake gets reconfigured when version file changes 2022-09-06 10:43:43 +02:00
iTrooz_ 38162c0129
build: Use the bundled CA cert in AppImage (#694)
* Added option to bundle CA

* use bundled CA for AppImage

* Fix bundled CA not working on Linux

* revert change to add null terminated string

* set IMHEX_USE_BUNDLED_CA to ON on Windows
2022-08-26 00:21:17 +02:00
WerWolv f62edea450 build: Fix various clang build issues 2022-08-26 00:18:08 +02:00
WerWolv cf6ae52889 git: Automatically update winget package on release 2022-08-17 15:50:29 +02:00
WerWolv 7bc2c4a0d4 build: Cleanup build scripts 2022-08-11 10:50:25 +02:00
WerWolv 72f7c72094 build: Improved look and feel of the Windows installer and macOS dmg 2022-08-10 22:47:21 +02:00
WerWolv 568b7f5139 build: Move plist property setting 2022-08-10 20:26:27 +02:00
WerWolv 164cb1285b build: Set MACOSX_BUNDLE_INFO_PLIST in a different way 2022-08-10 20:18:37 +02:00
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