author | zecke <zecke> | 2003-04-20 18:11:49 (UTC) |
---|---|---|
committer | zecke <zecke> | 2003-04-20 18:11:49 (UTC) |
commit | d32e9a7306da861786551c518525862a50154b95 (patch) (unidiff) | |
tree | 4ee2c97637b53691ea48322a200ec98cb7f13189 | |
parent | ca3cd49d65353584bfe85755ef2885b049d25d33 (diff) | |
download | opie-d32e9a7306da861786551c518525862a50154b95.zip opie-d32e9a7306da861786551c518525862a50154b95.tar.gz opie-d32e9a7306da861786551c518525862a50154b95.tar.bz2 |
add PRO = file.pro
to the Makefile
-rw-r--r-- | qmake/generators/unix/unixmake2.cpp | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp index cbe2014..9bb6f6b 100644 --- a/qmake/generators/unix/unixmake2.cpp +++ b/qmake/generators/unix/unixmake2.cpp | |||
@@ -50,121 +50,122 @@ UnixMakefileGenerator::UnixMakefileGenerator(QMakeProject *p) : MakefileGenerato | |||
50 | 50 | ||
51 | bool | 51 | bool |
52 | UnixMakefileGenerator::writeMakefile(QTextStream &t) | 52 | UnixMakefileGenerator::writeMakefile(QTextStream &t) |
53 | { | 53 | { |
54 | writeHeader(t); | 54 | writeHeader(t); |
55 | if(!project->variables()["QMAKE_FAILED_REQUIREMENTS"].isEmpty()) { | 55 | if(!project->variables()["QMAKE_FAILED_REQUIREMENTS"].isEmpty()) { |
56 | t << "all clean:" << "\n\t" | 56 | t << "all clean:" << "\n\t" |
57 | << "@echo \"Some of the required modules (" | 57 | << "@echo \"Some of the required modules (" |
58 | << var("QMAKE_FAILED_REQUIREMENTS") << ") are not available.\"" << "\n\t" | 58 | << var("QMAKE_FAILED_REQUIREMENTS") << ") are not available.\"" << "\n\t" |
59 | << "@echo \"Skipped.\"" << endl << endl; | 59 | << "@echo \"Skipped.\"" << endl << endl; |
60 | writeMakeQmake(t); | 60 | writeMakeQmake(t); |
61 | return TRUE; | 61 | return TRUE; |
62 | } | 62 | } |
63 | 63 | ||
64 | if (project->variables()["TEMPLATE"].first() == "app" || | 64 | if (project->variables()["TEMPLATE"].first() == "app" || |
65 | project->variables()["TEMPLATE"].first() == "lib") { | 65 | project->variables()["TEMPLATE"].first() == "lib") { |
66 | writeMakeParts(t); | 66 | writeMakeParts(t); |
67 | return MakefileGenerator::writeMakefile(t); | 67 | return MakefileGenerator::writeMakefile(t); |
68 | } else if(project->variables()["TEMPLATE"].first() == "subdirs") { | 68 | } else if(project->variables()["TEMPLATE"].first() == "subdirs") { |
69 | writeSubdirs(t); | 69 | writeSubdirs(t); |
70 | return TRUE; | 70 | return TRUE; |
71 | } | 71 | } |
72 | return FALSE; | 72 | return FALSE; |
73 | } | 73 | } |
74 | 74 | ||
75 | void | 75 | void |
76 | UnixMakefileGenerator::writeMakeParts(QTextStream &t) | 76 | UnixMakefileGenerator::writeMakeParts(QTextStream &t) |
77 | { | 77 | { |
78 | QString deps = fileFixify(Option::output.name()), prl; | 78 | QString deps = fileFixify(Option::output.name()), prl; |
79 | bool do_incremental = (project->isActiveConfig("incremental") && | 79 | bool do_incremental = (project->isActiveConfig("incremental") && |
80 | !project->variables()["QMAKE_INCREMENTAL"].isEmpty() && | 80 | !project->variables()["QMAKE_INCREMENTAL"].isEmpty() && |
81 | (!project->variables()["QMAKE_APP_FLAG"].isEmpty() || | 81 | (!project->variables()["QMAKE_APP_FLAG"].isEmpty() || |
82 | !project->isActiveConfig("staticlib"))), | 82 | !project->isActiveConfig("staticlib"))), |
83 | src_incremental=FALSE, moc_incremental=FALSE; | 83 | src_incremental=FALSE, moc_incremental=FALSE; |
84 | QString os = project->variables()["QMAKESPEC"].first().section( '-', 0, 0 ); | 84 | QString os = project->variables()["QMAKESPEC"].first().section( '-', 0, 0 ); |
85 | 85 | ||
86 | t << "####### Compiler, tools and options" << endl << endl; | 86 | t << "####### Compiler, tools and options" << endl << endl; |
87 | t << "CC = "; | 87 | t << "CC = "; |
88 | if (project->isActiveConfig("thread") && | 88 | if (project->isActiveConfig("thread") && |
89 | ! project->variables()["QMAKE_CC_THREAD"].isEmpty()) | 89 | ! project->variables()["QMAKE_CC_THREAD"].isEmpty()) |
90 | t << var("QMAKE_CC_THREAD") << endl; | 90 | t << var("QMAKE_CC_THREAD") << endl; |
91 | else | 91 | else |
92 | t << var("QMAKE_CC") << endl; | 92 | t << var("QMAKE_CC") << endl; |
93 | 93 | ||
94 | t << "CXX = "; | 94 | t << "CXX = "; |
95 | if (project->isActiveConfig("thread") && | 95 | if (project->isActiveConfig("thread") && |
96 | ! project->variables()["QMAKE_CXX_THREAD"].isEmpty()) | 96 | ! project->variables()["QMAKE_CXX_THREAD"].isEmpty()) |
97 | t << var("QMAKE_CXX_THREAD") << endl; | 97 | t << var("QMAKE_CXX_THREAD") << endl; |
98 | else | 98 | else |
99 | t << var("QMAKE_CXX") << endl; | 99 | t << var("QMAKE_CXX") << endl; |
100 | 100 | ||
101 | t << "LEX = " << var("QMAKE_LEX") << endl; | 101 | t << "LEX = " << var("QMAKE_LEX") << endl; |
102 | t << "YACC = " << var("QMAKE_YACC") << endl; | 102 | t << "YACC = " << var("QMAKE_YACC") << endl; |
103 | t << "CFLAGS = " << var("QMAKE_CFLAGS") << " " | 103 | t << "CFLAGS = " << var("QMAKE_CFLAGS") << " " |
104 | << varGlue("PRL_EXPORT_DEFINES","-D"," -D","") << " " | 104 | << varGlue("PRL_EXPORT_DEFINES","-D"," -D","") << " " |
105 | << varGlue("DEFINES","-D"," -D","") << endl; | 105 | << varGlue("DEFINES","-D"," -D","") << endl; |
106 | t << "CXXFLAGS = " << var("QMAKE_CXXFLAGS") << " " | 106 | t << "CXXFLAGS = " << var("QMAKE_CXXFLAGS") << " " |
107 | << varGlue("PRL_EXPORT_DEFINES","-D"," -D","") << " " | 107 | << varGlue("PRL_EXPORT_DEFINES","-D"," -D","") << " " |
108 | << varGlue("DEFINES","-D"," -D","") << endl; | 108 | << varGlue("DEFINES","-D"," -D","") << endl; |
109 | t << "LEXFLAGS = " << var("QMAKE_LEXFLAGS") << endl; | 109 | t << "LEXFLAGS = " << var("QMAKE_LEXFLAGS") << endl; |
110 | t << "YACCFLAGS= " << var("QMAKE_YACCFLAGS") << endl; | 110 | t << "YACCFLAGS= " << var("QMAKE_YACCFLAGS") << endl; |
111 | t << "INCPATH = " << varGlue("INCLUDEPATH","-I", " -I", "") << " -I" << specdir() << endl; | 111 | t << "INCPATH = " << varGlue("INCLUDEPATH","-I", " -I", "") << " -I" << specdir() << endl; |
112 | 112 | ||
113 | if(!project->isActiveConfig("staticlib")) { | 113 | if(!project->isActiveConfig("staticlib")) { |
114 | t << "LINK = "; | 114 | t << "LINK = "; |
115 | if (project->isActiveConfig("thread") && | 115 | if (project->isActiveConfig("thread") && |
116 | ! project->variables()["QMAKE_LINK_THREAD"].isEmpty()) | 116 | ! project->variables()["QMAKE_LINK_THREAD"].isEmpty()) |
117 | t << var("QMAKE_LINK_THREAD") << endl; | 117 | t << var("QMAKE_LINK_THREAD") << endl; |
118 | else | 118 | else |
119 | t << var("QMAKE_LINK") << endl; | 119 | t << var("QMAKE_LINK") << endl; |
120 | 120 | ||
121 | t << "LFLAGS = " << var("QMAKE_LFLAGS") << endl; | 121 | t << "LFLAGS = " << var("QMAKE_LFLAGS") << endl; |
122 | t << "LIBS = " << "$(SUBLIBS) " << var("QMAKE_LIBDIR_FLAGS") << " " << var("QMAKE_LIBS") << endl; | 122 | t << "LIBS = " << "$(SUBLIBS) " << var("QMAKE_LIBDIR_FLAGS") << " " << var("QMAKE_LIBS") << endl; |
123 | } | 123 | } |
124 | 124 | ||
125 | t << "AR = " << var("QMAKE_AR") << endl; | 125 | t << "AR = " << var("QMAKE_AR") << endl; |
126 | t << "RANLIB = " << var("QMAKE_RANLIB") << endl; | 126 | t << "RANLIB = " << var("QMAKE_RANLIB") << endl; |
127 | t << "MOC = " << var("QMAKE_MOC") << endl; | 127 | t << "MOC = " << var("QMAKE_MOC") << endl; |
128 | t << "UIC = "<< var("QMAKE_UIC") << endl; | 128 | t << "UIC = "<< var("QMAKE_UIC") << endl; |
129 | t << "QMAKE = "<< (project->isEmpty("QMAKE_QMAKE") ? QString("qmake") : var("QMAKE_QMAKE")) << endl; | 129 | t << "QMAKE = "<< (project->isEmpty("QMAKE_QMAKE") ? QString("qmake") : var("QMAKE_QMAKE")) << endl; |
130 | t << "TAR = "<< var("QMAKE_TAR") << endl; | 130 | t << "TAR = "<< var("QMAKE_TAR") << endl; |
131 | t << "GZIP = " << var("QMAKE_GZIP") << endl; | 131 | t << "GZIP = " << var("QMAKE_GZIP") << endl; |
132 | t << "COPY = " << var("QMAKE_COPY") << endl; | 132 | t << "COPY = " << var("QMAKE_COPY") << endl; |
133 | t << "COPY_FILE= " << var("QMAKE_COPY_FILE") << endl; | 133 | t << "COPY_FILE= " << var("QMAKE_COPY_FILE") << endl; |
134 | t << "COPY_DIR = " << var("QMAKE_COPY_DIR") << endl; | 134 | t << "COPY_DIR = " << var("QMAKE_COPY_DIR") << endl; |
135 | t << "DEL_FILE = " << var("QMAKE_DEL_FILE") << endl; | 135 | t << "DEL_FILE = " << var("QMAKE_DEL_FILE") << endl; |
136 | t << "SYMLINK = " << var("QMAKE_SYMBOLIC_LINK") << endl; | 136 | t << "SYMLINK = " << var("QMAKE_SYMBOLIC_LINK") << endl; |
137 | t << "DEL_DIR = " << var("QMAKE_DEL_DIR") << endl; | 137 | t << "DEL_DIR = " << var("QMAKE_DEL_DIR") << endl; |
138 | t << "MOVE = " << var("QMAKE_MOVE") << endl; | 138 | t << "MOVE = " << var("QMAKE_MOVE") << endl; |
139 | t << "PRO = " << fileFixify(project->projectFile() )<< endl; | ||
139 | t << endl; | 140 | t << endl; |
140 | 141 | ||
141 | t << "####### Output directory" << endl << endl; | 142 | t << "####### Output directory" << endl << endl; |
142 | if (! project->variables()["OBJECTS_DIR"].isEmpty()) | 143 | if (! project->variables()["OBJECTS_DIR"].isEmpty()) |
143 | t << "OBJECTS_DIR = " << var("OBJECTS_DIR") << endl; | 144 | t << "OBJECTS_DIR = " << var("OBJECTS_DIR") << endl; |
144 | else | 145 | else |
145 | t << "OBJECTS_DIR = ./" << endl; | 146 | t << "OBJECTS_DIR = ./" << endl; |
146 | t << endl; | 147 | t << endl; |
147 | 148 | ||
148 | /* files */ | 149 | /* files */ |
149 | t << "####### Files" << endl << endl; | 150 | t << "####### Files" << endl << endl; |
150 | t << "HEADERS = " << varList("HEADERS") << endl; | 151 | t << "HEADERS = " << varList("HEADERS") << endl; |
151 | t << "SOURCES = " << varList("SOURCES") << endl; | 152 | t << "SOURCES = " << varList("SOURCES") << endl; |
152 | if(do_incremental) { | 153 | if(do_incremental) { |
153 | QStringList &objs = project->variables()["OBJECTS"], &incrs = project->variables()["QMAKE_INCREMENTAL"], incrs_out; | 154 | QStringList &objs = project->variables()["OBJECTS"], &incrs = project->variables()["QMAKE_INCREMENTAL"], incrs_out; |
154 | t << "OBJECTS = "; | 155 | t << "OBJECTS = "; |
155 | for(QStringList::Iterator objit = objs.begin(); objit != objs.end(); ++objit) { | 156 | for(QStringList::Iterator objit = objs.begin(); objit != objs.end(); ++objit) { |
156 | bool increment = FALSE; | 157 | bool increment = FALSE; |
157 | for(QStringList::Iterator incrit = incrs.begin(); incrit != incrs.end(); ++incrit) { | 158 | for(QStringList::Iterator incrit = incrs.begin(); incrit != incrs.end(); ++incrit) { |
158 | if((*objit).find(QRegExp((*incrit), TRUE, TRUE)) != -1) { | 159 | if((*objit).find(QRegExp((*incrit), TRUE, TRUE)) != -1) { |
159 | increment = TRUE; | 160 | increment = TRUE; |
160 | incrs_out.append((*objit)); | 161 | incrs_out.append((*objit)); |
161 | break; | 162 | break; |
162 | } | 163 | } |
163 | } | 164 | } |
164 | if(!increment) | 165 | if(!increment) |
165 | t << "\\\n\t\t" << (*objit); | 166 | t << "\\\n\t\t" << (*objit); |
166 | } | 167 | } |
167 | if(incrs_out.count() == objs.count()) { //we just switched places, no real incrementals to be done! | 168 | if(incrs_out.count() == objs.count()) { //we just switched places, no real incrementals to be done! |
168 | t << incrs_out.join(" \\\n\t\t") << endl; | 169 | t << incrs_out.join(" \\\n\t\t") << endl; |
169 | } else if(!incrs_out.count()) { | 170 | } else if(!incrs_out.count()) { |
170 | t << endl; | 171 | t << endl; |
@@ -501,177 +502,177 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t) | |||
501 | << var("QMAKE_LINK_SHLIB_CMD") << "\n\t"; | 502 | << var("QMAKE_LINK_SHLIB_CMD") << "\n\t"; |
502 | t << varGlue("QMAKE_LN_SHLIB","-"," "," $(TARGET) $(TARGET0)") << "\n\t" | 503 | t << varGlue("QMAKE_LN_SHLIB","-"," "," $(TARGET) $(TARGET0)") << "\n\t" |
503 | << varGlue("QMAKE_LN_SHLIB","-"," "," $(TARGET) $(TARGET1)") << "\n\t" | 504 | << varGlue("QMAKE_LN_SHLIB","-"," "," $(TARGET) $(TARGET1)") << "\n\t" |
504 | << varGlue("QMAKE_LN_SHLIB","-"," "," $(TARGET) $(TARGET2)"); | 505 | << varGlue("QMAKE_LN_SHLIB","-"," "," $(TARGET) $(TARGET2)"); |
505 | if(!destdir.isEmpty()) | 506 | if(!destdir.isEmpty()) |
506 | t << "\n\t" | 507 | t << "\n\t" |
507 | << "-$(DEL_FILE) " << var("DESTDIR") << "$(TARGET)\n\t" | 508 | << "-$(DEL_FILE) " << var("DESTDIR") << "$(TARGET)\n\t" |
508 | << "-$(DEL_FILE) " << var("DESTDIR") << "$(TARGET0)\n\t" | 509 | << "-$(DEL_FILE) " << var("DESTDIR") << "$(TARGET0)\n\t" |
509 | << "-$(DEL_FILE) " << var("DESTDIR") << "$(TARGET1)\n\t" | 510 | << "-$(DEL_FILE) " << var("DESTDIR") << "$(TARGET1)\n\t" |
510 | << "-$(DEL_FILE) " << var("DESTDIR") << "$(TARGET2)\n\t" | 511 | << "-$(DEL_FILE) " << var("DESTDIR") << "$(TARGET2)\n\t" |
511 | << "-$(MOVE) $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2) " << var("DESTDIR"); | 512 | << "-$(MOVE) $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2) " << var("DESTDIR"); |
512 | if(!project->isEmpty("QMAKE_POST_LINK")) | 513 | if(!project->isEmpty("QMAKE_POST_LINK")) |
513 | t << "\n\t" << var("QMAKE_POST_LINK"); | 514 | t << "\n\t" << var("QMAKE_POST_LINK"); |
514 | t << endl << endl; | 515 | t << endl << endl; |
515 | } | 516 | } |
516 | t << endl << endl; | 517 | t << endl << endl; |
517 | 518 | ||
518 | if (! project->isActiveConfig("plugin")) { | 519 | if (! project->isActiveConfig("plugin")) { |
519 | t << "staticlib: $(TARGETA)" << endl << endl; | 520 | t << "staticlib: $(TARGETA)" << endl << endl; |
520 | t << "$(TARGETA): $(UICDECLS) $(OBJECTS) $(OBJMOC)"; | 521 | t << "$(TARGETA): $(UICDECLS) $(OBJECTS) $(OBJMOC)"; |
521 | if(do_incremental) | 522 | if(do_incremental) |
522 | t << " $(INCREMENTAL_OBJECTS) $(INCREMENTAL_OBJMOC)"; | 523 | t << " $(INCREMENTAL_OBJECTS) $(INCREMENTAL_OBJMOC)"; |
523 | t << var("TARGETDEPS") << "\n\t" | 524 | t << var("TARGETDEPS") << "\n\t" |
524 | << "-$(DEL_FILE) $(TARGETA) " << "\n\t" | 525 | << "-$(DEL_FILE) $(TARGETA) " << "\n\t" |
525 | << var("QMAKE_AR_CMD"); | 526 | << var("QMAKE_AR_CMD"); |
526 | if(do_incremental) | 527 | if(do_incremental) |
527 | t << " $(INCREMENTAL_OBJECTS) $(INCREMENTAL_OBJMOC)"; | 528 | t << " $(INCREMENTAL_OBJECTS) $(INCREMENTAL_OBJMOC)"; |
528 | if(!project->isEmpty("QMAKE_RANLIB")) | 529 | if(!project->isEmpty("QMAKE_RANLIB")) |
529 | t << "\n\t" << "$(RANLIB) $(TARGETA)"; | 530 | t << "\n\t" << "$(RANLIB) $(TARGETA)"; |
530 | t << endl << endl; | 531 | t << endl << endl; |
531 | } | 532 | } |
532 | } else { | 533 | } else { |
533 | t << "all: " << deps << " " << varGlue("ALL_DEPS",""," "," ") << var("DESTDIR") << "$(TARGET) " | 534 | t << "all: " << deps << " " << varGlue("ALL_DEPS",""," "," ") << var("DESTDIR") << "$(TARGET) " |
534 | << varGlue("QMAKE_AR_SUBLIBS", var("DESTDIR"), " " + var("DESTDIR"), "") << "\n\n" | 535 | << varGlue("QMAKE_AR_SUBLIBS", var("DESTDIR"), " " + var("DESTDIR"), "") << "\n\n" |
535 | << "staticlib: " << var("DESTDIR") << "$(TARGET)" << "\n\n"; | 536 | << "staticlib: " << var("DESTDIR") << "$(TARGET)" << "\n\n"; |
536 | if(project->isEmpty("QMAKE_AR_SUBLIBS")) { | 537 | if(project->isEmpty("QMAKE_AR_SUBLIBS")) { |
537 | t << var("DESTDIR") << "$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC) $(TARGETDEPS) " << "\n\t"; | 538 | t << var("DESTDIR") << "$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC) $(TARGETDEPS) " << "\n\t"; |
538 | if(!project->isEmpty("DESTDIR")) { | 539 | if(!project->isEmpty("DESTDIR")) { |
539 | QString destdir = project->first("DESTDIR"); | 540 | QString destdir = project->first("DESTDIR"); |
540 | t << "test -d " << destdir << " || mkdir -p " << destdir << "\n\t"; | 541 | t << "test -d " << destdir << " || mkdir -p " << destdir << "\n\t"; |
541 | } | 542 | } |
542 | t << "-$(DEL_FILE) $(TARGET)" << "\n\t" | 543 | t << "-$(DEL_FILE) $(TARGET)" << "\n\t" |
543 | << var("QMAKE_AR_CMD") << "\n"; | 544 | << var("QMAKE_AR_CMD") << "\n"; |
544 | if(!project->isEmpty("QMAKE_POST_LINK")) | 545 | if(!project->isEmpty("QMAKE_POST_LINK")) |
545 | t << "\t" << var("QMAKE_POST_LINK") << "\n"; | 546 | t << "\t" << var("QMAKE_POST_LINK") << "\n"; |
546 | if(!project->isEmpty("QMAKE_RANLIB")) | 547 | if(!project->isEmpty("QMAKE_RANLIB")) |
547 | t << "\t" << "$(RANLIB) $(TARGET)" << "\n"; | 548 | t << "\t" << "$(RANLIB) $(TARGET)" << "\n"; |
548 | if(!project->isEmpty("DESTDIR")) | 549 | if(!project->isEmpty("DESTDIR")) |
549 | t << "\t" << "-$(DEL_FILE) " << var("DESTDIR") << "$(TARGET)" << "\n" | 550 | t << "\t" << "-$(DEL_FILE) " << var("DESTDIR") << "$(TARGET)" << "\n" |
550 | << "\t" << "-$(MOVE) $(TARGET) " << var("DESTDIR") << "\n"; | 551 | << "\t" << "-$(MOVE) $(TARGET) " << var("DESTDIR") << "\n"; |
551 | } else { | 552 | } else { |
552 | int cnt = 0, max_files = project->first("QMAKE_MAX_FILES_PER_AR").toInt(); | 553 | int cnt = 0, max_files = project->first("QMAKE_MAX_FILES_PER_AR").toInt(); |
553 | QStringList objs = project->variables()["OBJECTS"] + project->variables()["OBJMOC"], | 554 | QStringList objs = project->variables()["OBJECTS"] + project->variables()["OBJMOC"], |
554 | libs = project->variables()["QMAKE_AR_SUBLIBS"]; | 555 | libs = project->variables()["QMAKE_AR_SUBLIBS"]; |
555 | libs.prepend("$(TARGET)"); | 556 | libs.prepend("$(TARGET)"); |
556 | for(QStringList::Iterator libit = libs.begin(), objit = objs.begin(); | 557 | for(QStringList::Iterator libit = libs.begin(), objit = objs.begin(); |
557 | libit != libs.end(); ++libit) { | 558 | libit != libs.end(); ++libit) { |
558 | QStringList build; | 559 | QStringList build; |
559 | for(cnt = 0; cnt < max_files && objit != objs.end(); ++objit, cnt++) | 560 | for(cnt = 0; cnt < max_files && objit != objs.end(); ++objit, cnt++) |
560 | build << (*objit); | 561 | build << (*objit); |
561 | QString ar; | 562 | QString ar; |
562 | if((*libit) == "$(TARGET)") { | 563 | if((*libit) == "$(TARGET)") { |
563 | t << var("DESTDIR") << "$(TARGET): $(UICDECLS) " << " $(TARGETDEPS) " | 564 | t << var("DESTDIR") << "$(TARGET): $(UICDECLS) " << " $(TARGETDEPS) " |
564 | << valList(build) << "\n\t"; | 565 | << valList(build) << "\n\t"; |
565 | ar = project->variables()["QMAKE_AR_CMD"].first(); | 566 | ar = project->variables()["QMAKE_AR_CMD"].first(); |
566 | ar = ar.replace("$(OBJMOC)", "").replace("$(OBJECTS)", | 567 | ar = ar.replace("$(OBJMOC)", "").replace("$(OBJECTS)", |
567 | build.join(" ")); | 568 | build.join(" ")); |
568 | } else { | 569 | } else { |
569 | t << (*libit) << ": " << valList(build) << "\n\t"; | 570 | t << (*libit) << ": " << valList(build) << "\n\t"; |
570 | ar = "$(AR) " + (*libit) + " " + build.join(" "); | 571 | ar = "$(AR) " + (*libit) + " " + build.join(" "); |
571 | } | 572 | } |
572 | if(!project->isEmpty("DESTDIR")) { | 573 | if(!project->isEmpty("DESTDIR")) { |
573 | QString destdir = project->first("DESTDIR"); | 574 | QString destdir = project->first("DESTDIR"); |
574 | t << "test -d " << destdir << " || mkdir -p " << destdir << "\n\t"; | 575 | t << "test -d " << destdir << " || mkdir -p " << destdir << "\n\t"; |
575 | } | 576 | } |
576 | t << "-$(DEL_FILE) " << (*libit) << "\n\t" | 577 | t << "-$(DEL_FILE) " << (*libit) << "\n\t" |
577 | << ar << "\n"; | 578 | << ar << "\n"; |
578 | if(!project->isEmpty("QMAKE_POST_LINK")) | 579 | if(!project->isEmpty("QMAKE_POST_LINK")) |
579 | t << "\t" << var("QMAKE_POST_LINK") << "\n"; | 580 | t << "\t" << var("QMAKE_POST_LINK") << "\n"; |
580 | if(!project->isEmpty("QMAKE_RANLIB")) | 581 | if(!project->isEmpty("QMAKE_RANLIB")) |
581 | t << "\t" << "$(RANLIB) " << (*libit) << "\n"; | 582 | t << "\t" << "$(RANLIB) " << (*libit) << "\n"; |
582 | if(!project->isEmpty("DESTDIR")) | 583 | if(!project->isEmpty("DESTDIR")) |
583 | t << "\t" << "-$(DEL_FILE) " << var("DESTDIR") << (*libit) << "\n" | 584 | t << "\t" << "-$(DEL_FILE) " << var("DESTDIR") << (*libit) << "\n" |
584 | << "\t" << "-$(MOVE) " << (*libit) << " " << var("DESTDIR") << "\n"; | 585 | << "\t" << "-$(MOVE) " << (*libit) << " " << var("DESTDIR") << "\n"; |
585 | } | 586 | } |
586 | } | 587 | } |
587 | t << endl << endl; | 588 | t << endl << endl; |
588 | } | 589 | } |
589 | 590 | ||
590 | t << "mocables: $(SRCMOC)" << endl << endl; | 591 | t << "mocables: $(SRCMOC)" << endl << endl; |
591 | 592 | ||
592 | if(!project->isActiveConfig("no_mocdepend")) { | 593 | if(!project->isActiveConfig("no_mocdepend")) { |
593 | //this is an implicity depend on moc, so it will be built if necesary, however | 594 | //this is an implicity depend on moc, so it will be built if necesary, however |
594 | //moc itself shouldn't have this dependancy - this is a little kludgy but it is | 595 | //moc itself shouldn't have this dependancy - this is a little kludgy but it is |
595 | //better than the alternative for now. | 596 | //better than the alternative for now. |
596 | QString moc = project->first("QMAKE_MOC"), target = project->first("TARGET"); | 597 | QString moc = project->first("QMAKE_MOC"), target = project->first("TARGET"); |
597 | fixEnvVariables(target); | 598 | fixEnvVariables(target); |
598 | fixEnvVariables(moc); | 599 | fixEnvVariables(moc); |
599 | if(target != moc) | 600 | if(target != moc) |
600 | t << "$(MOC): \n\t" | 601 | t << "$(MOC): \n\t" |
601 | << "( cd $(QTDIR)/src/moc ; $(MAKE) )" << endl << endl; | 602 | << "( cd $(QTDIR)/src/moc ; $(MAKE) )" << endl << endl; |
602 | } | 603 | } |
603 | 604 | ||
604 | writeMakeQmake(t); | 605 | writeMakeQmake(t); |
605 | 606 | ||
606 | if(!project->first("QMAKE_PKGINFO").isEmpty()) { | 607 | if(!project->first("QMAKE_PKGINFO").isEmpty()) { |
607 | QString pkginfo = project->first("QMAKE_PKGINFO"); | 608 | QString pkginfo = project->first("QMAKE_PKGINFO"); |
608 | QString destdir = project->first("DESTDIR"); | 609 | QString destdir = project->first("DESTDIR"); |
609 | t << pkginfo << ": " << "\n\t"; | 610 | t << pkginfo << ": " << "\n\t"; |
610 | if(!destdir.isEmpty()) | 611 | if(!destdir.isEmpty()) |
611 | t << "@test -d " << destdir << " || mkdir -p " << destdir << "\n\t"; | 612 | t << "@test -d " << destdir << " || mkdir -p " << destdir << "\n\t"; |
612 | t << "@$(DEL_FILE) " << pkginfo << "\n\t" | 613 | t << "@$(DEL_FILE) " << pkginfo << "\n\t" |
613 | << "@echo \"APPL????\" >" << pkginfo << endl; | 614 | << "@echo \"APPL????\" >" << pkginfo << endl; |
614 | } | 615 | } |
615 | if(!project->first("QMAKE_INFO_PLIST").isEmpty()) { | 616 | if(!project->first("QMAKE_INFO_PLIST").isEmpty()) { |
616 | QString info_plist = project->first("QMAKE_INFO_PLIST"), | 617 | QString info_plist = project->first("QMAKE_INFO_PLIST"), |
617 | info_plist_out = project->first("QMAKE_INFO_PLIST_OUT"); | 618 | info_plist_out = project->first("QMAKE_INFO_PLIST_OUT"); |
618 | QString destdir = project->first("DESTDIR"); | 619 | QString destdir = project->first("DESTDIR"); |
619 | t << info_plist_out << ": " << "\n\t"; | 620 | t << info_plist_out << ": " << "\n\t"; |
620 | if(!destdir.isEmpty()) | 621 | if(!destdir.isEmpty()) |
621 | t << "@test -d " << destdir << " || mkdir -p " << destdir << "\n\t"; | 622 | t << "@test -d " << destdir << " || mkdir -p " << destdir << "\n\t"; |
622 | t << "@$(DEL_FILE) " << info_plist_out << "\n\t" | 623 | t << "@$(DEL_FILE) " << info_plist_out << "\n\t" |
623 | << "@cp \"" << info_plist << "\" \"" << info_plist_out << "\"" << endl; | 624 | << "@cp \"" << info_plist << "\" \"" << info_plist_out << "\"" << endl; |
624 | if(!project->first("RC_FILE").isEmpty()) { | 625 | if(!project->first("RC_FILE").isEmpty()) { |
625 | QString dir = destdir + "../Resources/"; | 626 | QString dir = destdir + "../Resources/"; |
626 | t << dir << "application.icns:" << "\n\t" | 627 | t << dir << "application.icns:" << "\n\t" |
627 | << "@test -d " << dir << " || mkdir -p " << dir << "\n\t" | 628 | << "@test -d " << dir << " || mkdir -p " << dir << "\n\t" |
628 | << "@cp " << var("RC_FILE") << " " << dir << "application.icns" << endl; | 629 | << "@cp " << var("RC_FILE") << " " << dir << "application.icns" << endl; |
629 | } | 630 | } |
630 | } | 631 | } |
631 | 632 | ||
632 | QString ddir = project->isEmpty("QMAKE_DISTDIR") ? project->first("QMAKE_ORIG_TARGET") : | 633 | QString ddir = project->isEmpty("QMAKE_DISTDIR") ? project->first("QMAKE_ORIG_TARGET") : |
633 | project->first("QMAKE_DISTDIR"); | 634 | project->first("QMAKE_DISTDIR"); |
634 | QString ddir_c = fileFixify((project->isEmpty("OBJECTS_DIR") ? QString(".tmp/") : | 635 | QString ddir_c = fileFixify((project->isEmpty("OBJECTS_DIR") ? QString(".tmp/") : |
635 | project->first("OBJECTS_DIR")) + ddir); | 636 | project->first("OBJECTS_DIR")) + ddir); |
636 | t << "dist: " << "\n\t" | 637 | t << "dist: " << "\n\t" |
637 | << "@mkdir -p " << ddir_c << " && " | 638 | << "@mkdir -p " << ddir_c << " && " |
638 | << "$(COPY_FILE) --parents $(SOURCES) $(HEADERS) $(FORMS) $(DIST) " << ddir_c << Option::dir_sep << " && "; | 639 | << "$(COPY_FILE) --parents $(SOURCES) $(HEADERS) $(FORMS) $(DIST) " << ddir_c << Option::dir_sep << " && "; |
639 | if(!project->isEmpty("TRANSLATIONS")) | 640 | if(!project->isEmpty("TRANSLATIONS")) |
640 | t << "$(COPY_FILE) --parents " << var("TRANSLATIONS") << " " << ddir_c << Option::dir_sep << " && "; | 641 | t << "$(COPY_FILE) --parents " << var("TRANSLATIONS") << " " << ddir_c << Option::dir_sep << " && "; |
641 | if(!project->isEmpty("FORMS")) { | 642 | if(!project->isEmpty("FORMS")) { |
642 | QStringList &forms = project->variables()["FORMS"], ui_headers; | 643 | QStringList &forms = project->variables()["FORMS"], ui_headers; |
643 | for(QStringList::Iterator formit = forms.begin(); formit != forms.end(); ++formit) { | 644 | for(QStringList::Iterator formit = forms.begin(); formit != forms.end(); ++formit) { |
644 | QString ui_h = fileFixify((*formit) + Option::h_ext.first()); | 645 | QString ui_h = fileFixify((*formit) + Option::h_ext.first()); |
645 | if(QFile::exists(ui_h) ) | 646 | if(QFile::exists(ui_h) ) |
646 | ui_headers << ui_h; | 647 | ui_headers << ui_h; |
647 | } | 648 | } |
648 | if(!ui_headers.isEmpty()) | 649 | if(!ui_headers.isEmpty()) |
649 | t << "$(COPY_FILE) --parents " << val(ui_headers) << " " << ddir_c << Option::dir_sep << " && "; | 650 | t << "$(COPY_FILE) --parents " << val(ui_headers) << " " << ddir_c << Option::dir_sep << " && "; |
650 | } | 651 | } |
651 | t << "( cd `dirname " << ddir_c << "` && " | 652 | t << "( cd `dirname " << ddir_c << "` && " |
652 | << "$(TAR) " << var("QMAKE_ORIG_TARGET") << ".tar " << ddir << " && " | 653 | << "$(TAR) " << var("QMAKE_ORIG_TARGET") << ".tar " << ddir << " && " |
653 | << "$(GZIP) " << var("QMAKE_ORIG_TARGET") << ".tar ) && " | 654 | << "$(GZIP) " << var("QMAKE_ORIG_TARGET") << ".tar ) && " |
654 | << "$(MOVE) `dirname " << ddir_c << "`" << Option::dir_sep << var("QMAKE_ORIG_TARGET") << ".tar.gz . && " | 655 | << "$(MOVE) `dirname " << ddir_c << "`" << Option::dir_sep << var("QMAKE_ORIG_TARGET") << ".tar.gz . && " |
655 | << "$(DEL_DIR) " << ddir_c | 656 | << "$(DEL_DIR) " << ddir_c |
656 | << endl << endl; | 657 | << endl << endl; |
657 | 658 | ||
658 | QString clean_targets; | 659 | QString clean_targets; |
659 | if(mocAware()) { | 660 | if(mocAware()) { |
660 | t << "mocclean:" << "\n"; | 661 | t << "mocclean:" << "\n"; |
661 | if(!objMoc.isEmpty() || !srcMoc.isEmpty() || moc_incremental) { | 662 | if(!objMoc.isEmpty() || !srcMoc.isEmpty() || moc_incremental) { |
662 | if(!objMoc.isEmpty()) | 663 | if(!objMoc.isEmpty()) |
663 | t << "\t-$(DEL_FILE) $(OBJMOC)" << '\n'; | 664 | t << "\t-$(DEL_FILE) $(OBJMOC)" << '\n'; |
664 | if(!srcMoc.isEmpty()) | 665 | if(!srcMoc.isEmpty()) |
665 | t << "\t-$(DEL_FILE) $(SRCMOC)" << '\n'; | 666 | t << "\t-$(DEL_FILE) $(SRCMOC)" << '\n'; |
666 | if(moc_incremental) | 667 | if(moc_incremental) |
667 | t << "\t-$(DEL_FILE) $(INCREMENTAL_OBJMOC)" << '\n'; | 668 | t << "\t-$(DEL_FILE) $(INCREMENTAL_OBJMOC)" << '\n'; |
668 | clean_targets += " mocclean"; | 669 | clean_targets += " mocclean"; |
669 | } | 670 | } |
670 | t << endl; | 671 | t << endl; |
671 | } | 672 | } |
672 | t << "uiclean:" << "\n"; | 673 | t << "uiclean:" << "\n"; |
673 | if (!var("UICIMPLS").isEmpty() || !var("UICDECLS").isEmpty()) { | 674 | if (!var("UICIMPLS").isEmpty() || !var("UICDECLS").isEmpty()) { |
674 | t << "\t-$(DEL_FILE) $(UICIMPLS) $(UICDECLS)" << "\n"; | 675 | t << "\t-$(DEL_FILE) $(UICIMPLS) $(UICDECLS)" << "\n"; |
675 | clean_targets += " uiclean"; | 676 | clean_targets += " uiclean"; |
676 | } | 677 | } |
677 | t << endl; | 678 | t << endl; |
@@ -776,198 +777,198 @@ UnixMakefileGenerator::writeSubdirs(QTextStream &t, bool direct) | |||
776 | sd->directory = file.left(slsh+1); | 777 | sd->directory = file.left(slsh+1); |
777 | sd->profile = file.mid(slsh+1); | 778 | sd->profile = file.mid(slsh+1); |
778 | } else { | 779 | } else { |
779 | sd->profile = file; | 780 | sd->profile = file; |
780 | } | 781 | } |
781 | } else { | 782 | } else { |
782 | sd->directory = file; | 783 | sd->directory = file; |
783 | } | 784 | } |
784 | while(sd->directory.right(1) == Option::dir_sep) | 785 | while(sd->directory.right(1) == Option::dir_sep) |
785 | sd->directory = sd->directory.left(sd->directory.length() - 1); | 786 | sd->directory = sd->directory.left(sd->directory.length() - 1); |
786 | if(!sd->profile.isEmpty()) { | 787 | if(!sd->profile.isEmpty()) { |
787 | QString basename = sd->directory; | 788 | QString basename = sd->directory; |
788 | int new_slsh = basename.findRev(Option::dir_sep); | 789 | int new_slsh = basename.findRev(Option::dir_sep); |
789 | if(new_slsh != -1) | 790 | if(new_slsh != -1) |
790 | basename = basename.mid(new_slsh+1); | 791 | basename = basename.mid(new_slsh+1); |
791 | if(sd->profile != basename + ".pro") | 792 | if(sd->profile != basename + ".pro") |
792 | sd->makefile += "." + sd->profile.left(sd->profile.length() - 4); //no need for the .pro | 793 | sd->makefile += "." + sd->profile.left(sd->profile.length() - 4); //no need for the .pro |
793 | } | 794 | } |
794 | sd->target = "sub-" + (*it); | 795 | sd->target = "sub-" + (*it); |
795 | sd->target.replace('/', '-'); | 796 | sd->target.replace('/', '-'); |
796 | sd->target.replace('.', '_'); | 797 | sd->target.replace('.', '_'); |
797 | } | 798 | } |
798 | } | 799 | } |
799 | QPtrListIterator<SubDir> it(subdirs); | 800 | QPtrListIterator<SubDir> it(subdirs); |
800 | 801 | ||
801 | QString ofile = Option::output.name(); | 802 | QString ofile = Option::output.name(); |
802 | if(ofile.findRev(Option::dir_sep) != -1) | 803 | if(ofile.findRev(Option::dir_sep) != -1) |
803 | ofile = ofile.right(ofile.length() - ofile.findRev(Option::dir_sep) -1); | 804 | ofile = ofile.right(ofile.length() - ofile.findRev(Option::dir_sep) -1); |
804 | t << "MAKEFILE =" << var("MAKEFILE") << endl; | 805 | t << "MAKEFILE =" << var("MAKEFILE") << endl; |
805 | t << "QMAKE =" << var("QMAKE") << endl; | 806 | t << "QMAKE =" << var("QMAKE") << endl; |
806 | t << "DEL_FILE = " << var("QMAKE_DEL_FILE") << endl; | 807 | t << "DEL_FILE = " << var("QMAKE_DEL_FILE") << endl; |
807 | t << "SUBTARGETS ="; // subdirectory targets are sub-directory | 808 | t << "SUBTARGETS ="; // subdirectory targets are sub-directory |
808 | for( it.toFirst(); it.current(); ++it) | 809 | for( it.toFirst(); it.current(); ++it) |
809 | t << " \\\n\t\t" << it.current()->target; | 810 | t << " \\\n\t\t" << it.current()->target; |
810 | t << endl << endl; | 811 | t << endl << endl; |
811 | t << "first: all\n\nall: " << ofile << " $(SUBTARGETS)" << endl << endl; | 812 | t << "first: all\n\nall: " << ofile << " $(SUBTARGETS)" << endl << endl; |
812 | 813 | ||
813 | // generate target rules | 814 | // generate target rules |
814 | for( it.toFirst(); it.current(); ++it) { | 815 | for( it.toFirst(); it.current(); ++it) { |
815 | bool have_dir = !(*it)->directory.isEmpty(); | 816 | bool have_dir = !(*it)->directory.isEmpty(); |
816 | QString mkfile = (*it)->makefile, out; | 817 | QString mkfile = (*it)->makefile, out; |
817 | if(have_dir) | 818 | if(have_dir) |
818 | mkfile.prepend((*it)->directory + Option::dir_sep); | 819 | mkfile.prepend((*it)->directory + Option::dir_sep); |
819 | if(direct || (*it)->makefile != "$(MAKEFILE)") | 820 | if(direct || (*it)->makefile != "$(MAKEFILE)") |
820 | out = " -o " + (*it)->makefile; | 821 | out = " -o " + (*it)->makefile; |
821 | //qmake it | 822 | //qmake it |
822 | t << mkfile << ": " << "\n\t"; | 823 | t << mkfile << ": " << "\n\t"; |
823 | if(have_dir) | 824 | if(have_dir) |
824 | t << "cd " << (*it)->directory << " && "; | 825 | t << "cd " << (*it)->directory << " && "; |
825 | t << "$(QMAKE) " << (*it)->profile << buildArgs() << out << endl; | 826 | t << "$(QMAKE) " << (*it)->profile << buildArgs() << out << endl; |
826 | //actually compile | 827 | //actually compile |
827 | t << (*it)->target << ": " << mkfile << " FORCE" << "\n\t"; | 828 | t << (*it)->target << ": " << mkfile << " FORCE" << "\n\t"; |
828 | if(have_dir) | 829 | if(have_dir) |
829 | t << "cd " << (*it)->directory << " && "; | 830 | t << "cd " << (*it)->directory << " && "; |
830 | t << "$(MAKE) -f " << (*it)->makefile << endl << endl; | 831 | t << "$(MAKE) -f " << (*it)->makefile << endl << endl; |
831 | } | 832 | } |
832 | 833 | ||
833 | if (project->isActiveConfig("ordered")) { // generate dependencies | 834 | if (project->isActiveConfig("ordered")) { // generate dependencies |
834 | for( it.toFirst(); it.current(); ) { | 835 | for( it.toFirst(); it.current(); ) { |
835 | QString tar = it.current()->target; | 836 | QString tar = it.current()->target; |
836 | ++it; | 837 | ++it; |
837 | if (it.current()) | 838 | if (it.current()) |
838 | t << it.current()->target << ": " << tar << endl; | 839 | t << it.current()->target << ": " << tar << endl; |
839 | } | 840 | } |
840 | t << endl; | 841 | t << endl; |
841 | } | 842 | } |
842 | 843 | ||
843 | writeMakeQmake(t); | 844 | writeMakeQmake(t); |
844 | 845 | ||
845 | if(project->isEmpty("SUBDIRS")) { | 846 | if(project->isEmpty("SUBDIRS")) { |
846 | t << "all qmake_all distclean install uiclean mocclean clean: FORCE" << endl; | 847 | t << "all qmake_all distclean install uiclean mocclean clean: FORCE" << endl; |
847 | } else { | 848 | } else { |
848 | t << "all: $(SUBTARGETS)" << endl; | 849 | t << "all: $(SUBTARGETS)" << endl; |
849 | t << "qmake_all:"; | 850 | t << "qmake_all:"; |
850 | for( it.toFirst(); it.current(); ++it) { | 851 | for( it.toFirst(); it.current(); ++it) { |
851 | t << " "; | 852 | t << " "; |
852 | if(!(*it)->directory.isEmpty()) | 853 | if(!(*it)->directory.isEmpty()) |
853 | t << (*it)->directory << Option::dir_sep; | 854 | t << (*it)->directory << Option::dir_sep; |
854 | t << (*it)->makefile; | 855 | t << (*it)->makefile; |
855 | } | 856 | } |
856 | for( it.toFirst(); it.current(); ++it) { | 857 | for( it.toFirst(); it.current(); ++it) { |
857 | t << "\n\t ( "; | 858 | t << "\n\t ( "; |
858 | if(!(*it)->directory.isEmpty()) | 859 | if(!(*it)->directory.isEmpty()) |
859 | t << "[ -d " << (*it)->directory << " ] && cd " << (*it)->directory << " ; "; | 860 | t << "[ -d " << (*it)->directory << " ] && cd " << (*it)->directory << " ; "; |
860 | t << "grep \"^qmake_all:\" " << (*it)->makefile | 861 | t << "grep \"^qmake_all:\" " << (*it)->makefile |
861 | << " && $(MAKE) -f " << (*it)->makefile << " qmake_all" << "; ) || true"; | 862 | << " && $(MAKE) -f " << (*it)->makefile << " qmake_all" << "; ) || true"; |
862 | } | 863 | } |
863 | t << endl; | 864 | t << endl; |
864 | t << "clean uninstall install uiclean mocclean: qmake_all FORCE"; | 865 | t << "clean uninstall install uiclean mocclean: qmake_all FORCE"; |
865 | for( it.toFirst(); it.current(); ++it) { | 866 | for( it.toFirst(); it.current(); ++it) { |
866 | t << "\n\t ( "; | 867 | t << "\n\t ( "; |
867 | if(!(*it)->directory.isEmpty()) | 868 | if(!(*it)->directory.isEmpty()) |
868 | t << "[ -d " << (*it)->directory << " ] && cd " << (*it)->directory << " ; "; | 869 | t << "[ -d " << (*it)->directory << " ] && cd " << (*it)->directory << " ; "; |
869 | t << "$(MAKE) -f " << (*it)->makefile << " $@" << "; ) || true"; | 870 | t << "$(MAKE) -f " << (*it)->makefile << " $@" << "; ) || true"; |
870 | } | 871 | } |
871 | t << endl; | 872 | t << endl; |
872 | t << "distclean: qmake_all FORCE"; | 873 | t << "distclean: qmake_all FORCE"; |
873 | for( it.toFirst(); it.current(); ++it) { | 874 | for( it.toFirst(); it.current(); ++it) { |
874 | t << "\n\t ( "; | 875 | t << "\n\t ( "; |
875 | if(!(*it)->directory.isEmpty()) | 876 | if(!(*it)->directory.isEmpty()) |
876 | t << "[ -d " << (*it)->directory << " ] && cd " << (*it)->directory << " ; "; | 877 | t << "[ -d " << (*it)->directory << " ] && cd " << (*it)->directory << " ; "; |
877 | t << "$(MAKE) -f " << (*it)->makefile << " $@; $(DEL_FILE) " << (*it)->makefile << "; ) || true"; | 878 | t << "$(MAKE) -f " << (*it)->makefile << " $@; $(DEL_FILE) " << (*it)->makefile << "; ) || true"; |
878 | } | 879 | } |
879 | t << endl << endl; | 880 | t << endl << endl; |
880 | } | 881 | } |
881 | t <<"FORCE:" << endl << endl; | 882 | t <<"FORCE:" << endl << endl; |
882 | } | 883 | } |
883 | 884 | ||
884 | void UnixMakefileGenerator::init2() | 885 | void UnixMakefileGenerator::init2() |
885 | { | 886 | { |
886 | //version handling | 887 | //version handling |
887 | if(project->variables()["VERSION"].isEmpty()) | 888 | if(project->variables()["VERSION"].isEmpty()) |
888 | project->variables()["VERSION"].append("1.0." + | 889 | project->variables()["VERSION"].append("1.0." + |
889 | (project->isEmpty("VER_PAT") ? QString("0") : | 890 | (project->isEmpty("VER_PAT") ? QString("0") : |
890 | project->first("VER_PAT")) ); | 891 | project->first("VER_PAT")) ); |
891 | QStringList l = QStringList::split('.', project->first("VERSION")); | 892 | QStringList l = QStringList::split('.', project->first("VERSION")); |
892 | l << "0" << "0"; //make sure there are three | 893 | l << "0" << "0"; //make sure there are three |
893 | project->variables()["VER_MAJ"].append(l[0]); | 894 | project->variables()["VER_MAJ"].append(l[0]); |
894 | project->variables()["VER_MIN"].append(l[1]); | 895 | project->variables()["VER_MIN"].append(l[1]); |
895 | project->variables()["VER_PAT"].append(l[2]); | 896 | project->variables()["VER_PAT"].append(l[2]); |
896 | 897 | ||
897 | if ( !project->variables()["QMAKE_APP_FLAG"].isEmpty() ) { | 898 | if ( !project->variables()["QMAKE_APP_FLAG"].isEmpty() ) { |
898 | #if 0 | 899 | #if 0 |
899 | if ( project->isActiveConfig("dll") ) { | 900 | if ( project->isActiveConfig("dll") ) { |
900 | project->variables()["TARGET"] += project->variables()["TARGET.so"]; | 901 | project->variables()["TARGET"] += project->variables()["TARGET.so"]; |
901 | if(project->variables()["QMAKE_LFLAGS_SHAPP"].isEmpty()) | 902 | if(project->variables()["QMAKE_LFLAGS_SHAPP"].isEmpty()) |
902 | project->variables()["QMAKE_LFLAGS_SHAPP"] += project->variables()["QMAKE_LFLAGS_SHLIB"]; | 903 | project->variables()["QMAKE_LFLAGS_SHAPP"] += project->variables()["QMAKE_LFLAGS_SHLIB"]; |
903 | if(!project->variables()["QMAKE_LFLAGS_SONAME"].isEmpty()) | 904 | if(!project->variables()["QMAKE_LFLAGS_SONAME"].isEmpty()) |
904 | project->variables()["QMAKE_LFLAGS_SONAME"].first() += project->first("TARGET"); | 905 | project->variables()["QMAKE_LFLAGS_SONAME"].first() += project->first("TARGET"); |
905 | } | 906 | } |
906 | #endif | 907 | #endif |
907 | project->variables()["TARGET"].first().prepend(project->first("DESTDIR")); | 908 | project->variables()["TARGET"].first().prepend(project->first("DESTDIR")); |
908 | } else if ( project->isActiveConfig("staticlib") ) { | 909 | } else if ( project->isActiveConfig("staticlib") ) { |
909 | project->variables()["TARGET"].first().prepend("lib"); | 910 | project->variables()["TARGET"].first().prepend("lib"); |
910 | project->variables()["TARGET"].first() += ".a"; | 911 | project->variables()["TARGET"].first() += ".a"; |
911 | if(project->variables()["QMAKE_AR_CMD"].isEmpty()) | 912 | if(project->variables()["QMAKE_AR_CMD"].isEmpty()) |
912 | project->variables()["QMAKE_AR_CMD"].append("$(AR) $(TARGET) $(OBJECTS) $(OBJMOC)"); | 913 | project->variables()["QMAKE_AR_CMD"].append("$(AR) $(TARGET) $(OBJECTS) $(OBJMOC)"); |
913 | } else { | 914 | } else { |
914 | project->variables()["TARGETA"].append(project->first("DESTDIR") + "lib" + project->first("TARGET") + ".a"); | 915 | project->variables()["TARGETA"].append(project->first("DESTDIR") + "lib" + project->first("TARGET") + ".a"); |
915 | if ( !project->variables()["QMAKE_AR_CMD"].isEmpty() ) | 916 | if ( !project->variables()["QMAKE_AR_CMD"].isEmpty() ) |
916 | project->variables()["QMAKE_AR_CMD"].first().replace("(TARGET)","(TARGETA)"); | 917 | project->variables()["QMAKE_AR_CMD"].first().replace("(TARGET)","(TARGETA)"); |
917 | else | 918 | else |
918 | project->variables()["QMAKE_AR_CMD"].append("$(AR) $(TARGETA) $(OBJECTS) $(OBJMOC)"); | 919 | project->variables()["QMAKE_AR_CMD"].append("$(AR) $(TARGETA) $(OBJECTS) $(OBJMOC)"); |
919 | QString os = project->variables()["QMAKESPEC"].first().section( '-', 0, 0 ); | 920 | QString os = project->variables()["QMAKESPEC"].first().section( '-', 0, 0 ); |
920 | if( project->isActiveConfig("plugin") ) { | 921 | if( project->isActiveConfig("plugin") ) { |
921 | project->variables()["TARGET_x.y.z"].append("lib" + | 922 | project->variables()["TARGET_x.y.z"].append("lib" + |
922 | project->first("TARGET") + "." + project->first("QMAKE_EXTENSION_SHLIB")); | 923 | project->first("TARGET") + "." + project->first("QMAKE_EXTENSION_SHLIB")); |
923 | if(project->isActiveConfig("lib_version_first")) | 924 | if(project->isActiveConfig("lib_version_first")) |
924 | project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." + | 925 | project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." + |
925 | project->first("VER_MAJ") + "." + | 926 | project->first("VER_MAJ") + "." + |
926 | project->first("QMAKE_EXTENSION_SHLIB")); | 927 | project->first("QMAKE_EXTENSION_SHLIB")); |
927 | else | 928 | else |
928 | project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." + | 929 | project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." + |
929 | project->first("QMAKE_EXTENSION_SHLIB") + | 930 | project->first("QMAKE_EXTENSION_SHLIB") + |
930 | "." + project->first("VER_MAJ")); | 931 | "." + project->first("VER_MAJ")); |
931 | 932 | ||
932 | project->variables()["TARGET"] = project->variables()["TARGET_x.y.z"]; | 933 | project->variables()["TARGET"] = project->variables()["TARGET_x.y.z"]; |
933 | if(project->isActiveConfig("qt")) | 934 | if(project->isActiveConfig("qt")) |
934 | project->variables()["DEFINES"].append("QT_PLUGIN"); | 935 | project->variables()["DEFINES"].append("QT_PLUGIN"); |
935 | } else if ( os == "hpux" ) { | 936 | } else if ( os == "hpux" ) { |
936 | project->variables()["TARGET_"].append("lib" + project->first("TARGET") + ".sl"); | 937 | project->variables()["TARGET_"].append("lib" + project->first("TARGET") + ".sl"); |
937 | if(project->isActiveConfig("lib_version_first")) | 938 | if(project->isActiveConfig("lib_version_first")) |
938 | project->variables()["TARGET_x"].append("lib" + project->first("VER_MAJ") + "." + | 939 | project->variables()["TARGET_x"].append("lib" + project->first("VER_MAJ") + "." + |
939 | project->first("TARGET")); | 940 | project->first("TARGET")); |
940 | else | 941 | else |
941 | project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." + | 942 | project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." + |
942 | project->first("VER_MAJ")); | 943 | project->first("VER_MAJ")); |
943 | project->variables()["TARGET"] = project->variables()["TARGET_x"]; | 944 | project->variables()["TARGET"] = project->variables()["TARGET_x"]; |
944 | } else if ( os == "aix" ) { | 945 | } else if ( os == "aix" ) { |
945 | project->variables()["TARGET_"].append("lib" + project->first("TARGET") + ".a"); | 946 | project->variables()["TARGET_"].append("lib" + project->first("TARGET") + ".a"); |
946 | if(project->isActiveConfig("lib_version_first")) { | 947 | if(project->isActiveConfig("lib_version_first")) { |
947 | project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." + | 948 | project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." + |
948 | project->first("VER_MAJ") + "." + | 949 | project->first("VER_MAJ") + "." + |
949 | project->first("QMAKE_EXTENSION_SHLIB")); | 950 | project->first("QMAKE_EXTENSION_SHLIB")); |
950 | project->variables()["TARGET_x.y"].append("lib" + project->first("TARGET") + "." + | 951 | project->variables()["TARGET_x.y"].append("lib" + project->first("TARGET") + "." + |
951 | project->first("VER_MAJ") + | 952 | project->first("VER_MAJ") + |
952 | "." + project->first("VER_MIN") + "." + | 953 | "." + project->first("VER_MIN") + "." + |
953 | project->first("QMAKE_EXTENSION_SHLIB")); | 954 | project->first("QMAKE_EXTENSION_SHLIB")); |
954 | project->variables()["TARGET_x.y.z"].append("lib" + project->first("TARGET") + "." + | 955 | project->variables()["TARGET_x.y.z"].append("lib" + project->first("TARGET") + "." + |
955 | project->first("VER_MAJ") + "." + | 956 | project->first("VER_MAJ") + "." + |
956 | project->first("VER_MIN") + "." + | 957 | project->first("VER_MIN") + "." + |
957 | project->first("VER_PAT") + "." + | 958 | project->first("VER_PAT") + "." + |
958 | project->first("QMAKE_EXTENSION_SHLIB")); | 959 | project->first("QMAKE_EXTENSION_SHLIB")); |
959 | } else { | 960 | } else { |
960 | project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." + | 961 | project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." + |
961 | project->first("QMAKE_EXTENSION_SHLIB") + | 962 | project->first("QMAKE_EXTENSION_SHLIB") + |
962 | "." + project->first("VER_MAJ")); | 963 | "." + project->first("VER_MAJ")); |
963 | project->variables()["TARGET_x.y"].append("lib" + project->first("TARGET") + "." + | 964 | project->variables()["TARGET_x.y"].append("lib" + project->first("TARGET") + "." + |
964 | project->first("QMAKE_EXTENSION_SHLIB") + | 965 | project->first("QMAKE_EXTENSION_SHLIB") + |
965 | "." + project->first("VER_MAJ") + | 966 | "." + project->first("VER_MAJ") + |
966 | "." + project->first("VER_MIN")); | 967 | "." + project->first("VER_MIN")); |
967 | project->variables()["TARGET_x.y.z"].append("lib" + project->first("TARGET") + "." + | 968 | project->variables()["TARGET_x.y.z"].append("lib" + project->first("TARGET") + "." + |
968 | project->first("QMAKE_EXTENSION_SHLIB") + "." + | 969 | project->first("QMAKE_EXTENSION_SHLIB") + "." + |
969 | project->first("VER_MAJ") + "." + | 970 | project->first("VER_MAJ") + "." + |
970 | project->first("VER_MIN") + "." + | 971 | project->first("VER_MIN") + "." + |
971 | project->first("VER_PAT")); | 972 | project->first("VER_PAT")); |
972 | } | 973 | } |
973 | project->variables()["TARGET"] = project->variables()["TARGET_x.y.z"]; | 974 | project->variables()["TARGET"] = project->variables()["TARGET_x.y.z"]; |