Fixes random .NET plugin crash caused by the console window being freed
on the same process.
### Problem description
Sometimes when launching from the explorer ImHex crashes
### Implementation description
We've implemented a launcher to avoid freeing the std streams, that
generated the bug.
### Screenshots
N/A
### Additional things
Blame windows console subsystem
Currently, LTO isn't enabled (at least on Linux ?), because LTO doesn't
recognize any language as being enabled.
I fixed that by explicitly enabling C and CXX languages before enabling
LTO
This PR intends to add support for .NET scripts that can extend ImHex's
functionality in a portable and cross-platform way.
---------
Co-authored-by: Justus Garbe <55301990+Nowilltolife@users.noreply.github.com>
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.
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.
* 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
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>
* 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
* 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
* 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
* 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
* 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
* 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>
* 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
* 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>
* 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
* 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>
* 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.
* 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