1
0
mirror of synced 2024-12-21 12:05:54 +01:00
ImHex/main/gui/source/main.cpp

55 lines
1.5 KiB
C++
Raw Normal View History

#include <hex.hpp>
2021-08-29 22:15:18 +02:00
#include <hex/helpers/logger.hpp>
#include "window.hpp"
#include "init/splash_window.hpp"
#include "crash_handlers.hpp"
#include <hex/api/task_manager.hpp>
#include <hex/api/plugin_manager.hpp>
2023-07-22 21:30:22 +02:00
namespace hex::init {
int runImHex();
void runCommandLine(int argc, char **argv);
2023-07-22 21:30:22 +02:00
}
/**
* @brief Main entry point of ImHex
* @param argc Argument count
* @param argv Argument values
* @return Exit code
*/
int main(int argc, char **argv) {
using namespace hex;
// Set the main thread's name to "Main"
2024-01-09 10:39:06 +01:00
TaskManager::setCurrentThreadName("Main");
// Setup crash handlers right away to catch crashes as early as possible
crash::setupCrashHandlers();
2023-07-21 11:53:37 +02:00
// Run platform-specific initialization code
Window::initNative();
// Handle command line arguments if any have been passed
2023-07-22 21:30:22 +02:00
if (argc > 1) {
init::runCommandLine(argc, argv);
2023-07-22 21:30:22 +02:00
}
// Log some system information to aid debugging when users share their logs
2023-07-22 21:30:22 +02:00
log::info("Welcome to ImHex {}!", ImHexApi::System::getImHexVersion());
log::info("Compiled using commit {}@{}", ImHexApi::System::getCommitBranch(), ImHexApi::System::getCommitHash());
log::info("Running on {} {} ({})", ImHexApi::System::getOSName(), ImHexApi::System::getOSVersion(), ImHexApi::System::getArchitecture());
#if defined(OS_LINUX)
auto distro = ImHexApi::System::getLinuxDistro().value();
log::info("Linux distribution: {}. Version: {}", distro.name, distro.version == "" ? "None" : distro.version);
#endif
2023-07-22 21:30:22 +02:00
// Run ImHex
return init::runImHex();
2023-11-10 20:47:08 +01:00
}