X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2Fmain.cxx;h=81ccd143aa0050d5b1694d0832ceb0d5863618cf;hb=e70598f51be637f9d2e2c1ebd00523f50f9fb1e3;hp=63cfd193db20d3bb4df6020c685743591e55ea62;hpb=7a892cde0fc101e01c52f58aaadecba2151d0aca;p=tools%2Finstall.git diff --git a/src/main.cxx b/src/main.cxx index 63cfd19..81ccd14 100644 --- a/src/main.cxx +++ b/src/main.cxx @@ -1,9 +1,9 @@ // File : main.cxx // Created : Thu Dec 18 12:01:00 2002 -// Author : Vadim SANDLER +// Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com) // Project : SALOME // Module : Installation Wizard -// Copyright : 2004-2005 CEA +// Copyright : 2002-2009 CEA #include "globals.h" @@ -18,7 +18,13 @@ * Qt's messages handler funcion */ // ================================================================ -void MessageOutput( QtMsgType type, const char *msg ) +void MessageOutput( QtMsgType type, +#ifdef QT_DEBUG + const char* msg +#else + const char* +#endif + ) { switch ( type ) { case QtDebugMsg: @@ -42,26 +48,96 @@ void MessageOutput( QtMsgType type, const char *msg ) int main( int argc, char **argv ) { qInstallMsgHandler( MessageOutput ); - QApplication a( argc, argv ); - a.setFont( QFont("Helvetica", 9 ) ); - QString xmlFileName( argc == 2 ? argv[1] : "config.xml" ); - - int result = -1; - QFile xmlfile(xmlFileName); - if ( xmlfile.exists() ) { - SALOME_InstallWizard wizard(xmlFileName); - a.setMainWidget( &wizard ); - wizard.show(); - result = a.exec(); + + QString xmlFileName; + QString targetDirPath; + QString tmpDirPath; + bool has_xml = false; + bool has_target = false; + bool has_tmp = false; + bool force_src = false; + bool single_dir = false; + for( int i = 1; i < argc; i++ ) { + QString a = QString( argv[i] ); + if ( a == "--version" || a == "-v" ) { + printf("SALOME Installation Wizard version %d.%d.%d (Qt version %d.%d.%d)\n", + ( __IW_VERSION__ / 10000 ), + ( __IW_VERSION__ / 100 % 100 ), + ( __IW_VERSION__ % 100 ) , + ( QT_VERSION >> 16 ) & 0xFF, + ( QT_VERSION >> 8 ) & 0xFF, + ( QT_VERSION ) & 0xFF ); + printf("Copyright (C) 2002-2009 CEA\n"); + return 0; + } + else if ( a == "--target" || a == "-d" ) { + has_target = true; + if ( i < argc-1 && !QString( argv[i+1] ).startsWith("-") ) { + targetDirPath = argv[i+1]; + i++; + } + else { + targetDirPath = QString::null; + } + } + else if ( a == "--tmp" || a == "-t" ) { + has_tmp = true; + if ( i < argc-1 && !QString( argv[i+1] ).startsWith("-") ) { + tmpDirPath = argv[i+1]; + i++; + } + else { + tmpDirPath = QString::null; + } + } + else if ( a == "--file" || a == "-f" ) { + has_xml = true; + if ( i < argc-1 && !QString( argv[i+1] ).startsWith("-") ) { + xmlFileName = argv[i+1]; + i++; + } + else { + xmlFileName = QString::null; + } + } + else if ( a == "--all-from-sources" || a == "-a" ) { + force_src = true; + } + else if ( a == "--single-directory" || a == "-s" ) { + single_dir = true; + } + } + if ( has_xml && xmlFileName.isEmpty() ) { + printf("Please specify the configuration XML file!\n"); + return 1; + } + if ( has_target && targetDirPath.isEmpty() ) { + printf("Please specify the target directory path!\n"); + return 1; } - else { - QMessageBox::critical( 0, - QObject::tr( "Error" ), - QObject::tr( "Can't open config file:\n%1\n\nQuitting...").arg( xmlFileName ), - QMessageBox::Ok, - QMessageBox::NoButton, - QMessageBox::NoButton ); + if ( has_tmp && tmpDirPath.isEmpty() ) { + printf("Please specify the temprary directory path!\n"); + return 1; + } + + QApplication a( argc, argv ); + a.setFont( QFont( "Sans", 12 ) ); + + if ( has_xml ) { + QFile xmlfile(xmlFileName); + if ( !xmlfile.exists() ) { + QMessageBox::critical( 0, + QObject::tr( "Error" ), + QObject::tr( "Can't open config file:\n%1\n\nQuitting...").arg( xmlFileName ), + QMessageBox::Ok, + QMessageBox::NoButton, + QMessageBox::NoButton ); + return -1; + } } - return result; + SALOME_InstallWizard wizard(xmlFileName, targetDirPath, tmpDirPath, force_src, single_dir); + a.setMainWidget( &wizard ); + wizard.show(); + return a.exec(); }