Changeset 673
- Timestamp:
- Mar 11, 2010, 3:04:05 AM (15 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mkspecs/features/os2/default_post.prf
r656 r673 1 1 !CONFIG(windows):!CONFIG(console) { 2 2 CONFIG(release, debug|release):CONFIG(qt):contains(QT, gui) { 3 3 CONFIG *= windows 4 4 } else { 5 5 CONFIG *= console 6 6 } 7 7 } … … 12 12 build_pass|isEmpty(BUILDS) { 13 13 14 dll {15 # create the import library target16 make_implib.target = $(TARGET_IMPLIB)17 make_implib.commands = $$QMAKE_RUN_IMPLIB18 export_all {19 make_implib.depends = $(DEF_FILE)20 POST_TARGETDEPS += $$make_implib.target21 } else {22 make_implib.depends = $(DESTDIR_TARGET)23 ALL_DEPS += $$make_implib.target24 }25 QMAKE_EXTRA_TARGETS += make_implib26 QMAKE_CLEAN += $$make_implib.target27 28 export_all:QMAKE_RUN_GENDEF = $$QMAKE_RUN_GENDEF_EXPORT_ALL29 }30 31 14 # convert QMAKE_TARGET_ variables to DEF_FILE_ ones 32 15 isEmpty(DEF_FILE_VERSION) { 33 16 DEF_FILE_VERSION = $$VERSION 34 35 36 37 38 39 40 41 42 43 44 45 46 17 } 18 isEmpty(DEF_FILE_DESCRIPTION) { 19 !isEmpty(QMAKE_TARGET_PRODUCT):DEF_FILE_DESCRIPTION = $$QMAKE_TARGET_PRODUCT 20 !isEmpty(QMAKE_TARGET_DESCRIPTION) { 21 !isEmpty(DEF_FILE_DESCRIPTION):DEF_FILE_DESCRIPTION = $${DEF_FILE_DESCRIPTION}: $$QMAKE_TARGET_DESCRIPTION 22 else:DEF_FILE_DESCRIPTION = $$QMAKE_TARGET_DESCRIPTION 23 } 24 !isEmpty(QMAKE_TARGET_COPYRIGHT) { 25 !isEmpty(DEF_FILE_DESCRIPTION):DEF_FILE_DESCRIPTION = $${DEF_FILE_DESCRIPTION} $$QMAKE_TARGET_COPYRIGHT 26 else:DEF_FILE_DESCRIPTION = $$QMAKE_TARGET_COPYRIGHT 27 } 28 } 29 isEmpty(DEF_FILE_VENDOR):!isEmpty(QMAKE_TARGET_COMPANY):DEF_FILE_VENDOR = $$QMAKE_TARGET_COMPANY 47 30 48 # handle .DEF file creation for executables 49 contains(TEMPLATE, ".*app"):isEmpty(DEF_FILE) { 50 DEF_FILE_DESCR = 51 !isEmpty(DEF_FILE_VERSION)|!isEmpty(DEF_FILE_DESCRIPTION)|!isEmpty(DEF_FILE_VENDOR) { 52 QMAKESPEC_DIR = $$dirname(QMAKESPEC) 53 isEmpty(QMAKESPEC_DIR):QMAKESPEC_DIR = $$[QT_INSTALL_DATA]/mkspecs 54 exists($$QMAKESPEC_DIR/os2-g++/emxexpw.cmd) { 55 DEF_FILE_DESCR = -printbldlevel 56 !isEmpty(DEF_FILE_VERSION):DEF_FILE_DESCR += -version \"$$DEF_FILE_VERSION\" 57 !isEmpty(DEF_FILE_DESCRIPTION):DEF_FILE_DESCR += -desc \"$$DEF_FILE_DESCRIPTION\" 58 !isEmpty(DEF_FILE_VENDOR):DEF_FILE_DESCR += -vendor \"$$DEF_FILE_VENDOR\" 59 DEF_FILE_DESCR = "$$system($$QMAKESPEC_DIR/os2-g++/emxexpw.cmd $$DEF_FILE_DESCR)" 60 } else { 61 warning($$QMAKESPEC_DIR/os2-g++/emxexpw.cmd is not found!) 62 warning(BLDLEVEL string in .DEF will not contain all info!) 63 DEF_FILE_DESCR = "@$${LITERAL_HASH}vendor:version$${LITERAL_HASH}@ description" 64 DEF_FILE_DESCR = $$replace(DEF_FILE_DESCR, vendor, $$DEF_FILE_VENDOR) 65 DEF_FILE_DESCR = $$replace(DEF_FILE_DESCR, version, $$DEF_FILE_VERSION) 66 DEF_FILE_DESCR = $$replace(DEF_FILE_DESCR, description, $$DEF_FILE_DESCRIPTION) 31 contains(TEMPLATE, ".*lib"):dll { 32 # create the import library target (assumes that the generator puts 33 # puts 'TARGET_IMPLIB... = ' to the Makefile) 34 make_implib.target = $(TARGET_IMPLIB) 35 make_implib.commands = $$QMAKE_RUN_IMPLIB 36 export_all:make_implib.depends = $(DEF_FILE) 37 else:make_implib.depends = $(DESTDIR_TARGET) 38 ALL_DEPS += $$make_implib.target 39 QMAKE_CLEAN += $$make_implib.target 40 QMAKE_EXTRA_TARGETS += make_implib 41 42 isEmpty(DEF_FILE) { 43 # create a .DEF file if not supplied (assumes that the generator 44 # puts 'DEF_FILE_... = ' $$DEF_FILE... to the Makefile) 45 make_def.target = $(DEF_FILE) 46 make_def.depends = $(MAKEFILE) 47 !isEmpty(DEF_FILE_TEMPLATE):make_def.depends += $(DEF_FILE_TEMPLATE) 48 !isEmpty(DEF_FILE_MAP):make_def.depends += $(DEF_FILE_MAP) 49 export_all:make_def.depends += $(OBJECTS) 50 export_all:make_def.commands = $$QMAKE_RUN_GENDEF_EXPORT_ALL 51 else:make_def.commands = $$QMAKE_RUN_GENDEF 52 QMAKE_CLEAN += $$make_def.target 53 QMAKE_EXTRA_TARGETS += make_def 54 } 55 POST_TARGETDEPS += $(DEF_FILE) 56 } 57 58 contains(TEMPLATE, ".*app") { 59 isEmpty(DEF_FILE) { 60 # handle .DEF file creation for executables 61 !isEmpty(DEF_FILE_VERSION)|!isEmpty(DEF_FILE_DESCRIPTION)|\ 62 !isEmpty(DEF_FILE_VENDOR)|!isEmpty(DEF_FILE_TEMPLATE) { 63 windows:DEF_FILE_EXETYPE = WINDOWAPI 64 else:DEF_FILE_EXETYPE = WINDOWCOMPAT 65 make_def.target = $(DEF_FILE) 66 make_def.depends = $(MAKEFILE) 67 !isEmpty(DEF_FILE_TEMPLATE):make_def.depends += $(DEF_FILE_TEMPLATE) 68 make_def.commands = $$QMAKE_RUN_GENDEF_EXE 69 QMAKE_CLEAN += $$make_def.target 70 QMAKE_EXTRA_TARGETS += make_def 71 POST_TARGETDEPS += $$make_def.target 67 72 } 68 } 69 !isEmpty(DEF_FILE_DESCR)|wlink { 70 # Note: neither WLINK nor EMXOMFLD allows to specify the app type of 71 # the .EXE on the command line. For this reason, we need an implicit 72 # .DEF which we create if no explicit .DEF file is provided in .pro, 73 # even if DEF_FILE_DESCR is actually empty. 74 75 DEF_FILE = $(OBJECTS_DIR)/$(TARGET).def 76 77 windows:DEF_FILE_APPTYPE = WINDOWAPI 78 else::DEF_FILE_APPTYPE = WINDOWCOMPAT 79 80 make_exe_def.target = $(DEF_FILE) 81 make_exe_def.depends = $(call q,$(MAKEFILE)) 82 make_exe_def.commands = \ 83 @echo NAME $(QMAKE_TARGET) $$DEF_FILE_APPTYPE > $(DEF_FILE) 84 !isEmpty(DEF_FILE_DESCR):make_exe_def.commands += $$escape_expand(\n\t) \ 85 @echo DESCRIPTION \'$${DEF_FILE_DESCR}\' >> $(DEF_FILE) 86 QMAKE_EXTRA_TARGETS += make_exe_def 87 QMAKE_CLEAN += $$make_exe_def.target 73 } else { 74 POST_TARGETDEPS += $(DEF_FILE) 88 75 } 89 76 } -
trunk/mkspecs/features/os2/default_pre.prf
r656 r673 110 110 else:tgt = Part$${next} 111 111 } 112 eval(ALL_DEPS += $( call q,$(TARGET_IMPLIB)) $${tgt})112 eval(ALL_DEPS += $(TARGET_IMPLIB) $${tgt}) 113 113 export(ALL_DEPS) 114 114 -
trunk/mkspecs/os2-g++/qmake.conf
r656 r673 116 116 $(if $(DEF_FILE_DESCRIPTION),-desc \"$(DEF_FILE_DESCRIPTION)\") \ 117 117 $(if $(DEF_FILE_VENDOR),-vendor \"$(DEF_FILE_VENDOR)\") \ 118 $(if $(DEF_FILE_TEMPLATE),-template $(DEF_FILE_TEMPLATE))118 $(if $(DEF_FILE_TEMPLATE),-template \"$(DEF_FILE_TEMPLATE)\") 119 119 120 120 QMAKE_RUN_GENDEF_EXPORT_ALL = $$QMAKE_RUN_GENDEF \ 121 $(if $(DEF_FILE_MAP),-map $(DEF_FILE_MAP)) \121 $(if $(DEF_FILE_MAP),-map \"$(DEF_FILE_MAP)\") \ 122 122 $$QMAKE_OBJECTS_REF 123 123 124 QMAKE_GENDEF_DEPS = $(OBJECTS) $(MAKEFILE) 124 QMAKE_RUN_GENDEF_EXE = $$QMAKE_RUN_GENDEF \ 125 $(if $(DEF_FILE_EXETYPE),-exe \"$(DEF_FILE_EXETYPE)\") 125 126 126 127 QMAKE_LIBS = -
trunk/qmake/generators/os2/gnumake.cpp
r671 r673 558 558 } 559 559 560 if (project->isEmpty("DEF_FILE")) { 561 /* no DEF file supplied, we will generate one */ 562 if (mode == DLL) { 563 t << "DEF_FILE = $(basename $(DESTDIR_TARGET)).def" << endl; 564 project->values("QMAKE_CLEAN").append("$(DEF_FILE)"); 565 project->values("POST_TARGETDEPS") += escapeFileVars("$(DEF_FILE)"); 566 if (!project->isEmpty("DEF_FILE_VERSION")) 567 t << "DEF_FILE_VERSION = " << var("DEF_FILE_VERSION") << endl; 568 if (!project->isEmpty("DEF_FILE_DESCRIPTION")) 569 t << "DEF_FILE_DESCRIPTION = " << var("DEF_FILE_DESCRIPTION") << endl; 570 if (!project->isEmpty("DEF_FILE_VENDOR")) 571 t << "DEF_FILE_VENDOR = " << var("DEF_FILE_VENDOR") << endl; 560 if (mode != StaticLib) { 561 if (project->isEmpty("DEF_FILE")) { 562 /* no DEF file supplied, emit handy variable definitions to simplify 563 * DEF generation rules defined somewhere in default_post.prf */ 564 bool haveSomething = false; 565 if (!project->isEmpty("DEF_FILE_VERSION")) { 566 t << "DEF_FILE_VERSION = " << var("DEF_FILE_VERSION") << endl; 567 haveSomething = true; 568 } 569 if (!project->isEmpty("DEF_FILE_DESCRIPTION")) { 570 t << "DEF_FILE_DESCRIPTION = " << var("DEF_FILE_DESCRIPTION") << endl; 571 haveSomething = true; 572 } 573 if (!project->isEmpty("DEF_FILE_VENDOR")) { 574 t << "DEF_FILE_VENDOR = " << var("DEF_FILE_VENDOR") << endl; 575 haveSomething = true; 576 } 572 577 if (!project->isEmpty("DEF_FILE_TEMPLATE")) { 573 t << "DEF_FILE_TEMPLATE = " << escapeFilePath(var("DEF_FILE_TEMPLATE")) << endl;574 project->values("QMAKE_GENDEF_DEPS") += "$(DEF_FILE_TEMPLATE)";578 t << "DEF_FILE_TEMPLATE = " << escapeFilePath(var("DEF_FILE_TEMPLATE")) << endl; 579 haveSomething = true; 575 580 } 576 581 if (!project->isEmpty("DEF_FILE_MAP")) { 577 t << "DEF_FILE_MAP = " << escapeFilePath(var("DEF_FILE_MAP")) << endl; 578 project->values("QMAKE_GENDEF_DEPS") += "$(DEF_FILE_MAP)"; 579 } 580 } 581 } else { 582 if (!project->isEmpty("DEF_FILE_TEMPLATE")) { 583 fprintf(stderr, "Both DEF_FILE and DEF_FILE_TEMPLATE are specified.\n"); 584 fprintf(stderr, "Please specify one of them, not both."); 585 exit(1); 586 } 587 t << "DEF_FILE = " << escapeFilePath(var("DEF_FILE")) << endl; 588 project->values("POST_TARGETDEPS") += "$(DEF_FILE)"; 582 t << "DEF_FILE_MAP = " << escapeFilePath(var("DEF_FILE_MAP")) << endl; 583 haveSomething = true; 584 } 585 if (mode == DLL) { 586 // the DLL needs a file in any case 587 t << "DEF_FILE = $(basename $(DESTDIR_TARGET)).def" << endl; 588 } else if (haveSomething) { 589 // the EXE needs it only if there's a description info 590 t << "DEF_FILE_EXETYPE = " << escapeFilePath(var("DEF_FILE_EXETYPE")) << endl; 591 t << "DEF_FILE = $(OBJECTS_DIR)\\$(TARGET).def" << endl; 592 } 593 } else { 594 if (!project->isEmpty("DEF_FILE_TEMPLATE")) { 595 fprintf(stderr, "Both DEF_FILE and DEF_FILE_TEMPLATE are specified.\n"); 596 fprintf(stderr, "Please specify one of them, not both."); 597 exit(1); 598 } 599 t << "DEF_FILE = " << escapeFilePath(var("DEF_FILE")) << endl; 600 } 589 601 } 590 602 … … 601 613 t << escapeFileVars("$(RES_FILE): $(RC_FILE)\n\t"); 602 614 t << var("QMAKE_RUN_RC2RES") << endl; 603 }604 605 if (mode == DLL) {606 if (project->isEmpty("DEF_FILE")) {607 /* generate a DEF file for the DLL when not supplied */608 t << escapeFileVars("$(DEF_FILE): ") << escapeFileVars(var("QMAKE_GENDEF_DEPS"));609 t << valGlue(var("QMAKE_RUN_GENDEF").split(";;"), "\n\t", "\n\t", "") << endl;610 }611 615 } 612 616 }
Note:
See TracChangeset
for help on using the changeset viewer.