summaryrefslogtreecommitdiff
authorkergoth <kergoth>2002-11-05 16:40:27 (UTC)
committer kergoth <kergoth>2002-11-05 16:40:27 (UTC)
commitcf2ae9bf818d7cdddc56a3d6eea21ded4e815b68 (patch) (unidiff)
treed350f2f3138707f3f701444a0e72218b744c5df2
parentd590a056fde3eb4ad37ecd202ea024a9ad110106 (diff)
downloadopie-cf2ae9bf818d7cdddc56a3d6eea21ded4e815b68.zip
opie-cf2ae9bf818d7cdddc56a3d6eea21ded4e815b68.tar.gz
opie-cf2ae9bf818d7cdddc56a3d6eea21ded4e815b68.tar.bz2
er, it was prioritizing QMAKESPECSDIR above QMAKESPEC.. fixed
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--qmake/project.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/qmake/project.cpp b/qmake/project.cpp
index 96cdad8..44eb503 100644
--- a/qmake/project.cpp
+++ b/qmake/project.cpp
@@ -355,193 +355,193 @@ QMakeProject::parse(QString t, QMap<QString, QStringList> &place)
355} 355}
356 356
357bool 357bool
358QMakeProject::read(QString file, QMap<QString, QStringList> &place) 358QMakeProject::read(QString file, QMap<QString, QStringList> &place)
359{ 359{
360 parser_info pi = parser; 360 parser_info pi = parser;
361 /* scope blocks start at true */ 361 /* scope blocks start at true */
362 test_status = TestNone; 362 test_status = TestNone;
363 scope_flag = 0x01; 363 scope_flag = 0x01;
364 scope_block = 0; 364 scope_block = 0;
365 365
366 file = Option::fixPathToLocalOS(file); 366 file = Option::fixPathToLocalOS(file);
367 doVariableReplace(file, place); 367 doVariableReplace(file, place);
368 bool ret = FALSE, using_stdin = FALSE; 368 bool ret = FALSE, using_stdin = FALSE;
369 QFile qfile; 369 QFile qfile;
370 if(!strcmp(file, "-")) { 370 if(!strcmp(file, "-")) {
371 qfile.setName(""); 371 qfile.setName("");
372 ret = qfile.open(IO_ReadOnly, stdin); 372 ret = qfile.open(IO_ReadOnly, stdin);
373 using_stdin = TRUE; 373 using_stdin = TRUE;
374 } else { 374 } else {
375 qfile.setName(file); 375 qfile.setName(file);
376 ret = qfile.open(IO_ReadOnly); 376 ret = qfile.open(IO_ReadOnly);
377 } 377 }
378 if ( ret ) { 378 if ( ret ) {
379 QTextStream t( &qfile ); 379 QTextStream t( &qfile );
380 QString s, line; 380 QString s, line;
381 parser.file = file; 381 parser.file = file;
382 parser.line_no = 0; 382 parser.line_no = 0;
383 while ( !t.eof() ) { 383 while ( !t.eof() ) {
384 parser.line_no++; 384 parser.line_no++;
385 line = t.readLine().stripWhiteSpace(); 385 line = t.readLine().stripWhiteSpace();
386 int prelen = line.length(); 386 int prelen = line.length();
387 line.replace(QRegExp("#.*$"), ""); // bye comments 387 line.replace(QRegExp("#.*$"), ""); // bye comments
388 if(!line.isEmpty() && line.right(1) == "\\") { 388 if(!line.isEmpty() && line.right(1) == "\\") {
389 line.truncate(line.length() - 1); 389 line.truncate(line.length() - 1);
390 s += line + " "; 390 s += line + " ";
391 } else if(!line.isEmpty() || (line.isEmpty() && !prelen)) { 391 } else if(!line.isEmpty() || (line.isEmpty() && !prelen)) {
392 if(s.isEmpty() && line.isEmpty()) 392 if(s.isEmpty() && line.isEmpty())
393 continue; 393 continue;
394 if(!line.isEmpty()) 394 if(!line.isEmpty())
395 s += line; 395 s += line;
396 if(!s.isEmpty()) { 396 if(!s.isEmpty()) {
397 if(!(ret = parse(s, place))) 397 if(!(ret = parse(s, place)))
398 break; 398 break;
399 s = ""; 399 s = "";
400 } 400 }
401 } 401 }
402 } 402 }
403 if(!using_stdin) 403 if(!using_stdin)
404 qfile.close(); 404 qfile.close();
405 } 405 }
406 parser = pi; 406 parser = pi;
407 return ret; 407 return ret;
408} 408}
409 409
410bool 410bool
411QMakeProject::read(QString project, QString) 411QMakeProject::read(QString project, QString)
412{ 412{
413 if(cfile.isEmpty()) { 413 if(cfile.isEmpty()) {
414 // hack to get the Option stuff in there 414 // hack to get the Option stuff in there
415 base_vars["QMAKE_EXT_CPP"] = Option::cpp_ext; 415 base_vars["QMAKE_EXT_CPP"] = Option::cpp_ext;
416 base_vars["QMAKE_EXT_H"] = Option::h_ext; 416 base_vars["QMAKE_EXT_H"] = Option::h_ext;
417 417
418 /* parse the cache */ 418 /* parse the cache */
419 if(Option::mkfile::do_cache) { 419 if(Option::mkfile::do_cache) {
420 if(Option::mkfile::cachefile.isEmpty()) { //find it as it has not been specified 420 if(Option::mkfile::cachefile.isEmpty()) { //find it as it has not been specified
421 QString dir = QDir::convertSeparators(Option::output_dir); 421 QString dir = QDir::convertSeparators(Option::output_dir);
422 while(!QFile::exists((Option::mkfile::cachefile = dir + 422 while(!QFile::exists((Option::mkfile::cachefile = dir +
423 QDir::separator() + ".qmake.cache"))) { 423 QDir::separator() + ".qmake.cache"))) {
424 dir = dir.left(dir.findRev(QDir::separator())); 424 dir = dir.left(dir.findRev(QDir::separator()));
425 if(dir.isEmpty() || dir.find(QDir::separator()) == -1) { 425 if(dir.isEmpty() || dir.find(QDir::separator()) == -1) {
426 Option::mkfile::cachefile = ""; 426 Option::mkfile::cachefile = "";
427 break; 427 break;
428 } 428 }
429 if(Option::mkfile::cachefile_depth == -1) 429 if(Option::mkfile::cachefile_depth == -1)
430 Option::mkfile::cachefile_depth = 1; 430 Option::mkfile::cachefile_depth = 1;
431 else 431 else
432 Option::mkfile::cachefile_depth++; 432 Option::mkfile::cachefile_depth++;
433 } 433 }
434 } 434 }
435 if(!Option::mkfile::cachefile.isEmpty()) { 435 if(!Option::mkfile::cachefile.isEmpty()) {
436 read(Option::mkfile::cachefile, cache); 436 read(Option::mkfile::cachefile, cache);
437 if(Option::mkfile::qmakespec.isEmpty() && !cache["QMAKESPEC"].isEmpty()) 437 if(Option::mkfile::qmakespec.isEmpty() && !cache["QMAKESPEC"].isEmpty())
438 Option::mkfile::qmakespec = cache["QMAKESPEC"].first(); 438 Option::mkfile::qmakespec = cache["QMAKESPEC"].first();
439 } 439 }
440 } 440 }
441 /* parse mkspec */ 441 /* parse mkspec */
442 QStringList mkspec_roots; 442 QStringList mkspec_roots;
443 /* prefer $QTDIR if it is set */ 443 /* prefer $QTDIR if it is set */
444 /* prefer QMAKESPECSDIR -cl */ 444 /* prefer QMAKESPECSDIR -cl */
445 445
446 if (getenv("QTDIR")) { 446 if (getenv("QTDIR")) {
447 mkspec_roots << getenv("QTDIR"); 447 mkspec_roots << getenv("QTDIR");
448 } 448 }
449 mkspec_roots << qInstallPathData(); 449 mkspec_roots << qInstallPathData();
450 450
451 if (getenv("QMAKESPECSDIR")){ 451 if (Option::mkfile::qmakespec.isEmpty() && getenv("QMAKESPECSDIR")){
452 QString mkspec = QString(getenv("QMAKESPECSDIR")) + QDir::separator() + 452 QString mkspec = QString(getenv("QMAKESPECSDIR")) + QDir::separator() +
453 QDir::separator() + "default"; 453 QDir::separator() + "default";
454 if(QFile::exists(mkspec)) 454 if(QFile::exists(mkspec))
455 Option::mkfile::qmakespec = mkspec; 455 Option::mkfile::qmakespec = mkspec;
456 } 456 }
457 457
458 if(Option::mkfile::qmakespec.isEmpty()) { 458 if(Option::mkfile::qmakespec.isEmpty()) {
459 for(QStringList::Iterator it = mkspec_roots.begin(); it != mkspec_roots.end(); ++it) { 459 for(QStringList::Iterator it = mkspec_roots.begin(); it != mkspec_roots.end(); ++it) {
460 QString mkspec = (*it) + QDir::separator() + QString("mkspecs") + 460 QString mkspec = (*it) + QDir::separator() + QString("mkspecs") +
461 QDir::separator() + "default"; 461 QDir::separator() + "default";
462 if(QFile::exists(mkspec)) { 462 if(QFile::exists(mkspec)) {
463 Option::mkfile::qmakespec = mkspec; 463 Option::mkfile::qmakespec = mkspec;
464 break; 464 break;
465 } 465 }
466 } 466 }
467 } 467 }
468 468
469 if(Option::mkfile::qmakespec.isEmpty()) { 469 if(Option::mkfile::qmakespec.isEmpty()) {
470 fprintf(stderr, "QMAKESPEC has not been set, so configuration cannot be deduced.\n"); 470 fprintf(stderr, "QMAKESPEC has not been set, so configuration cannot be deduced.\n");
471 return FALSE; 471 return FALSE;
472 } 472 }
473 473
474 if(QDir::isRelativePath(Option::mkfile::qmakespec)) { 474 if(QDir::isRelativePath(Option::mkfile::qmakespec)) {
475 bool found_mkspec = FALSE; 475 bool found_mkspec = FALSE;
476 for(QStringList::Iterator it = mkspec_roots.begin(); it != mkspec_roots.end(); ++it) { 476 for(QStringList::Iterator it = mkspec_roots.begin(); it != mkspec_roots.end(); ++it) {
477 QString mkspec = (*it) + QDir::separator() + QString("mkspecs") + 477 QString mkspec = (*it) + QDir::separator() + QString("mkspecs") +
478 QDir::separator() + Option::mkfile::qmakespec; 478 QDir::separator() + Option::mkfile::qmakespec;
479 if(QFile::exists(mkspec)) { 479 if(QFile::exists(mkspec)) {
480 found_mkspec = TRUE; 480 found_mkspec = TRUE;
481 Option::mkfile::qmakespec = mkspec; 481 Option::mkfile::qmakespec = mkspec;
482 break; 482 break;
483 } 483 }
484 } 484 }
485 if(!found_mkspec) { 485 if(!found_mkspec) {
486 fprintf(stderr, "Could not find mkspecs for your QMAKESPEC after trying:\n\t%s\n", 486 fprintf(stderr, "Could not find mkspecs for your QMAKESPEC after trying:\n\t%s\n",
487 mkspec_roots.join("\n\t").latin1()); 487 mkspec_roots.join("\n\t").latin1());
488 return FALSE; 488 return FALSE;
489 } 489 }
490 } 490 }
491 491
492 /* parse qmake configuration */ 492 /* parse qmake configuration */
493 QString spec = Option::mkfile::qmakespec + QDir::separator() + "qmake.conf"; 493 QString spec = Option::mkfile::qmakespec + QDir::separator() + "qmake.conf";
494 debug_msg(1, "QMAKESPEC conf: reading %s", spec.latin1()); 494 debug_msg(1, "QMAKESPEC conf: reading %s", spec.latin1());
495 if(!read(spec, base_vars)) { 495 if(!read(spec, base_vars)) {
496 fprintf(stderr, "Failure to read QMAKESPEC conf file %s.\n", spec.latin1()); 496 fprintf(stderr, "Failure to read QMAKESPEC conf file %s.\n", spec.latin1());
497 return FALSE; 497 return FALSE;
498 } 498 }
499 if(Option::mkfile::do_cache && !Option::mkfile::cachefile.isEmpty()) { 499 if(Option::mkfile::do_cache && !Option::mkfile::cachefile.isEmpty()) {
500 debug_msg(1, "QMAKECACHE file: reading %s", Option::mkfile::cachefile.latin1()); 500 debug_msg(1, "QMAKECACHE file: reading %s", Option::mkfile::cachefile.latin1());
501 read(Option::mkfile::cachefile, base_vars); 501 read(Option::mkfile::cachefile, base_vars);
502 } 502 }
503 503
504 /* commandline */ 504 /* commandline */
505 cfile = project; 505 cfile = project;
506 parser.line_no = 1; //really arg count now.. duh 506 parser.line_no = 1; //really arg count now.. duh
507 parser.file = "(internal)"; 507 parser.file = "(internal)";
508 for(QStringList::Iterator it = Option::before_user_vars.begin(); 508 for(QStringList::Iterator it = Option::before_user_vars.begin();
509 it != Option::before_user_vars.end(); ++it) { 509 it != Option::before_user_vars.end(); ++it) {
510 if(!parse((*it), base_vars)) { 510 if(!parse((*it), base_vars)) {
511 fprintf(stderr, "Argument failed to parse: %s\n", (*it).latin1()); 511 fprintf(stderr, "Argument failed to parse: %s\n", (*it).latin1());
512 return FALSE; 512 return FALSE;
513 } 513 }
514 parser.line_no++; 514 parser.line_no++;
515 } 515 }
516 } 516 }
517 517
518 /* parse project file */ 518 /* parse project file */
519 debug_msg(1, "Project file: reading %s", project.latin1()); 519 debug_msg(1, "Project file: reading %s", project.latin1());
520 vars = base_vars; /* start with the base */ 520 vars = base_vars; /* start with the base */
521 521
522 pfile = project; 522 pfile = project;
523 if(pfile != "-" && !QFile::exists(pfile) && pfile.right(4) != ".pro") 523 if(pfile != "-" && !QFile::exists(pfile) && pfile.right(4) != ".pro")
524 pfile += ".pro"; 524 pfile += ".pro";
525 525
526 if(!read(pfile, vars)) 526 if(!read(pfile, vars))
527 return FALSE; 527 return FALSE;
528 528
529 parser.line_no = 1; //really arg count now.. duh 529 parser.line_no = 1; //really arg count now.. duh
530 parser.file = "(internal)"; 530 parser.file = "(internal)";
531 for(QStringList::Iterator it = Option::after_user_vars.begin(); 531 for(QStringList::Iterator it = Option::after_user_vars.begin();
532 it != Option::after_user_vars.end(); ++it) { 532 it != Option::after_user_vars.end(); ++it) {
533 if(!parse((*it), vars)) { 533 if(!parse((*it), vars)) {
534 fprintf(stderr, "Argument failed to parse: %s\n", (*it).latin1()); 534 fprintf(stderr, "Argument failed to parse: %s\n", (*it).latin1());
535 return FALSE; 535 return FALSE;
536 } 536 }
537 parser.line_no++; 537 parser.line_no++;
538 } 538 }
539 539
540 /* now let the user override the template from an option.. */ 540 /* now let the user override the template from an option.. */
541 if(!Option::user_template.isEmpty()) { 541 if(!Option::user_template.isEmpty()) {
542 debug_msg(1, "Overriding TEMPLATE (%s) with: %s", vars["TEMPLATE"].first().latin1(), Option::user_template.latin1()); 542 debug_msg(1, "Overriding TEMPLATE (%s) with: %s", vars["TEMPLATE"].first().latin1(), Option::user_template.latin1());
543 vars["TEMPLATE"].clear(); 543 vars["TEMPLATE"].clear();
544 vars["TEMPLATE"].append(Option::user_template); 544 vars["TEMPLATE"].append(Option::user_template);
545 } 545 }
546 546
547 if(vars["TEMPLATE"].isEmpty()) 547 if(vars["TEMPLATE"].isEmpty())