#include <climits>
#include <QApplication>
+#if QT_VERSION > QT_VERSION_CHECK(5, 2, 0)
+#define ARGPARSE
+#endif
+
+#ifdef ARGPARSE
#include <QCommandLineParser>
+#endif
#include <QTextEdit>
#include "log4cxx/logger.h"
#include "log4cxx/basicconfigurator.h"
-#include "Binary.hxx"
#include "gui/Mainwindow.hxx"
using std::cout;
int main(int argc, char** argv)
{
+ QApplication app(argc, argv);
+
log4cxx::BasicConfigurator::configure();
log4cxx::LoggerPtr _logger(log4cxx::Logger::getLogger("main"));
+#ifdef ARGPARSE
+ QCommandLineParser parser;
+#endif
+
+ QApplication::setApplicationName("frida");
+#ifdef ARGPARSE
+ parser.addHelpOption();
+ parser.addVersionOption();
+ parser.addPositionalArgument("filename", QCoreApplication::translate("main", "File to disassemble."));
+
+
+ parser.process(app);
+#endif
+
LOG4CXX_DEBUG(_logger, "Initializing LLVM");
llvm::InitializeAllTargetInfos();
llvm::InitializeAllTargetMCs();
llvm::InitializeAllDisassemblers();
LOG4CXX_DEBUG(_logger, "Initializing Qt");
- QApplication app(argc, argv);
- QCommandLineParser parser;
-
- QApplication::setApplicationName("frida");
- parser.addHelpOption();
- parser.process(app);
- Mainwindow m;
- m.show();
+ std::string filename = "";
+#ifdef ARGPARSE
+ if (! parser.positionalArguments().isEmpty()) {
+ filename = parser.positionalArguments().at(0).toStdString();
+ }
+#endif
- return app.exec();
+ Mainwindow m(filename);
+ m.show();
+ return app.exec();
}