Changeset 846 for trunk/qmake/option.cpp
- Timestamp:
- May 5, 2011, 5:36:53 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/vendor/nokia/qt/4.7.2 (added) merged: 845 /branches/vendor/nokia/qt/current merged: 844 /branches/vendor/nokia/qt/4.6.3 removed
- Property svn:mergeinfo changed
-
trunk/qmake/option.cpp
r769 r846 1 1 /**************************************************************************** 2 2 ** 3 ** Copyright (C) 201 0Nokia Corporation and/or its subsidiary(-ies).3 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). 4 4 ** All rights reserved. 5 5 ** Contact: Nokia Corporation (qt-info@nokia.com) … … 85 85 //all modes 86 86 QString Option::qmake_abslocation; 87 int Option::warn_level = WarnLogic ;87 int Option::warn_level = WarnLogic | WarnDeprecated; 88 88 int Option::debug_level = 0; 89 89 QFile Option::output; 90 90 QString Option::output_dir; 91 bool Option::recursive = false;91 Option::QMAKE_RECURSIVE Option::recursive = Option::QMAKE_RECURSIVE_DEFAULT; 92 92 QStringList Option::before_user_vars; 93 93 QStringList Option::after_user_vars; … … 97 97 QString Option::user_template_prefix; 98 98 QStringList Option::shellPath; 99 #if defined(Q_OS_WIN32) 100 Option::TARG_MODE Option::target_mode = Option::TARG_WIN_MODE; 101 #elif defined(Q_OS_OS2) 102 Option::TARG_MODE Option::target_mode = Option::TARG_OS2_MODE; 103 #elif defined(Q_OS_MAC) 104 Option::TARG_MODE Option::target_mode = Option::TARG_MACX_MODE; 105 #else 106 Option::TARG_MODE Option::target_mode = Option::TARG_UNIX_MODE; 107 #endif 99 Option::HOST_MODE Option::host_mode = Option::HOST_UNKNOWN_MODE; 100 Option::TARG_MODE Option::target_mode = Option::TARG_UNKNOWN_MODE; 101 bool Option::target_mode_overridden = false; 108 102 109 103 //QMAKE_*_PROPERTY stuff … … 129 123 static Option::QMAKE_MODE default_mode(QString progname) 130 124 { 131 int s = progname.lastIndexOf( Option::dir_sep);125 int s = progname.lastIndexOf(QDir::separator()); 132 126 if(s != -1) 133 127 progname = progname.right(progname.length() - (s + 1)); … … 137 131 return Option::QMAKE_QUERY_PROPERTY; 138 132 return Option::QMAKE_GENERATE_MAKEFILE; 133 } 134 135 static QString detectProjectFile(const QString &path) 136 { 137 QString ret; 138 QDir dir(path); 139 if(dir.exists(dir.dirName() + Option::pro_ext)) { 140 ret = dir.filePath(dir.dirName()) + Option::pro_ext; 141 } else { //last try.. 142 QStringList profiles = dir.entryList(QStringList("*" + Option::pro_ext)); 143 if(profiles.count() == 1) 144 ret = dir.filePath(profiles.at(0)); 145 } 146 return ret; 139 147 } 140 148 … … 163 171 "\n" 164 172 "Warnings Options:\n" 165 " -Wnone Turn off all warnings\n" 173 " -Wnone Turn off all warnings; specific ones may be re-enabled by\n" 174 " later -W options\n" 166 175 " -Wall Turn on all warnings\n" 167 176 " -Wparser Turn on parser warnings\n" 168 " -Wlogic Turn on logic warnings\n" 177 " -Wlogic Turn on logic warnings (on by default)\n" 178 " -Wdeprecated Turn on deprecation warnings (on by default)\n" 169 179 "\n" 170 180 "Options:\n" … … 173 183 " * before [files]. *\n" 174 184 " -o file Write output to file\n" 175 " -unix Run in unix mode\n"176 " -win32 Run in win32 mode\n"177 " -os2 Run in OS/2 mode\n"178 " -macx Run in Mac OS X mode\n"179 185 " -d Increase debug level\n" 180 186 " -t templ Overrides TEMPLATE as templ\n" … … 213 219 bool specified = true; 214 220 if(opt == "project") { 215 Option::recursive = true;221 Option::recursive = Option::QMAKE_RECURSIVE_YES; 216 222 Option::qmake_mode = Option::QMAKE_GENERATE_PROJECT; 217 223 } else if(opt == "prl") { … … 240 246 } else if(opt == "tp" || opt == "template_prefix") { 241 247 Option::user_template_prefix = argv[++x]; 242 } else if(opt == "mac9") {243 Option::target_mode = TARG_MAC9_MODE;244 248 } else if(opt == "macx") { 249 fprintf(stderr, "-macx is deprecated.\n"); 250 Option::host_mode = HOST_MACX_MODE; 245 251 Option::target_mode = TARG_MACX_MODE; 252 Option::target_mode_overridden = true; 246 253 } else if(opt == "unix") { 254 fprintf(stderr, "-unix is deprecated.\n"); 255 Option::host_mode = HOST_UNIX_MODE; 247 256 Option::target_mode = TARG_UNIX_MODE; 257 Option::target_mode_overridden = true; 248 258 } else if(opt == "win32") { 259 fprintf(stderr, "-win32 is deprecated.\n"); 260 Option::host_mode = HOST_WIN_MODE; 249 261 Option::target_mode = TARG_WIN_MODE; 262 Option::target_mode_overridden = true; 250 263 } else if(opt == "os2") { 264 fprintf(stderr, "-os2 is deprecated.\n"); 265 Option::host_mode = TARG_OS2_MODE; 251 266 Option::target_mode = TARG_OS2_MODE; 267 Option::target_mode_overridden = true; 252 268 } else if(opt == "d") { 253 269 Option::debug_level++; … … 270 286 } else if(opt == "Wlogic") { 271 287 Option::warn_level |= WarnLogic; 288 } else if(opt == "Wdeprecated") { 289 Option::warn_level |= WarnDeprecated; 272 290 } else if(opt == "Wnone") { 273 291 Option::warn_level = WarnNone; 274 292 } else if(opt == "r" || opt == "recursive") { 275 Option::recursive = true;276 } else if(opt == "n orecursive") {277 Option::recursive = false;293 Option::recursive = Option::QMAKE_RECURSIVE_YES; 294 } else if(opt == "nr" || opt == "norecursive") { 295 Option::recursive = Option::QMAKE_RECURSIVE_NO; 278 296 } else if(opt == "config") { 279 297 Option::user_configs += argv[++x]; … … 292 310 Option::mkfile::do_dep_heuristics = false; 293 311 } else if(opt == "E") { 312 fprintf(stderr, "-E is deprecated. Use -d instead.\n"); 294 313 Option::mkfile::do_preprocess = true; 295 314 } else if(opt == "cache") { … … 328 347 arg = fi.filePath(); 329 348 if(Option::qmake_mode == Option::QMAKE_GENERATE_MAKEFILE || 330 Option::qmake_mode == Option::QMAKE_GENERATE_PRL) 349 Option::qmake_mode == Option::QMAKE_GENERATE_PRL) { 350 if(fi.isDir()) { 351 QString proj = detectProjectFile(arg); 352 if (!proj.isNull()) 353 arg = proj; 354 } 331 355 Option::mkfile::project_files.append(arg); 332 else if(Option::qmake_mode == Option::QMAKE_GENERATE_PROJECT)356 } else if(Option::qmake_mode == Option::QMAKE_GENERATE_PROJECT) { 333 357 Option::projfile::project_dirs.append(arg); 334 else358 } else { 335 359 handled = false; 360 } 336 361 } 337 362 if(!handled) { … … 401 426 Option::dirlist_sep = ";"; 402 427 Option::shellPath = detectShellPath(); 428 Option::res_ext = ".res"; 403 429 #else 404 430 Option::dirlist_sep = ":"; 431 Option::shellPath = QStringList("sh"); 405 432 #endif 406 433 Option::sysenv_mod = "QMAKE_ENV_"; … … 508 535 //try REALLY hard to do it for them, lazy.. 509 536 if(Option::mkfile::project_files.isEmpty()) { 510 QString pwd = qmake_getpwd(), 511 proj = pwd + "/" + pwd.right(pwd.length() - (pwd.lastIndexOf('/') + 1)) + Option::pro_ext; 512 if(QFile::exists(proj)) { 537 QString proj = detectProjectFile(qmake_getpwd()); 538 if(!proj.isNull()) 513 539 Option::mkfile::project_files.append(proj); 514 } else { //last try..515 QStringList profiles = QDir(pwd).entryList(QStringList("*" + Option::pro_ext));516 if(profiles.count() == 1)517 Option::mkfile::project_files.append(pwd + "/" + profiles[0]);518 }519 540 #ifndef QT_BUILD_QMAKE_LIBRARY 520 541 if(Option::mkfile::project_files.isEmpty()) { … … 524 545 #endif 525 546 } 547 } else if (Option::qmake_mode == Option::QMAKE_GENERATE_PROJECT) { 548 #if defined(Q_OS_MAC) 549 Option::host_mode = Option::HOST_MACX_MODE; 550 Option::target_mode = Option::TARG_MACX_MODE; 551 #elif defined(Q_OS_UNIX) 552 Option::host_mode = Option::HOST_UNIX_MODE; 553 Option::target_mode = Option::TARG_UNIX_MODE; 554 #elif defined(Q_OS_OS2) 555 Option::host_mode = Option::HOST_OS2_MODE; 556 Option::target_mode = Option::TARG_OS2_MODE; 557 #else 558 Option::host_mode = Option::HOST_WIN_MODE; 559 Option::target_mode = Option::TARG_WIN_MODE; 560 #endif 526 561 } 527 562 528 563 //defaults for globals 529 if(Option::target_mode == Option::TARG_WIN_MODE || 530 Option::target_mode == Option::TARG_OS2_MODE) { 531 Option::dir_sep = "\\"; 532 Option::obj_ext = ".obj"; 533 Option::res_ext = ".res"; 534 } else { 535 if(Option::target_mode == Option::TARG_MAC9_MODE) 536 Option::dir_sep = ":"; 537 else 538 Option::dir_sep = "/"; 539 Option::obj_ext = ".o"; 540 } 541 Option::qmake_abslocation = Option::fixPathToTargetOS(Option::qmake_abslocation); 564 if (Option::host_mode != Option::HOST_UNKNOWN_MODE) 565 applyHostMode(); 542 566 return QMAKE_CMDLINE_SUCCESS; 567 } 568 569 void Option::applyHostMode() 570 { 571 if (Option::host_mode == Option::HOST_WIN_MODE || 572 Option::host_mode == Option::HOST_OS2_MODE) { 573 Option::dir_sep = "\\"; 574 Option::obj_ext = ".obj"; 575 } else { 576 Option::dir_sep = "/"; 577 Option::obj_ext = ".o"; 578 } 543 579 } 544 580 … … 599 635 Option::fixString(QString string, uchar flags) 600 636 { 601 const QString orig_string = string;637 //const QString orig_string = string; 602 638 static QHash<FixStringCacheKey, QString> *cache = 0; 603 639 if(!cache) {
Note:
See TracChangeset
for help on using the changeset viewer.